diff --git a/generated/src/aws-cpp-sdk-acm-pca/source/ACMPCAErrors.cpp b/generated/src/aws-cpp-sdk-acm-pca/source/ACMPCAErrors.cpp index f74dcf7a5976..36d884d940df 100644 --- a/generated/src/aws-cpp-sdk-acm-pca/source/ACMPCAErrors.cpp +++ b/generated/src/aws-cpp-sdk-acm-pca/source/ACMPCAErrors.cpp @@ -44,7 +44,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == REQUEST_IN_PROGRESS_HASH) { return AWSError(static_cast(ACMPCAErrors::REQUEST_IN_PROGRESS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ACMPCAErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ACMPCAErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == REQUEST_FAILED_HASH) { return AWSError(static_cast(ACMPCAErrors::REQUEST_FAILED), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-acm/source/ACMErrors.cpp b/generated/src/aws-cpp-sdk-acm/source/ACMErrors.cpp index c71e469644dd..009dd2dca213 100644 --- a/generated/src/aws-cpp-sdk-acm/source/ACMErrors.cpp +++ b/generated/src/aws-cpp-sdk-acm/source/ACMErrors.cpp @@ -52,7 +52,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_ARN_HASH) { return AWSError(static_cast(ACMErrors::INVALID_ARN), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ACMErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ACMErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(ACMErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TAG_POLICY_HASH) { diff --git a/generated/src/aws-cpp-sdk-amplify/source/AmplifyErrors.cpp b/generated/src/aws-cpp-sdk-amplify/source/AmplifyErrors.cpp index 2da755edef60..c9512eb98d40 100644 --- a/generated/src/aws-cpp-sdk-amplify/source/AmplifyErrors.cpp +++ b/generated/src/aws-cpp-sdk-amplify/source/AmplifyErrors.cpp @@ -37,7 +37,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(AmplifyErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(AmplifyErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(AmplifyErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == DEPENDENT_SERVICE_FAILURE_HASH) { return AWSError(static_cast(AmplifyErrors::DEPENDENT_SERVICE_FAILURE), RetryableType::RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-amplifybackend/source/AmplifyBackendErrors.cpp b/generated/src/aws-cpp-sdk-amplifybackend/source/AmplifyBackendErrors.cpp index dbe27372ee5f..41ffeba1de97 100644 --- a/generated/src/aws-cpp-sdk-amplifybackend/source/AmplifyBackendErrors.cpp +++ b/generated/src/aws-cpp-sdk-amplifybackend/source/AmplifyBackendErrors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == GATEWAY_TIMEOUT_HASH) { return AWSError(static_cast(AmplifyBackendErrors::GATEWAY_TIMEOUT), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(AmplifyBackendErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(AmplifyBackendErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(AmplifyBackendErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-apigateway/source/APIGatewayErrors.cpp b/generated/src/aws-cpp-sdk-apigateway/source/APIGatewayErrors.cpp index 9b8e6abb9708..e8e078131a16 100644 --- a/generated/src/aws-cpp-sdk-apigateway/source/APIGatewayErrors.cpp +++ b/generated/src/aws-cpp-sdk-apigateway/source/APIGatewayErrors.cpp @@ -54,9 +54,9 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(APIGatewayErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(APIGatewayErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(APIGatewayErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(APIGatewayErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(APIGatewayErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(APIGatewayErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-apigatewaymanagementapi/source/ApiGatewayManagementApiErrors.cpp b/generated/src/aws-cpp-sdk-apigatewaymanagementapi/source/ApiGatewayManagementApiErrors.cpp index a883032d041b..47402ea99b64 100644 --- a/generated/src/aws-cpp-sdk-apigatewaymanagementapi/source/ApiGatewayManagementApiErrors.cpp +++ b/generated/src/aws-cpp-sdk-apigatewaymanagementapi/source/ApiGatewayManagementApiErrors.cpp @@ -30,7 +30,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == PAYLOAD_TOO_LARGE_HASH) { return AWSError(static_cast(ApiGatewayManagementApiErrors::PAYLOAD_TOO_LARGE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ApiGatewayManagementApiErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ApiGatewayManagementApiErrors::LIMIT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-apigatewayv2/source/ApiGatewayV2Errors.cpp b/generated/src/aws-cpp-sdk-apigatewayv2/source/ApiGatewayV2Errors.cpp index 276009785dae..0edaf005692e 100644 --- a/generated/src/aws-cpp-sdk-apigatewayv2/source/ApiGatewayV2Errors.cpp +++ b/generated/src/aws-cpp-sdk-apigatewayv2/source/ApiGatewayV2Errors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NOT_FOUND_HASH) { return AWSError(static_cast(ApiGatewayV2Errors::NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ApiGatewayV2Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ApiGatewayV2Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(ApiGatewayV2Errors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-application-autoscaling/source/ApplicationAutoScalingErrors.cpp b/generated/src/aws-cpp-sdk-application-autoscaling/source/ApplicationAutoScalingErrors.cpp index 4ca0d09ef6f5..bc37365d7ee7 100644 --- a/generated/src/aws-cpp-sdk-application-autoscaling/source/ApplicationAutoScalingErrors.cpp +++ b/generated/src/aws-cpp-sdk-application-autoscaling/source/ApplicationAutoScalingErrors.cpp @@ -45,7 +45,7 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(ApplicationAutoScalingErrors::FAILED_RESOURCE_ACCESS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ApplicationAutoScalingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ApplicationAutoScalingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_UPDATE_HASH) { return AWSError(static_cast(ApplicationAutoScalingErrors::CONCURRENT_UPDATE), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_TAGS_HASH) { diff --git a/generated/src/aws-cpp-sdk-appmesh/source/AppMeshErrors.cpp b/generated/src/aws-cpp-sdk-appmesh/source/AppMeshErrors.cpp index 4c49ca601d50..118d67eaf37e 100644 --- a/generated/src/aws-cpp-sdk-appmesh/source/AppMeshErrors.cpp +++ b/generated/src/aws-cpp-sdk-appmesh/source/AppMeshErrors.cpp @@ -35,7 +35,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(AppMeshErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(AppMeshErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(AppMeshErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(AppMeshErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { diff --git a/generated/src/aws-cpp-sdk-appstream/source/AppStreamErrors.cpp b/generated/src/aws-cpp-sdk-appstream/source/AppStreamErrors.cpp index c35627c7b151..36dbce5f6071 100644 --- a/generated/src/aws-cpp-sdk-appstream/source/AppStreamErrors.cpp +++ b/generated/src/aws-cpp-sdk-appstream/source/AppStreamErrors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_ROLE_HASH) { return AWSError(static_cast(AppStreamErrors::INVALID_ROLE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(AppStreamErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(AppStreamErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_NOT_AVAILABLE_HASH) { return AWSError(static_cast(AppStreamErrors::RESOURCE_NOT_AVAILABLE), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-appsync/source/AppSyncErrors.cpp b/generated/src/aws-cpp-sdk-appsync/source/AppSyncErrors.cpp index 319bcc5d58cb..d989f5cac0f6 100644 --- a/generated/src/aws-cpp-sdk-appsync/source/AppSyncErrors.cpp +++ b/generated/src/aws-cpp-sdk-appsync/source/AppSyncErrors.cpp @@ -53,7 +53,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(AppSyncErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(AppSyncErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(AppSyncErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(AppSyncErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-athena/source/AthenaErrors.cpp b/generated/src/aws-cpp-sdk-athena/source/AthenaErrors.cpp index 9b16f6a30744..22f359bb332c 100644 --- a/generated/src/aws-cpp-sdk-athena/source/AthenaErrors.cpp +++ b/generated/src/aws-cpp-sdk-athena/source/AthenaErrors.cpp @@ -51,7 +51,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == METADATA_HASH) { return AWSError(static_cast(AthenaErrors::METADATA), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(AthenaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(AthenaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SESSION_ALREADY_EXISTS_HASH) { return AWSError(static_cast(AthenaErrors::SESSION_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-autoscaling-plans/source/AutoScalingPlansErrors.cpp b/generated/src/aws-cpp-sdk-autoscaling-plans/source/AutoScalingPlansErrors.cpp index 175abf70d29f..b658499af3f6 100644 --- a/generated/src/aws-cpp-sdk-autoscaling-plans/source/AutoScalingPlansErrors.cpp +++ b/generated/src/aws-cpp-sdk-autoscaling-plans/source/AutoScalingPlansErrors.cpp @@ -25,7 +25,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(AutoScalingPlansErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(AutoScalingPlansErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_UPDATE_HASH) { return AWSError(static_cast(AutoScalingPlansErrors::CONCURRENT_UPDATE), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVICE_HASH) { diff --git a/generated/src/aws-cpp-sdk-backup/source/BackupErrors.cpp b/generated/src/aws-cpp-sdk-backup/source/BackupErrors.cpp index a984d7fb6dae..038aea6ef4f0 100644 --- a/generated/src/aws-cpp-sdk-backup/source/BackupErrors.cpp +++ b/generated/src/aws-cpp-sdk-backup/source/BackupErrors.cpp @@ -102,7 +102,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DEPENDENCY_FAILURE_HASH) { return AWSError(static_cast(BackupErrors::DEPENDENCY_FAILURE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(BackupErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(BackupErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ALREADY_EXISTS_HASH) { return AWSError(static_cast(BackupErrors::ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_RESOURCE_STATE_HASH) { diff --git a/generated/src/aws-cpp-sdk-ce/source/CostExplorerErrors.cpp b/generated/src/aws-cpp-sdk-ce/source/CostExplorerErrors.cpp index ef75ad5292a4..b94e4dccc973 100644 --- a/generated/src/aws-cpp-sdk-ce/source/CostExplorerErrors.cpp +++ b/generated/src/aws-cpp-sdk-ce/source/CostExplorerErrors.cpp @@ -51,7 +51,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == REQUEST_CHANGED_HASH) { return AWSError(static_cast(CostExplorerErrors::REQUEST_CHANGED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CostExplorerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CostExplorerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ANALYSIS_NOT_FOUND_HASH) { return AWSError(static_cast(CostExplorerErrors::ANALYSIS_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == BILL_EXPIRATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-chatbot/source/ChatbotErrors.cpp b/generated/src/aws-cpp-sdk-chatbot/source/ChatbotErrors.cpp index 122badc4988f..c99d31655638 100644 --- a/generated/src/aws-cpp-sdk-chatbot/source/ChatbotErrors.cpp +++ b/generated/src/aws-cpp-sdk-chatbot/source/ChatbotErrors.cpp @@ -60,7 +60,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CREATE_CHIME_WEBHOOK_CONFIGURATION_HASH) { return AWSError(static_cast(ChatbotErrors::CREATE_CHIME_WEBHOOK_CONFIGURATION), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ChatbotErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ChatbotErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CREATE_SLACK_CHANNEL_CONFIGURATION_HASH) { return AWSError(static_cast(ChatbotErrors::CREATE_SLACK_CHANNEL_CONFIGURATION), RetryableType::RETRYABLE); } else if (hashCode == UPDATE_ACCOUNT_PREFERENCES_HASH) { diff --git a/generated/src/aws-cpp-sdk-chime-sdk-meetings/source/ChimeSDKMeetingsErrors.cpp b/generated/src/aws-cpp-sdk-chime-sdk-meetings/source/ChimeSDKMeetingsErrors.cpp index 1a7c9aad0859..4c76b73be9a1 100644 --- a/generated/src/aws-cpp-sdk-chime-sdk-meetings/source/ChimeSDKMeetingsErrors.cpp +++ b/generated/src/aws-cpp-sdk-chime-sdk-meetings/source/ChimeSDKMeetingsErrors.cpp @@ -124,7 +124,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(ChimeSDKMeetingsErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ChimeSDKMeetingsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ChimeSDKMeetingsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(ChimeSDKMeetingsErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == UNPROCESSABLE_ENTITY_HASH) { diff --git a/generated/src/aws-cpp-sdk-cloud9/source/Cloud9Errors.cpp b/generated/src/aws-cpp-sdk-cloud9/source/Cloud9Errors.cpp index 814dfac0ee43..11e22669bbec 100644 --- a/generated/src/aws-cpp-sdk-cloud9/source/Cloud9Errors.cpp +++ b/generated/src/aws-cpp-sdk-cloud9/source/Cloud9Errors.cpp @@ -36,9 +36,9 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(Cloud9Errors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(Cloud9Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(Cloud9Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(Cloud9Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(Cloud9Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(Cloud9Errors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-clouddirectory/source/CloudDirectoryErrors.cpp b/generated/src/aws-cpp-sdk-clouddirectory/source/CloudDirectoryErrors.cpp index 8f6493cd8798..518f555a714f 100644 --- a/generated/src/aws-cpp-sdk-clouddirectory/source/CloudDirectoryErrors.cpp +++ b/generated/src/aws-cpp-sdk-clouddirectory/source/CloudDirectoryErrors.cpp @@ -60,7 +60,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CloudDirectoryErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CloudDirectoryErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_ATTACHMENT_HASH) { return AWSError(static_cast(CloudDirectoryErrors::INVALID_ATTACHMENT), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_NEXT_TOKEN_HASH) { diff --git a/generated/src/aws-cpp-sdk-cloudformation/source/CloudFormationErrors.cpp b/generated/src/aws-cpp-sdk-cloudformation/source/CloudFormationErrors.cpp index ba560d479bb7..9fa755d5357d 100644 --- a/generated/src/aws-cpp-sdk-cloudformation/source/CloudFormationErrors.cpp +++ b/generated/src/aws-cpp-sdk-cloudformation/source/CloudFormationErrors.cpp @@ -55,7 +55,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == C_F_N_REGISTRY_HASH) { return AWSError(static_cast(CloudFormationErrors::C_F_N_REGISTRY), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CloudFormationErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CloudFormationErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == HOOK_RESULT_NOT_FOUND_HASH) { return AWSError(static_cast(CloudFormationErrors::HOOK_RESULT_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == OPERATION_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-codeconnections/source/CodeConnectionsErrors.cpp b/generated/src/aws-cpp-sdk-codeconnections/source/CodeConnectionsErrors.cpp index 418475979eb5..c4c18e2ee297 100644 --- a/generated/src/aws-cpp-sdk-codeconnections/source/CodeConnectionsErrors.cpp +++ b/generated/src/aws-cpp-sdk-codeconnections/source/CodeConnectionsErrors.cpp @@ -45,7 +45,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CONDITIONAL_CHECK_FAILED_HASH) { return AWSError(static_cast(CodeConnectionsErrors::CONDITIONAL_CHECK_FAILED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CodeConnectionsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CodeConnectionsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNSUPPORTED_PROVIDER_TYPE_HASH) { return AWSError(static_cast(CodeConnectionsErrors::UNSUPPORTED_PROVIDER_TYPE), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-codepipeline/source/CodePipelineErrors.cpp b/generated/src/aws-cpp-sdk-codepipeline/source/CodePipelineErrors.cpp index 2a3ba1440f47..cbe6bbcf186b 100644 --- a/generated/src/aws-cpp-sdk-codepipeline/source/CodePipelineErrors.cpp +++ b/generated/src/aws-cpp-sdk-codepipeline/source/CodePipelineErrors.cpp @@ -73,7 +73,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_BLOCKER_DECLARATION_HASH) { return AWSError(static_cast(CodePipelineErrors::INVALID_BLOCKER_DECLARATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CodePipelineErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CodePipelineErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_ACTION_DECLARATION_HASH) { return AWSError(static_cast(CodePipelineErrors::INVALID_ACTION_DECLARATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == REQUEST_FAILED_HASH) { diff --git a/generated/src/aws-cpp-sdk-codestar-connections/source/CodeStarconnectionsErrors.cpp b/generated/src/aws-cpp-sdk-codestar-connections/source/CodeStarconnectionsErrors.cpp index b4dc4924aa66..b01c406ee873 100644 --- a/generated/src/aws-cpp-sdk-codestar-connections/source/CodeStarconnectionsErrors.cpp +++ b/generated/src/aws-cpp-sdk-codestar-connections/source/CodeStarconnectionsErrors.cpp @@ -45,7 +45,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CONDITIONAL_CHECK_FAILED_HASH) { return AWSError(static_cast(CodeStarconnectionsErrors::CONDITIONAL_CHECK_FAILED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CodeStarconnectionsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CodeStarconnectionsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNSUPPORTED_PROVIDER_TYPE_HASH) { return AWSError(static_cast(CodeStarconnectionsErrors::UNSUPPORTED_PROVIDER_TYPE), RetryableType::NOT_RETRYABLE); diff --git a/generated/src/aws-cpp-sdk-codestar-notifications/source/CodeStarNotificationsErrors.cpp b/generated/src/aws-cpp-sdk-codestar-notifications/source/CodeStarNotificationsErrors.cpp index c37b979aff1a..27e320f042cc 100644 --- a/generated/src/aws-cpp-sdk-codestar-notifications/source/CodeStarNotificationsErrors.cpp +++ b/generated/src/aws-cpp-sdk-codestar-notifications/source/CodeStarNotificationsErrors.cpp @@ -28,7 +28,7 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(CodeStarNotificationsErrors::RESOURCE_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CodeStarNotificationsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CodeStarNotificationsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONFIGURATION_HASH) { return AWSError(static_cast(CodeStarNotificationsErrors::CONFIGURATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityErrors.cpp b/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityErrors.cpp index 9fb1f79a39be..d8c4427f1ace 100644 --- a/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityErrors.cpp +++ b/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityErrors.cpp @@ -40,9 +40,9 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_CONFLICT_HASH) { return AWSError(static_cast(CognitoIdentityErrors::RESOURCE_CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CognitoIdentityErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoIdentityErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(CognitoIdentityErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoIdentityErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(CognitoIdentityErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_IDENTITY_POOL_CONFIGURATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderErrors.cpp b/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderErrors.cpp index 5c6aa977acbf..fcc5609d83ef 100644 --- a/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderErrors.cpp +++ b/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderErrors.cpp @@ -92,7 +92,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == ALIAS_EXISTS_HASH) { return AWSError(static_cast(CognitoIdentityProviderErrors::ALIAS_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CognitoIdentityProviderErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoIdentityProviderErrors::LIMIT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == FEATURE_UNAVAILABLE_IN_TIER_HASH) { return AWSError(static_cast(CognitoIdentityProviderErrors::FEATURE_UNAVAILABLE_IN_TIER), RetryableType::NOT_RETRYABLE); @@ -140,7 +141,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == SCOPE_DOES_NOT_EXIST_HASH) { return AWSError(static_cast(CognitoIdentityProviderErrors::SCOPE_DOES_NOT_EXIST), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(CognitoIdentityProviderErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoIdentityProviderErrors::TOO_MANY_REQUESTS), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == PRECONDITION_NOT_MET_HASH) { return AWSError(static_cast(CognitoIdentityProviderErrors::PRECONDITION_NOT_MET), RetryableType::NOT_RETRYABLE); } else if (hashCode == SOFTWARE_TOKEN_M_F_A_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-cognito-sync/source/CognitoSyncErrors.cpp b/generated/src/aws-cpp-sdk-cognito-sync/source/CognitoSyncErrors.cpp index 8bda4db6426f..22fb38a05726 100644 --- a/generated/src/aws-cpp-sdk-cognito-sync/source/CognitoSyncErrors.cpp +++ b/generated/src/aws-cpp-sdk-cognito-sync/source/CognitoSyncErrors.cpp @@ -46,13 +46,13 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NOT_AUTHORIZED_HASH) { return AWSError(static_cast(CognitoSyncErrors::NOT_AUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CognitoSyncErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoSyncErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_CONFLICT_HASH) { return AWSError(static_cast(CognitoSyncErrors::RESOURCE_CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(CognitoSyncErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(CognitoSyncErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(CognitoSyncErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == LAMBDA_THROTTLED_HASH) { return AWSError(static_cast(CognitoSyncErrors::LAMBDA_THROTTLED), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-comprehend/source/ComprehendErrors.cpp b/generated/src/aws-cpp-sdk-comprehend/source/ComprehendErrors.cpp index cc285553358c..fe7d5914caa6 100644 --- a/generated/src/aws-cpp-sdk-comprehend/source/ComprehendErrors.cpp +++ b/generated/src/aws-cpp-sdk-comprehend/source/ComprehendErrors.cpp @@ -61,7 +61,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TOO_MANY_TAG_KEYS_HASH) { return AWSError(static_cast(ComprehendErrors::TOO_MANY_TAG_KEYS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ComprehendErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ComprehendErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_FILTER_HASH) { return AWSError(static_cast(ComprehendErrors::INVALID_FILTER), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_IN_USE_HASH) { diff --git a/generated/src/aws-cpp-sdk-comprehendmedical/source/ComprehendMedicalErrors.cpp b/generated/src/aws-cpp-sdk-comprehendmedical/source/ComprehendMedicalErrors.cpp index 598b49811a33..f82002cc4178 100644 --- a/generated/src/aws-cpp-sdk-comprehendmedical/source/ComprehendMedicalErrors.cpp +++ b/generated/src/aws-cpp-sdk-comprehendmedical/source/ComprehendMedicalErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_ENCODING_HASH) { return AWSError(static_cast(ComprehendMedicalErrors::INVALID_ENCODING), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ComprehendMedicalErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ComprehendMedicalErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TEXT_SIZE_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(ComprehendMedicalErrors::TEXT_SIZE_LIMIT_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-compute-optimizer/source/ComputeOptimizerErrors.cpp b/generated/src/aws-cpp-sdk-compute-optimizer/source/ComputeOptimizerErrors.cpp index 4ad72c38b8fc..60f7d062de57 100644 --- a/generated/src/aws-cpp-sdk-compute-optimizer/source/ComputeOptimizerErrors.cpp +++ b/generated/src/aws-cpp-sdk-compute-optimizer/source/ComputeOptimizerErrors.cpp @@ -24,7 +24,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(ComputeOptimizerErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ComputeOptimizerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ComputeOptimizerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp b/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp index 2c5f119453a8..d14f44f4d162 100644 --- a/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp @@ -85,7 +85,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NO_SUCH_CONFORMANCE_PACK_HASH) { return AWSError(static_cast(ConfigServiceErrors::NO_SUCH_CONFORMANCE_PACK), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ConfigServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ConfigServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_S3_KMS_KEY_ARN_HASH) { return AWSError(static_cast(ConfigServiceErrors::INVALID_S3_KMS_KEY_ARN), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONFORMANCE_PACK_TEMPLATE_VALIDATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-connect/source/ConnectErrors.cpp b/generated/src/aws-cpp-sdk-connect/source/ConnectErrors.cpp index dcea2e6a14e5..925d6c38f7a8 100644 --- a/generated/src/aws-cpp-sdk-connect/source/ConnectErrors.cpp +++ b/generated/src/aws-cpp-sdk-connect/source/ConnectErrors.cpp @@ -105,7 +105,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == USER_NOT_FOUND_HASH) { return AWSError(static_cast(ConnectErrors::USER_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ConnectErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ConnectErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONTACT_FLOW_NOT_PUBLISHED_HASH) { return AWSError(static_cast(ConnectErrors::CONTACT_FLOW_NOT_PUBLISHED), RetryableType::NOT_RETRYABLE); } else if (hashCode == OUTBOUND_CONTACT_NOT_PERMITTED_HASH) { @@ -143,7 +143,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_CONFLICT_HASH) { return AWSError(static_cast(ConnectErrors::RESOURCE_CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-detective/source/DetectiveErrors.cpp b/generated/src/aws-cpp-sdk-detective/source/DetectiveErrors.cpp index 1995489ef9fa..9e91ee1f81aa 100644 --- a/generated/src/aws-cpp-sdk-detective/source/DetectiveErrors.cpp +++ b/generated/src/aws-cpp-sdk-detective/source/DetectiveErrors.cpp @@ -52,7 +52,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(DetectiveErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(DetectiveErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(DetectiveErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-devicefarm/source/DeviceFarmErrors.cpp b/generated/src/aws-cpp-sdk-devicefarm/source/DeviceFarmErrors.cpp index 8e081a65ca51..0cf4effc4ca2 100644 --- a/generated/src/aws-cpp-sdk-devicefarm/source/DeviceFarmErrors.cpp +++ b/generated/src/aws-cpp-sdk-devicefarm/source/DeviceFarmErrors.cpp @@ -60,7 +60,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == ARGUMENT_HASH) { return AWSError(static_cast(DeviceFarmErrors::ARGUMENT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DeviceFarmErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DeviceFarmErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVICE_ACCOUNT_HASH) { return AWSError(static_cast(DeviceFarmErrors::SERVICE_ACCOUNT), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_TAGS_HASH) { diff --git a/generated/src/aws-cpp-sdk-directconnect/source/DirectConnectErrors.cpp b/generated/src/aws-cpp-sdk-directconnect/source/DirectConnectErrors.cpp index 40e47fa36535..f44bdde195ca 100644 --- a/generated/src/aws-cpp-sdk-directconnect/source/DirectConnectErrors.cpp +++ b/generated/src/aws-cpp-sdk-directconnect/source/DirectConnectErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DIRECT_CONNECT_CLIENT_HASH) { return AWSError(static_cast(DirectConnectErrors::DIRECT_CONNECT_CLIENT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DirectConnectErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DirectConnectErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(DirectConnectErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == DIRECT_CONNECT_SERVER_HASH) { diff --git a/generated/src/aws-cpp-sdk-discovery/source/ApplicationDiscoveryServiceErrors.cpp b/generated/src/aws-cpp-sdk-discovery/source/ApplicationDiscoveryServiceErrors.cpp index 753c21903420..6681f8f9cbd2 100644 --- a/generated/src/aws-cpp-sdk-discovery/source/ApplicationDiscoveryServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-discovery/source/ApplicationDiscoveryServiceErrors.cpp @@ -36,7 +36,8 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(ApplicationDiscoveryServiceErrors::INVALID_PARAMETER), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ApplicationDiscoveryServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ApplicationDiscoveryServiceErrors::LIMIT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(ApplicationDiscoveryServiceErrors::RESOURCE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == AUTHORIZATION_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-dlm/source/DLMErrors.cpp b/generated/src/aws-cpp-sdk-dlm/source/DLMErrors.cpp index 7973ab715d98..244300590388 100644 --- a/generated/src/aws-cpp-sdk-dlm/source/DLMErrors.cpp +++ b/generated/src/aws-cpp-sdk-dlm/source/DLMErrors.cpp @@ -54,7 +54,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(DLMErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DLMErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DLMErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_REQUEST_HASH) { return AWSError(static_cast(DLMErrors::INVALID_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBClientConfiguration.cpp b/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBClientConfiguration.cpp index 0b726b1b5a4d..afb004ed24c8 100644 --- a/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBClientConfiguration.cpp +++ b/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBClientConfiguration.cpp @@ -38,10 +38,7 @@ void DynamoDBClientConfiguration::LoadDynamoDBSpecificConfig(const Aws::String& enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, inputProfileName); } this->configFactories.retryStrategyCreateFn = []() -> std::shared_ptr { - // TODO: renable once default retries are evaluated - // Align with other SDKs to default retry to 10 times for dynamodb. - // return Client::InitRetryStrategy(10); - return Client::InitRetryStrategy(); + return Client::InitRetryStrategy(4, "", 0.025); }; } diff --git a/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBErrors.cpp b/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBErrors.cpp index 98954d9dae0c..7db24869c178 100644 --- a/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBErrors.cpp +++ b/generated/src/aws-cpp-sdk-dynamodb/source/DynamoDBErrors.cpp @@ -91,7 +91,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TRANSACTION_CANCELED_HASH) { return AWSError(static_cast(DynamoDBErrors::TRANSACTION_CANCELED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DynamoDBErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DynamoDBErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == REPLICA_ALREADY_EXISTS_HASH) { return AWSError(static_cast(DynamoDBErrors::REPLICA_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TRANSACTION_CONFLICT_HASH) { @@ -105,7 +105,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == EXPORT_NOT_FOUND_HASH) { return AWSError(static_cast(DynamoDBErrors::EXPORT_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == TRANSACTION_IN_PROGRESS_HASH) { - return AWSError(static_cast(DynamoDBErrors::TRANSACTION_IN_PROGRESS), RetryableType::RETRYABLE); + return AWSError(static_cast(DynamoDBErrors::TRANSACTION_IN_PROGRESS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == REPLICATED_WRITE_CONFLICT_HASH) { return AWSError(static_cast(DynamoDBErrors::REPLICATED_WRITE_CONFLICT), RetryableType::RETRYABLE); } else if (hashCode == BACKUP_IN_USE_HASH) { @@ -115,7 +115,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TABLE_IN_USE_HASH) { return AWSError(static_cast(DynamoDBErrors::TABLE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == PROVISIONED_THROUGHPUT_EXCEEDED_HASH) { - return AWSError(static_cast(DynamoDBErrors::PROVISIONED_THROUGHPUT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DynamoDBErrors::PROVISIONED_THROUGHPUT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(DynamoDBErrors::RESOURCE_IN_USE), RetryableType::RETRYABLE); } else if (hashCode == INVALID_RESTORE_TIME_HASH) { @@ -139,7 +140,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_EXPORT_TIME_HASH) { return AWSError(static_cast(DynamoDBErrors::INVALID_EXPORT_TIME), RetryableType::NOT_RETRYABLE); } else if (hashCode == REQUEST_LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DynamoDBErrors::REQUEST_LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DynamoDBErrors::REQUEST_LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == IMPORT_NOT_FOUND_HASH) { return AWSError(static_cast(DynamoDBErrors::IMPORT_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == GLOBAL_TABLE_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsClientConfiguration.h b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsClientConfiguration.h new file mode 100644 index 000000000000..0afdbbef7b33 --- /dev/null +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsClientConfiguration.h @@ -0,0 +1,43 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once + +#include +#include + +namespace Aws { +namespace DynamoDBStreams { +struct AWS_DYNAMODBSTREAMS_API DynamoDBStreamsClientConfiguration : public Aws::Client::GenericClientConfiguration { + using BaseClientConfigClass = Aws::Client::GenericClientConfiguration; + + DynamoDBStreamsClientConfiguration(const Aws::Client::ClientConfigurationInitValues& configuration = {}); + + /** + * Create a configuration based on settings in the aws configuration file for the given profile name. + * The configuration file location can be set via the environment variable AWS_CONFIG_FILE + * @param profileName the aws profile name. + * @param shouldDisableIMDS whether or not to disable IMDS calls. + */ + DynamoDBStreamsClientConfiguration(const char* profileName, bool shouldDisableIMDS = false); + + /** + * Create a configuration with a predefined smart defaults + * @param useSmartDefaults, required to differentiate c-tors + * @param defaultMode, default mode to use + * @param shouldDisableIMDS whether or not to disable IMDS calls. + */ + DynamoDBStreamsClientConfiguration(bool useSmartDefaults, const char* defaultMode = "legacy", bool shouldDisableIMDS = false); + + /** + * Converting constructors for compatibility with a legacy code + */ + DynamoDBStreamsClientConfiguration(const Aws::Client::ClientConfiguration& config); + + private: + void LoadDynamoDBStreamsSpecificConfig(const Aws::String& profileName); +}; +} // namespace DynamoDBStreams +} // namespace Aws \ No newline at end of file diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsEndpointProvider.h b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsEndpointProvider.h index 93802fc9a918..d990fb7b2e87 100644 --- a/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsEndpointProvider.h +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsEndpointProvider.h @@ -4,25 +4,30 @@ */ #pragma once -#include #include #include #include #include +#include #include #include namespace Aws { namespace DynamoDBStreams { namespace Endpoint { +using DynamoDBStreamsClientConfiguration = Aws::DynamoDBStreams::DynamoDBStreamsClientConfiguration; using EndpointParameters = Aws::Endpoint::EndpointParameters; using Aws::Endpoint::DefaultEndpointProvider; using Aws::Endpoint::EndpointProviderBase; using DynamoDBStreamsClientContextParameters = Aws::Endpoint::ClientContextParameters; -using DynamoDBStreamsClientConfiguration = Aws::Client::GenericClientConfiguration; -using DynamoDBStreamsBuiltInParameters = Aws::Endpoint::BuiltInParameters; +class AWS_DYNAMODBSTREAMS_API DynamoDBStreamsBuiltInParameters : public Aws::Endpoint::BuiltInParameters { + public: + virtual ~DynamoDBStreamsBuiltInParameters() {}; + using Aws::Endpoint::BuiltInParameters::SetFromClientConfiguration; + virtual void SetFromClientConfiguration(const DynamoDBStreamsClientConfiguration& config); +}; /** * The type for the DynamoDBStreams Client Endpoint Provider. @@ -35,6 +40,24 @@ using DynamoDBStreamsEndpointProviderBase = using DynamoDBStreamsDefaultEpProviderBase = DefaultEndpointProvider; +} // namespace Endpoint +} // namespace DynamoDBStreams + +namespace Endpoint { +/** + * Export endpoint provider symbols for Windows DLL, otherwise declare as extern + */ +AWS_DYNAMODBSTREAMS_EXTERN template class AWS_DYNAMODBSTREAMS_API Aws::Endpoint::EndpointProviderBase< + DynamoDBStreams::Endpoint::DynamoDBStreamsClientConfiguration, DynamoDBStreams::Endpoint::DynamoDBStreamsBuiltInParameters, + DynamoDBStreams::Endpoint::DynamoDBStreamsClientContextParameters>; + +AWS_DYNAMODBSTREAMS_EXTERN template class AWS_DYNAMODBSTREAMS_API Aws::Endpoint::DefaultEndpointProvider< + DynamoDBStreams::Endpoint::DynamoDBStreamsClientConfiguration, DynamoDBStreams::Endpoint::DynamoDBStreamsBuiltInParameters, + DynamoDBStreams::Endpoint::DynamoDBStreamsClientContextParameters>; +} // namespace Endpoint + +namespace DynamoDBStreams { +namespace Endpoint { /** * Default endpoint provider used for this service */ diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsServiceClientModel.h b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsServiceClientModel.h index 2f792da67e33..a400a2df65a3 100644 --- a/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsServiceClientModel.h +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/include/aws/dynamodbstreams/DynamoDBStreamsServiceClientModel.h @@ -51,7 +51,6 @@ class RetryStrategy; } // namespace Client namespace DynamoDBStreams { -using DynamoDBStreamsClientConfiguration = Aws::Client::GenericClientConfiguration; using DynamoDBStreamsEndpointProviderBase = Aws::DynamoDBStreams::Endpoint::DynamoDBStreamsEndpointProviderBase; using DynamoDBStreamsEndpointProvider = Aws::DynamoDBStreams::Endpoint::DynamoDBStreamsEndpointProvider; diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsClientConfiguration.cpp b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsClientConfiguration.cpp new file mode 100644 index 000000000000..0a7aea97952c --- /dev/null +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsClientConfiguration.cpp @@ -0,0 +1,44 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include + +namespace Aws { +namespace DynamoDBStreams { + +void DynamoDBStreamsClientConfiguration::LoadDynamoDBStreamsSpecificConfig(const Aws::String& inputProfileName) { + this->configFactories.retryStrategyCreateFn = []() -> std::shared_ptr { + return Client::InitRetryStrategy(4, "", 0.025); + }; +#if defined(_MSC_VER) + (&reinterpret_cast(inputProfileName)); +#else + (void)(inputProfileName); +#endif +} + +DynamoDBStreamsClientConfiguration::DynamoDBStreamsClientConfiguration(const Aws::Client::ClientConfigurationInitValues& configuration) + : BaseClientConfigClass(configuration) { + LoadDynamoDBStreamsSpecificConfig(this->profileName); +} + +DynamoDBStreamsClientConfiguration::DynamoDBStreamsClientConfiguration(const char* inputProfileName, bool shouldDisableIMDS) + : BaseClientConfigClass(inputProfileName, shouldDisableIMDS) { + LoadDynamoDBStreamsSpecificConfig(Aws::String(inputProfileName)); +} + +DynamoDBStreamsClientConfiguration::DynamoDBStreamsClientConfiguration(bool useSmartDefaults, const char* defaultMode, + bool shouldDisableIMDS) + : BaseClientConfigClass(useSmartDefaults, defaultMode, shouldDisableIMDS) { + LoadDynamoDBStreamsSpecificConfig(this->profileName); +} + +DynamoDBStreamsClientConfiguration::DynamoDBStreamsClientConfiguration(const Aws::Client::ClientConfiguration& config) + : BaseClientConfigClass(config) { + LoadDynamoDBStreamsSpecificConfig(this->profileName); +} + +} // namespace DynamoDBStreams +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsEndpointProvider.cpp b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsEndpointProvider.cpp index 065f00f2b992..d9070a748417 100644 --- a/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsEndpointProvider.cpp +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsEndpointProvider.cpp @@ -6,7 +6,27 @@ #include namespace Aws { +#ifndef AWS_DYNAMODBSTREAMS_EXPORTS // Except for Windows DLL +namespace Endpoint { +/** + * Instantiate endpoint providers + */ +template class Aws::Endpoint::EndpointProviderBase; + +template class Aws::Endpoint::DefaultEndpointProvider; +} // namespace Endpoint +#endif + namespace DynamoDBStreams { -namespace Endpoint {} // namespace Endpoint +namespace Endpoint { +void DynamoDBStreamsBuiltInParameters::SetFromClientConfiguration(const DynamoDBStreamsClientConfiguration& config) { + SetFromClientConfiguration(static_cast(config)); +} + +} // namespace Endpoint } // namespace DynamoDBStreams } // namespace Aws diff --git a/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsErrors.cpp b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsErrors.cpp index 90f90829f67d..7a927e35382e 100644 --- a/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsErrors.cpp +++ b/generated/src/aws-cpp-sdk-dynamodbstreams/source/DynamoDBStreamsErrors.cpp @@ -27,7 +27,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == EXPIRED_ITERATOR_HASH) { return AWSError(static_cast(DynamoDBStreamsErrors::EXPIRED_ITERATOR), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(DynamoDBStreamsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(DynamoDBStreamsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-ecr-public/source/ECRPublicErrors.cpp b/generated/src/aws-cpp-sdk-ecr-public/source/ECRPublicErrors.cpp index e066310f13ec..6abc4a12df0a 100644 --- a/generated/src/aws-cpp-sdk-ecr-public/source/ECRPublicErrors.cpp +++ b/generated/src/aws-cpp-sdk-ecr-public/source/ECRPublicErrors.cpp @@ -66,7 +66,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == LAYERS_NOT_FOUND_HASH) { return AWSError(static_cast(ECRPublicErrors::LAYERS_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ECRPublicErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ECRPublicErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVER_HASH) { return AWSError(static_cast(ECRPublicErrors::SERVER), RetryableType::NOT_RETRYABLE); } else if (hashCode == REPOSITORY_POLICY_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-ecr/source/ECRErrors.cpp b/generated/src/aws-cpp-sdk-ecr/source/ECRErrors.cpp index 406afa461e43..1780ff0f35e1 100644 --- a/generated/src/aws-cpp-sdk-ecr/source/ECRErrors.cpp +++ b/generated/src/aws-cpp-sdk-ecr/source/ECRErrors.cpp @@ -87,7 +87,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == IMAGE_TAG_ALREADY_EXISTS_HASH) { return AWSError(static_cast(ECRErrors::IMAGE_TAG_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ECRErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ECRErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SECRET_NOT_FOUND_HASH) { return AWSError(static_cast(ECRErrors::SECRET_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LAYER_INACCESSIBLE_HASH) { diff --git a/generated/src/aws-cpp-sdk-ecs/source/ECSErrors.cpp b/generated/src/aws-cpp-sdk-ecs/source/ECSErrors.cpp index d674ed120a74..9322f8763675 100644 --- a/generated/src/aws-cpp-sdk-ecs/source/ECSErrors.cpp +++ b/generated/src/aws-cpp-sdk-ecs/source/ECSErrors.cpp @@ -62,7 +62,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NO_UPDATE_AVAILABLE_HASH) { return AWSError(static_cast(ECSErrors::NO_UPDATE_AVAILABLE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ECSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ECSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UPDATE_IN_PROGRESS_HASH) { return AWSError(static_cast(ECSErrors::UPDATE_IN_PROGRESS), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_PARAMETER_HASH) { diff --git a/generated/src/aws-cpp-sdk-es/source/ElasticsearchServiceErrors.cpp b/generated/src/aws-cpp-sdk-es/source/ElasticsearchServiceErrors.cpp index e221cb1209c0..4e967b18b26d 100644 --- a/generated/src/aws-cpp-sdk-es/source/ElasticsearchServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-es/source/ElasticsearchServiceErrors.cpp @@ -38,7 +38,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == BASE_HASH) { return AWSError(static_cast(ElasticsearchServiceErrors::BASE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ElasticsearchServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ElasticsearchServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_TYPE_HASH) { return AWSError(static_cast(ElasticsearchServiceErrors::INVALID_TYPE), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_PAGINATION_TOKEN_HASH) { diff --git a/generated/src/aws-cpp-sdk-eventbridge/source/EventBridgeErrors.cpp b/generated/src/aws-cpp-sdk-eventbridge/source/EventBridgeErrors.cpp index c081e1524b50..5e549ec627b3 100644 --- a/generated/src/aws-cpp-sdk-eventbridge/source/EventBridgeErrors.cpp +++ b/generated/src/aws-cpp-sdk-eventbridge/source/EventBridgeErrors.cpp @@ -42,7 +42,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == POLICY_LENGTH_EXCEEDED_HASH) { return AWSError(static_cast(EventBridgeErrors::POLICY_LENGTH_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(EventBridgeErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(EventBridgeErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(EventBridgeErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == ILLEGAL_STATUS_HASH) { diff --git a/generated/src/aws-cpp-sdk-events/source/CloudWatchEventsErrors.cpp b/generated/src/aws-cpp-sdk-events/source/CloudWatchEventsErrors.cpp index 529cfe79ec8d..7f83db51164d 100644 --- a/generated/src/aws-cpp-sdk-events/source/CloudWatchEventsErrors.cpp +++ b/generated/src/aws-cpp-sdk-events/source/CloudWatchEventsErrors.cpp @@ -42,7 +42,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == POLICY_LENGTH_EXCEEDED_HASH) { return AWSError(static_cast(CloudWatchEventsErrors::POLICY_LENGTH_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CloudWatchEventsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CloudWatchEventsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(CloudWatchEventsErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == ILLEGAL_STATUS_HASH) { diff --git a/generated/src/aws-cpp-sdk-finspace/source/FinspaceErrors.cpp b/generated/src/aws-cpp-sdk-finspace/source/FinspaceErrors.cpp index 67d1325a3ae9..728a608c8da4 100644 --- a/generated/src/aws-cpp-sdk-finspace/source/FinspaceErrors.cpp +++ b/generated/src/aws-cpp-sdk-finspace/source/FinspaceErrors.cpp @@ -42,7 +42,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_ALREADY_EXISTS_HASH) { return AWSError(static_cast(FinspaceErrors::RESOURCE_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(FinspaceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(FinspaceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_REQUEST_HASH) { return AWSError(static_cast(FinspaceErrors::INVALID_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-firehose/source/FirehoseErrors.cpp b/generated/src/aws-cpp-sdk-firehose/source/FirehoseErrors.cpp index fe5afb3df1ac..daabbb58187a 100644 --- a/generated/src/aws-cpp-sdk-firehose/source/FirehoseErrors.cpp +++ b/generated/src/aws-cpp-sdk-firehose/source/FirehoseErrors.cpp @@ -45,7 +45,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_SOURCE_HASH) { return AWSError(static_cast(FirehoseErrors::INVALID_SOURCE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(FirehoseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(FirehoseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(FirehoseErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_IN_USE_HASH) { diff --git a/generated/src/aws-cpp-sdk-fms/source/FMSErrors.cpp b/generated/src/aws-cpp-sdk-fms/source/FMSErrors.cpp index ef1c0da73da4..d4f48451658f 100644 --- a/generated/src/aws-cpp-sdk-fms/source/FMSErrors.cpp +++ b/generated/src/aws-cpp-sdk-fms/source/FMSErrors.cpp @@ -27,7 +27,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == INTERNAL_ERROR_HASH) { return AWSError(static_cast(FMSErrors::INTERNAL_ERROR), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(FMSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(FMSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_TYPE_HASH) { return AWSError(static_cast(FMSErrors::INVALID_TYPE), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_INPUT_HASH) { diff --git a/generated/src/aws-cpp-sdk-forecast/source/ForecastServiceErrors.cpp b/generated/src/aws-cpp-sdk-forecast/source/ForecastServiceErrors.cpp index 192ccefaca27..58f7d41d1403 100644 --- a/generated/src/aws-cpp-sdk-forecast/source/ForecastServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-forecast/source/ForecastServiceErrors.cpp @@ -27,7 +27,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == RESOURCE_ALREADY_EXISTS_HASH) { return AWSError(static_cast(ForecastServiceErrors::RESOURCE_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ForecastServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ForecastServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_INPUT_HASH) { return AWSError(static_cast(ForecastServiceErrors::INVALID_INPUT), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_IN_USE_HASH) { diff --git a/generated/src/aws-cpp-sdk-forecastquery/source/ForecastQueryServiceErrors.cpp b/generated/src/aws-cpp-sdk-forecastquery/source/ForecastQueryServiceErrors.cpp index 0c9c54e42b1d..6712cfeb752b 100644 --- a/generated/src/aws-cpp-sdk-forecastquery/source/ForecastQueryServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-forecastquery/source/ForecastQueryServiceErrors.cpp @@ -24,7 +24,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ForecastQueryServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ForecastQueryServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(ForecastQueryServiceErrors::RESOURCE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_INPUT_HASH) { diff --git a/generated/src/aws-cpp-sdk-gamelift/source/GameLiftErrors.cpp b/generated/src/aws-cpp-sdk-gamelift/source/GameLiftErrors.cpp index 923074fbccb0..57e7fcf5171d 100644 --- a/generated/src/aws-cpp-sdk-gamelift/source/GameLiftErrors.cpp +++ b/generated/src/aws-cpp-sdk-gamelift/source/GameLiftErrors.cpp @@ -42,7 +42,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == IDEMPOTENT_PARAMETER_MISMATCH_HASH) { return AWSError(static_cast(GameLiftErrors::IDEMPOTENT_PARAMETER_MISMATCH), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(GameLiftErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(GameLiftErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == FLEET_CAPACITY_EXCEEDED_HASH) { return AWSError(static_cast(GameLiftErrors::FLEET_CAPACITY_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVICE_HASH) { diff --git a/generated/src/aws-cpp-sdk-glacier/source/GlacierErrors.cpp b/generated/src/aws-cpp-sdk-glacier/source/GlacierErrors.cpp index 018d30f999cc..e7212050298b 100644 --- a/generated/src/aws-cpp-sdk-glacier/source/GlacierErrors.cpp +++ b/generated/src/aws-cpp-sdk-glacier/source/GlacierErrors.cpp @@ -93,7 +93,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INSUFFICIENT_CAPACITY_HASH) { return AWSError(static_cast(GlacierErrors::INSUFFICIENT_CAPACITY), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(GlacierErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(GlacierErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == POLICY_ENFORCED_HASH) { return AWSError(static_cast(GlacierErrors::POLICY_ENFORCED), RetryableType::NOT_RETRYABLE); } else if (hashCode == MISSING_PARAMETER_VALUE_HASH) { diff --git a/generated/src/aws-cpp-sdk-globalaccelerator/source/GlobalAcceleratorErrors.cpp b/generated/src/aws-cpp-sdk-globalaccelerator/source/GlobalAcceleratorErrors.cpp index 2fc7d4936c02..0df7ce615dab 100644 --- a/generated/src/aws-cpp-sdk-globalaccelerator/source/GlobalAcceleratorErrors.cpp +++ b/generated/src/aws-cpp-sdk-globalaccelerator/source/GlobalAcceleratorErrors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CONFLICT_HASH) { return AWSError(static_cast(GlobalAcceleratorErrors::CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(GlobalAcceleratorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(GlobalAcceleratorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ACCELERATOR_NOT_FOUND_HASH) { return AWSError(static_cast(GlobalAcceleratorErrors::ACCELERATOR_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == ATTACHMENT_NOT_FOUND_HASH) { @@ -53,7 +53,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_NEXT_TOKEN_HASH) { return AWSError(static_cast(GlobalAcceleratorErrors::INVALID_NEXT_TOKEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TRANSACTION_IN_PROGRESS_HASH) { - return AWSError(static_cast(GlobalAcceleratorErrors::TRANSACTION_IN_PROGRESS), RetryableType::RETRYABLE); + return AWSError(static_cast(GlobalAcceleratorErrors::TRANSACTION_IN_PROGRESS), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BYOIP_CIDR_NOT_FOUND_HASH) { return AWSError(static_cast(GlobalAcceleratorErrors::BYOIP_CIDR_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LISTENER_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-imagebuilder/source/ImagebuilderErrors.cpp b/generated/src/aws-cpp-sdk-imagebuilder/source/ImagebuilderErrors.cpp index c852fab784d0..6a9dcf4fde7b 100644 --- a/generated/src/aws-cpp-sdk-imagebuilder/source/ImagebuilderErrors.cpp +++ b/generated/src/aws-cpp-sdk-imagebuilder/source/ImagebuilderErrors.cpp @@ -55,7 +55,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CALL_RATE_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(ImagebuilderErrors::CALL_RATE_LIMIT_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ImagebuilderErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ImagebuilderErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(ImagebuilderErrors::RESOURCE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == SERVICE_HASH) { diff --git a/generated/src/aws-cpp-sdk-inspector/source/InspectorErrors.cpp b/generated/src/aws-cpp-sdk-inspector/source/InspectorErrors.cpp index 1a3975f41d33..4ac4ebf5017f 100644 --- a/generated/src/aws-cpp-sdk-inspector/source/InspectorErrors.cpp +++ b/generated/src/aws-cpp-sdk-inspector/source/InspectorErrors.cpp @@ -111,7 +111,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NO_SUCH_ENTITY_HASH) { return AWSError(static_cast(InspectorErrors::NO_SUCH_ENTITY), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(InspectorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(InspectorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ASSESSMENT_RUN_IN_PROGRESS_HASH) { return AWSError(static_cast(InspectorErrors::ASSESSMENT_RUN_IN_PROGRESS), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_INPUT_HASH) { diff --git a/generated/src/aws-cpp-sdk-internetmonitor/source/InternetMonitorErrors.cpp b/generated/src/aws-cpp-sdk-internetmonitor/source/InternetMonitorErrors.cpp index fe979f50b551..68bb9e6f5feb 100644 --- a/generated/src/aws-cpp-sdk-internetmonitor/source/InternetMonitorErrors.cpp +++ b/generated/src/aws-cpp-sdk-internetmonitor/source/InternetMonitorErrors.cpp @@ -33,7 +33,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(InternetMonitorErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(InternetMonitorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(InternetMonitorErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { return AWSError(static_cast(InternetMonitorErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-iot-managed-integrations/source/IoTManagedIntegrationsErrors.cpp b/generated/src/aws-cpp-sdk-iot-managed-integrations/source/IoTManagedIntegrationsErrors.cpp index fbf945504989..97ea03dee67f 100644 --- a/generated/src/aws-cpp-sdk-iot-managed-integrations/source/IoTManagedIntegrationsErrors.cpp +++ b/generated/src/aws-cpp-sdk-iot-managed-integrations/source/IoTManagedIntegrationsErrors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(IoTManagedIntegrationsErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(IoTManagedIntegrationsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(IoTManagedIntegrationsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_REQUEST_HASH) { return AWSError(static_cast(IoTManagedIntegrationsErrors::INVALID_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-iot/source/IoTErrors.cpp b/generated/src/aws-cpp-sdk-iot/source/IoTErrors.cpp index f68cc6e74933..7ee2ca005f39 100644 --- a/generated/src/aws-cpp-sdk-iot/source/IoTErrors.cpp +++ b/generated/src/aws-cpp-sdk-iot/source/IoTErrors.cpp @@ -71,7 +71,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NOT_CONFIGURED_HASH) { return AWSError(static_cast(IoTErrors::NOT_CONFIGURED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(IoTErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(IoTErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == MALFORMED_POLICY_HASH) { return AWSError(static_cast(IoTErrors::MALFORMED_POLICY), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_AGGREGATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-iotfleetwise/source/IoTFleetWiseErrors.cpp b/generated/src/aws-cpp-sdk-iotfleetwise/source/IoTFleetWiseErrors.cpp index 5344727f1d1d..7f5a2b106ea3 100644 --- a/generated/src/aws-cpp-sdk-iotfleetwise/source/IoTFleetWiseErrors.cpp +++ b/generated/src/aws-cpp-sdk-iotfleetwise/source/IoTFleetWiseErrors.cpp @@ -96,7 +96,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DECODER_MANIFEST_VALIDATION_HASH) { return AWSError(static_cast(IoTFleetWiseErrors::DECODER_MANIFEST_VALIDATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(IoTFleetWiseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(IoTFleetWiseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_NODE_HASH) { return AWSError(static_cast(IoTFleetWiseErrors::INVALID_NODE), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_SIGNALS_HASH) { diff --git a/generated/src/aws-cpp-sdk-iotsecuretunneling/source/IoTSecureTunnelingErrors.cpp b/generated/src/aws-cpp-sdk-iotsecuretunneling/source/IoTSecureTunnelingErrors.cpp index 14fdfd92a474..b3cd289cd0d2 100644 --- a/generated/src/aws-cpp-sdk-iotsecuretunneling/source/IoTSecureTunnelingErrors.cpp +++ b/generated/src/aws-cpp-sdk-iotsecuretunneling/source/IoTSecureTunnelingErrors.cpp @@ -21,7 +21,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(IoTSecureTunnelingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(IoTSecureTunnelingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } return AWSError(CoreErrors::UNKNOWN, false); } diff --git a/generated/src/aws-cpp-sdk-iotsitewise/source/IoTSiteWiseErrors.cpp b/generated/src/aws-cpp-sdk-iotsitewise/source/IoTSiteWiseErrors.cpp index 4e3195925b93..68572ea87c82 100644 --- a/generated/src/aws-cpp-sdk-iotsitewise/source/IoTSiteWiseErrors.cpp +++ b/generated/src/aws-cpp-sdk-iotsitewise/source/IoTSiteWiseErrors.cpp @@ -65,7 +65,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == QUERY_TIMEOUT_HASH) { return AWSError(static_cast(IoTSiteWiseErrors::QUERY_TIMEOUT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(IoTSiteWiseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(IoTSiteWiseErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(IoTSiteWiseErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONFLICTING_OPERATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-kafka/source/KafkaErrors.cpp b/generated/src/aws-cpp-sdk-kafka/source/KafkaErrors.cpp index 3debfcf14f2e..08a45a360acf 100644 --- a/generated/src/aws-cpp-sdk-kafka/source/KafkaErrors.cpp +++ b/generated/src/aws-cpp-sdk-kafka/source/KafkaErrors.cpp @@ -178,7 +178,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TOPIC_EXISTS_HASH) { return AWSError(static_cast(KafkaErrors::TOPIC_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(KafkaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(KafkaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(KafkaErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-kafkaconnect/source/KafkaConnectErrors.cpp b/generated/src/aws-cpp-sdk-kafkaconnect/source/KafkaConnectErrors.cpp index c3ee2ffb342e..1b05c9a5b4ee 100644 --- a/generated/src/aws-cpp-sdk-kafkaconnect/source/KafkaConnectErrors.cpp +++ b/generated/src/aws-cpp-sdk-kafkaconnect/source/KafkaConnectErrors.cpp @@ -35,7 +35,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(KafkaConnectErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(KafkaConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(KafkaConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(KafkaConnectErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-kinesis/source/KinesisErrors.cpp b/generated/src/aws-cpp-sdk-kinesis/source/KinesisErrors.cpp index e0db35c17e8a..c52209ffeae0 100644 --- a/generated/src/aws-cpp-sdk-kinesis/source/KinesisErrors.cpp +++ b/generated/src/aws-cpp-sdk-kinesis/source/KinesisErrors.cpp @@ -44,13 +44,14 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == EXPIRED_ITERATOR_HASH) { return AWSError(static_cast(KinesisErrors::EXPIRED_ITERATOR), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(KinesisErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(KinesisErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == K_M_S_THROTTLING_HASH) { return AWSError(static_cast(KinesisErrors::K_M_S_THROTTLING), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(KinesisErrors::RESOURCE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == PROVISIONED_THROUGHPUT_EXCEEDED_HASH) { - return AWSError(static_cast(KinesisErrors::PROVISIONED_THROUGHPUT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(KinesisErrors::PROVISIONED_THROUGHPUT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_ARGUMENT_HASH) { return AWSError(static_cast(KinesisErrors::INVALID_ARGUMENT), RetryableType::NOT_RETRYABLE); } else if (hashCode == EXPIRED_NEXT_TOKEN_HASH) { diff --git a/generated/src/aws-cpp-sdk-kinesisanalytics/source/KinesisAnalyticsErrors.cpp b/generated/src/aws-cpp-sdk-kinesisanalytics/source/KinesisAnalyticsErrors.cpp index e6ef8ed72b61..af659fcf2457 100644 --- a/generated/src/aws-cpp-sdk-kinesisanalytics/source/KinesisAnalyticsErrors.cpp +++ b/generated/src/aws-cpp-sdk-kinesisanalytics/source/KinesisAnalyticsErrors.cpp @@ -43,7 +43,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CODE_VALIDATION_HASH) { return AWSError(static_cast(KinesisAnalyticsErrors::CODE_VALIDATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(KinesisAnalyticsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(KinesisAnalyticsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(KinesisAnalyticsErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-kinesisanalyticsv2/source/KinesisAnalyticsV2Errors.cpp b/generated/src/aws-cpp-sdk-kinesisanalyticsv2/source/KinesisAnalyticsV2Errors.cpp index 2fb353e928f2..139c8f1fddb7 100644 --- a/generated/src/aws-cpp-sdk-kinesisanalyticsv2/source/KinesisAnalyticsV2Errors.cpp +++ b/generated/src/aws-cpp-sdk-kinesisanalyticsv2/source/KinesisAnalyticsV2Errors.cpp @@ -44,7 +44,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CODE_VALIDATION_HASH) { return AWSError(static_cast(KinesisAnalyticsV2Errors::CODE_VALIDATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(KinesisAnalyticsV2Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(KinesisAnalyticsV2Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(KinesisAnalyticsV2Errors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-kms/source/KMSErrors.cpp b/generated/src/aws-cpp-sdk-kms/source/KMSErrors.cpp index 494b350961c7..f956d543687a 100644 --- a/generated/src/aws-cpp-sdk-kms/source/KMSErrors.cpp +++ b/generated/src/aws-cpp-sdk-kms/source/KMSErrors.cpp @@ -88,7 +88,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_KEY_USAGE_HASH) { return AWSError(static_cast(KMSErrors::INVALID_KEY_USAGE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(KMSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(KMSErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INCORRECT_KEY_HASH) { return AWSError(static_cast(KMSErrors::INCORRECT_KEY), RetryableType::NOT_RETRYABLE); } else if (hashCode == CUSTOM_KEY_STORE_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-lambda-core/source/LambdaCoreErrors.cpp b/generated/src/aws-cpp-sdk-lambda-core/source/LambdaCoreErrors.cpp index 70c71e1a4f24..03c108525f6e 100644 --- a/generated/src/aws-cpp-sdk-lambda-core/source/LambdaCoreErrors.cpp +++ b/generated/src/aws-cpp-sdk-lambda-core/source/LambdaCoreErrors.cpp @@ -71,7 +71,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NETWORK_CONNECTOR_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(LambdaCoreErrors::NETWORK_CONNECTOR_LIMIT_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(LambdaCoreErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(LambdaCoreErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVICE_HASH) { return AWSError(static_cast(LambdaCoreErrors::SERVICE), RetryableType::RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-lambda-microvms/source/LambdaMicrovmsErrors.cpp b/generated/src/aws-cpp-sdk-lambda-microvms/source/LambdaMicrovmsErrors.cpp index c49684cb6404..fe1e33e7a0c7 100644 --- a/generated/src/aws-cpp-sdk-lambda-microvms/source/LambdaMicrovmsErrors.cpp +++ b/generated/src/aws-cpp-sdk-lambda-microvms/source/LambdaMicrovmsErrors.cpp @@ -98,7 +98,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_CONFLICT_HASH) { return AWSError(static_cast(LambdaMicrovmsErrors::RESOURCE_CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(LambdaMicrovmsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(LambdaMicrovmsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVICE_HASH) { return AWSError(static_cast(LambdaMicrovmsErrors::SERVICE), RetryableType::RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-lambda/source/LambdaErrors.cpp b/generated/src/aws-cpp-sdk-lambda/source/LambdaErrors.cpp index 42109ad51aa5..c21fda4a0f6e 100644 --- a/generated/src/aws-cpp-sdk-lambda/source/LambdaErrors.cpp +++ b/generated/src/aws-cpp-sdk-lambda/source/LambdaErrors.cpp @@ -516,7 +516,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == E_F_S_MOUNT_FAILURE_HASH) { return AWSError(static_cast(LambdaErrors::E_F_S_MOUNT_FAILURE), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(LambdaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(LambdaErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CODE_ARTIFACT_USER_FAILED_HASH) { return AWSError(static_cast(LambdaErrors::CODE_ARTIFACT_USER_FAILED), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_NOT_READY_HASH) { @@ -566,7 +566,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == K_M_S_DISABLED_HASH) { return AWSError(static_cast(LambdaErrors::K_M_S_DISABLED), RetryableType::RETRYABLE); } else if (hashCode == E_C2_THROTTLED_HASH) { - return AWSError(static_cast(LambdaErrors::E_C2_THROTTLED), RetryableType::RETRYABLE); + return AWSError(static_cast(LambdaErrors::E_C2_THROTTLED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_CONFLICT_HASH) { return AWSError(static_cast(LambdaErrors::RESOURCE_CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == E_N_I_LIMIT_REACHED_HASH) { diff --git a/generated/src/aws-cpp-sdk-lex/source/LexRuntimeServiceErrors.cpp b/generated/src/aws-cpp-sdk-lex/source/LexRuntimeServiceErrors.cpp index 335f9a2751a0..505e996a20fc 100644 --- a/generated/src/aws-cpp-sdk-lex/source/LexRuntimeServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-lex/source/LexRuntimeServiceErrors.cpp @@ -49,7 +49,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DEPENDENCY_FAILED_HASH) { return AWSError(static_cast(LexRuntimeServiceErrors::DEPENDENCY_FAILED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(LexRuntimeServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(LexRuntimeServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == NOT_ACCEPTABLE_HASH) { return AWSError(static_cast(LexRuntimeServiceErrors::NOT_ACCEPTABLE), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-logs/source/CloudWatchLogsErrors.cpp b/generated/src/aws-cpp-sdk-logs/source/CloudWatchLogsErrors.cpp index 90934155b058..a94608a0aed5 100644 --- a/generated/src/aws-cpp-sdk-logs/source/CloudWatchLogsErrors.cpp +++ b/generated/src/aws-cpp-sdk-logs/source/CloudWatchLogsErrors.cpp @@ -79,7 +79,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == MALFORMED_QUERY_HASH) { return AWSError(static_cast(CloudWatchLogsErrors::MALFORMED_QUERY), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CloudWatchLogsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CloudWatchLogsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(CloudWatchLogsErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_OPERATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-machinelearning/source/MachineLearningErrors.cpp b/generated/src/aws-cpp-sdk-machinelearning/source/MachineLearningErrors.cpp index 74634578d126..2bb6bfedfcec 100644 --- a/generated/src/aws-cpp-sdk-machinelearning/source/MachineLearningErrors.cpp +++ b/generated/src/aws-cpp-sdk-machinelearning/source/MachineLearningErrors.cpp @@ -70,7 +70,7 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(MachineLearningErrors::IDEMPOTENT_PARAMETER_MISMATCH), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(MachineLearningErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(MachineLearningErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == PREDICTOR_NOT_MOUNTED_HASH) { return AWSError(static_cast(MachineLearningErrors::PREDICTOR_NOT_MOUNTED), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_INPUT_HASH) { diff --git a/generated/src/aws-cpp-sdk-mediaconnect/source/MediaConnectErrors.cpp b/generated/src/aws-cpp-sdk-mediaconnect/source/MediaConnectErrors.cpp index ab8c147fb8e0..9e73def1291c 100644 --- a/generated/src/aws-cpp-sdk-mediaconnect/source/MediaConnectErrors.cpp +++ b/generated/src/aws-cpp-sdk-mediaconnect/source/MediaConnectErrors.cpp @@ -51,7 +51,7 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(MediaConnectErrors::ROUTER_OUTPUT_SERVICE_QUOTA_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(MediaConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaConnectErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ROUTER_INPUT_SERVICE_QUOTA_EXCEEDED_HASH) { return AWSError(static_cast(MediaConnectErrors::ROUTER_INPUT_SERVICE_QUOTA_EXCEEDED), RetryableType::NOT_RETRYABLE); diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertErrors.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertErrors.cpp index 07fbb14674e3..a2ef9795deaa 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertErrors.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertErrors.cpp @@ -35,7 +35,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(MediaConvertErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(MediaConvertErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaConvertErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(MediaConvertErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-medialive/source/MediaLiveErrors.cpp b/generated/src/aws-cpp-sdk-medialive/source/MediaLiveErrors.cpp index 2baaaa07672b..ef206359900d 100644 --- a/generated/src/aws-cpp-sdk-medialive/source/MediaLiveErrors.cpp +++ b/generated/src/aws-cpp-sdk-medialive/source/MediaLiveErrors.cpp @@ -47,7 +47,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == GATEWAY_TIMEOUT_HASH) { return AWSError(static_cast(MediaLiveErrors::GATEWAY_TIMEOUT), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(MediaLiveErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaLiveErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNPROCESSABLE_ENTITY_HASH) { return AWSError(static_cast(MediaLiveErrors::UNPROCESSABLE_ENTITY), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-mediapackage-vod/source/MediaPackageVodErrors.cpp b/generated/src/aws-cpp-sdk-mediapackage-vod/source/MediaPackageVodErrors.cpp index e046874a4691..55abf5f46a97 100644 --- a/generated/src/aws-cpp-sdk-mediapackage-vod/source/MediaPackageVodErrors.cpp +++ b/generated/src/aws-cpp-sdk-mediapackage-vod/source/MediaPackageVodErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(MediaPackageVodErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(MediaPackageVodErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaPackageVodErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNPROCESSABLE_ENTITY_HASH) { return AWSError(static_cast(MediaPackageVodErrors::UNPROCESSABLE_ENTITY), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-mediapackage/source/MediaPackageErrors.cpp b/generated/src/aws-cpp-sdk-mediapackage/source/MediaPackageErrors.cpp index 6fde49a8e680..eee9c58e3c11 100644 --- a/generated/src/aws-cpp-sdk-mediapackage/source/MediaPackageErrors.cpp +++ b/generated/src/aws-cpp-sdk-mediapackage/source/MediaPackageErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(MediaPackageErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(MediaPackageErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaPackageErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNPROCESSABLE_ENTITY_HASH) { return AWSError(static_cast(MediaPackageErrors::UNPROCESSABLE_ENTITY), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-mediastore/source/MediaStoreErrors.cpp b/generated/src/aws-cpp-sdk-mediastore/source/MediaStoreErrors.cpp index 920159153622..dcadc595e129 100644 --- a/generated/src/aws-cpp-sdk-mediastore/source/MediaStoreErrors.cpp +++ b/generated/src/aws-cpp-sdk-mediastore/source/MediaStoreErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CORS_POLICY_NOT_FOUND_HASH) { return AWSError(static_cast(MediaStoreErrors::CORS_POLICY_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(MediaStoreErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(MediaStoreErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONTAINER_NOT_FOUND_HASH) { return AWSError(static_cast(MediaStoreErrors::CONTAINER_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == POLICY_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-monitoring/source/CloudWatchErrors.cpp b/generated/src/aws-cpp-sdk-monitoring/source/CloudWatchErrors.cpp index 27678360a946..075c521c2b77 100644 --- a/generated/src/aws-cpp-sdk-monitoring/source/CloudWatchErrors.cpp +++ b/generated/src/aws-cpp-sdk-monitoring/source/CloudWatchErrors.cpp @@ -48,7 +48,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVICE_FAULT_HASH) { return AWSError(static_cast(CloudWatchErrors::INTERNAL_SERVICE_FAULT), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(CloudWatchErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(CloudWatchErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(CloudWatchErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == DASHBOARD_NOT_FOUND_HASH) { diff --git a/generated/src/aws-cpp-sdk-neptunedata/source/NeptunedataErrors.cpp b/generated/src/aws-cpp-sdk-neptunedata/source/NeptunedataErrors.cpp index 8e3700c546f4..6c0863fa9bea 100644 --- a/generated/src/aws-cpp-sdk-neptunedata/source/NeptunedataErrors.cpp +++ b/generated/src/aws-cpp-sdk-neptunedata/source/NeptunedataErrors.cpp @@ -337,7 +337,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == MEMORY_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(NeptunedataErrors::MEMORY_LIMIT_EXCEEDED), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(NeptunedataErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(NeptunedataErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == M_L_RESOURCE_NOT_FOUND_HASH) { return AWSError(static_cast(NeptunedataErrors::M_L_RESOURCE_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-network-firewall/source/NetworkFirewallErrors.cpp b/generated/src/aws-cpp-sdk-network-firewall/source/NetworkFirewallErrors.cpp index 1b526f8e35ea..87d52d1ad637 100644 --- a/generated/src/aws-cpp-sdk-network-firewall/source/NetworkFirewallErrors.cpp +++ b/generated/src/aws-cpp-sdk-network-firewall/source/NetworkFirewallErrors.cpp @@ -35,7 +35,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_OWNER_CHECK_HASH) { return AWSError(static_cast(NetworkFirewallErrors::RESOURCE_OWNER_CHECK), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(NetworkFirewallErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(NetworkFirewallErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNSUPPORTED_OPERATION_HASH) { return AWSError(static_cast(NetworkFirewallErrors::UNSUPPORTED_OPERATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_RESOURCE_POLICY_HASH) { diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp index 77aebbaa535f..b272c5a53702 100644 --- a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp @@ -74,7 +74,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(ObservabilityAdminErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ObservabilityAdminErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ObservabilityAdminErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_STATE_HASH) { return AWSError(static_cast(ObservabilityAdminErrors::INVALID_STATE), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-opensearch/source/OpenSearchServiceErrors.cpp b/generated/src/aws-cpp-sdk-opensearch/source/OpenSearchServiceErrors.cpp index 655ab1487d5b..8e6ea1461be8 100644 --- a/generated/src/aws-cpp-sdk-opensearch/source/OpenSearchServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-opensearch/source/OpenSearchServiceErrors.cpp @@ -53,7 +53,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == BASE_HASH) { return AWSError(static_cast(OpenSearchServiceErrors::BASE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(OpenSearchServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(OpenSearchServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_TYPE_HASH) { return AWSError(static_cast(OpenSearchServiceErrors::INVALID_TYPE), RetryableType::NOT_RETRYABLE); } else if (hashCode == SLOT_NOT_AVAILABLE_HASH) { diff --git a/generated/src/aws-cpp-sdk-organizations/source/OrganizationsErrors.cpp b/generated/src/aws-cpp-sdk-organizations/source/OrganizationsErrors.cpp index 9c59671863f1..becfa01af183 100644 --- a/generated/src/aws-cpp-sdk-organizations/source/OrganizationsErrors.cpp +++ b/generated/src/aws-cpp-sdk-organizations/source/OrganizationsErrors.cpp @@ -142,7 +142,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == ACCESS_DENIED_FOR_DEPENDENCY_HASH) { return AWSError(static_cast(OrganizationsErrors::ACCESS_DENIED_FOR_DEPENDENCY), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(OrganizationsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(OrganizationsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == POLICY_IN_USE_HASH) { return AWSError(static_cast(OrganizationsErrors::POLICY_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONFLICT_HASH) { diff --git a/generated/src/aws-cpp-sdk-osis/source/OSISErrors.cpp b/generated/src/aws-cpp-sdk-osis/source/OSISErrors.cpp index 225d4596d3ac..d3eb451d6313 100644 --- a/generated/src/aws-cpp-sdk-osis/source/OSISErrors.cpp +++ b/generated/src/aws-cpp-sdk-osis/source/OSISErrors.cpp @@ -34,7 +34,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == RESOURCE_ALREADY_EXISTS_HASH) { return AWSError(static_cast(OSISErrors::RESOURCE_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(OSISErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(OSISErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_PAGINATION_TOKEN_HASH) { return AWSError(static_cast(OSISErrors::INVALID_PAGINATION_TOKEN), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-personalize/source/PersonalizeErrors.cpp b/generated/src/aws-cpp-sdk-personalize/source/PersonalizeErrors.cpp index 6cd1f3976161..1e77a5fb5c11 100644 --- a/generated/src/aws-cpp-sdk-personalize/source/PersonalizeErrors.cpp +++ b/generated/src/aws-cpp-sdk-personalize/source/PersonalizeErrors.cpp @@ -29,7 +29,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == RESOURCE_ALREADY_EXISTS_HASH) { return AWSError(static_cast(PersonalizeErrors::RESOURCE_ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(PersonalizeErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(PersonalizeErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(PersonalizeErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_TAG_KEYS_HASH) { diff --git a/generated/src/aws-cpp-sdk-pinpoint-email/source/PinpointEmailErrors.cpp b/generated/src/aws-cpp-sdk-pinpoint-email/source/PinpointEmailErrors.cpp index 7fb97fd64ba2..53057564dbc2 100644 --- a/generated/src/aws-cpp-sdk-pinpoint-email/source/PinpointEmailErrors.cpp +++ b/generated/src/aws-cpp-sdk-pinpoint-email/source/PinpointEmailErrors.cpp @@ -38,11 +38,11 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == MAIL_FROM_DOMAIN_NOT_VERIFIED_HASH) { return AWSError(static_cast(PinpointEmailErrors::MAIL_FROM_DOMAIN_NOT_VERIFIED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(PinpointEmailErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(PinpointEmailErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ALREADY_EXISTS_HASH) { return AWSError(static_cast(PinpointEmailErrors::ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(PinpointEmailErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(PinpointEmailErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(PinpointEmailErrors::CONCURRENT_MODIFICATION), RetryableType::RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-pinpoint/source/PinpointErrors.cpp b/generated/src/aws-cpp-sdk-pinpoint/source/PinpointErrors.cpp index d8e63fe80482..3d46081e0440 100644 --- a/generated/src/aws-cpp-sdk-pinpoint/source/PinpointErrors.cpp +++ b/generated/src/aws-cpp-sdk-pinpoint/source/PinpointErrors.cpp @@ -93,7 +93,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == PAYLOAD_TOO_LARGE_HASH) { return AWSError(static_cast(PinpointErrors::PAYLOAD_TOO_LARGE), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(PinpointErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(PinpointErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(PinpointErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-quicksight/source/QuickSightErrors.cpp b/generated/src/aws-cpp-sdk-quicksight/source/QuickSightErrors.cpp index 40313867e35b..39d3eb8a18c1 100644 --- a/generated/src/aws-cpp-sdk-quicksight/source/QuickSightErrors.cpp +++ b/generated/src/aws-cpp-sdk-quicksight/source/QuickSightErrors.cpp @@ -201,7 +201,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_DATA_SET_PARAMETER_VALUE_HASH) { return AWSError(static_cast(QuickSightErrors::INVALID_DATA_SET_PARAMETER_VALUE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(QuickSightErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(QuickSightErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == QUICK_SIGHT_USER_NOT_FOUND_HASH) { return AWSError(static_cast(QuickSightErrors::QUICK_SIGHT_USER_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == IDENTITY_TYPE_NOT_SUPPORTED_HASH) { diff --git a/generated/src/aws-cpp-sdk-rekognition/source/RekognitionErrors.cpp b/generated/src/aws-cpp-sdk-rekognition/source/RekognitionErrors.cpp index 4f6c2a0183bd..3bc690d373b1 100644 --- a/generated/src/aws-cpp-sdk-rekognition/source/RekognitionErrors.cpp +++ b/generated/src/aws-cpp-sdk-rekognition/source/RekognitionErrors.cpp @@ -57,7 +57,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == IDEMPOTENT_PARAMETER_MISMATCH_HASH) { return AWSError(static_cast(RekognitionErrors::IDEMPOTENT_PARAMETER_MISMATCH), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(RekognitionErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(RekognitionErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_MANIFEST_HASH) { return AWSError(static_cast(RekognitionErrors::INVALID_MANIFEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_POLICY_REVISION_ID_HASH) { @@ -73,7 +73,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_PARAMETER_HASH) { return AWSError(static_cast(RekognitionErrors::INVALID_PARAMETER), RetryableType::NOT_RETRYABLE); } else if (hashCode == PROVISIONED_THROUGHPUT_EXCEEDED_HASH) { - return AWSError(static_cast(RekognitionErrors::PROVISIONED_THROUGHPUT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(RekognitionErrors::PROVISIONED_THROUGHPUT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == RESOURCE_IN_USE_HASH) { return AWSError(static_cast(RekognitionErrors::RESOURCE_IN_USE), RetryableType::NOT_RETRYABLE); } else if (hashCode == VIDEO_TOO_LARGE_HASH) { diff --git a/generated/src/aws-cpp-sdk-resource-groups/source/ResourceGroupsErrors.cpp b/generated/src/aws-cpp-sdk-resource-groups/source/ResourceGroupsErrors.cpp index 20401059b34f..7b45405c3583 100644 --- a/generated/src/aws-cpp-sdk-resource-groups/source/ResourceGroupsErrors.cpp +++ b/generated/src/aws-cpp-sdk-resource-groups/source/ResourceGroupsErrors.cpp @@ -33,7 +33,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(ResourceGroupsErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ResourceGroupsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ResourceGroupsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(ResourceGroupsErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-route53/source/Route53Errors.cpp b/generated/src/aws-cpp-sdk-route53/source/Route53Errors.cpp index 98f44e885f2d..99c0f5ec0800 100644 --- a/generated/src/aws-cpp-sdk-route53/source/Route53Errors.cpp +++ b/generated/src/aws-cpp-sdk-route53/source/Route53Errors.cpp @@ -195,7 +195,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NO_SUCH_CIDR_LOCATION_HASH) { return AWSError(static_cast(Route53Errors::NO_SUCH_CIDR_LOCATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == PRIOR_REQUEST_NOT_COMPLETE_HASH) { - return AWSError(static_cast(Route53Errors::PRIOR_REQUEST_NOT_COMPLETE), RetryableType::RETRYABLE); + return AWSError(static_cast(Route53Errors::PRIOR_REQUEST_NOT_COMPLETE), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_V_P_C_ASSOCIATION_AUTHORIZATIONS_HASH) { return AWSError(static_cast(Route53Errors::TOO_MANY_V_P_C_ASSOCIATION_AUTHORIZATIONS), RetryableType::NOT_RETRYABLE); diff --git a/generated/src/aws-cpp-sdk-route53profiles/source/Route53ProfilesErrors.cpp b/generated/src/aws-cpp-sdk-route53profiles/source/Route53ProfilesErrors.cpp index fd52f0982a14..01a00b96c913 100644 --- a/generated/src/aws-cpp-sdk-route53profiles/source/Route53ProfilesErrors.cpp +++ b/generated/src/aws-cpp-sdk-route53profiles/source/Route53ProfilesErrors.cpp @@ -61,7 +61,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_PARAMETER_HASH) { return AWSError(static_cast(Route53ProfilesErrors::INVALID_PARAMETER), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(Route53ProfilesErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(Route53ProfilesErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INTERNAL_SERVICE_ERROR_HASH) { return AWSError(static_cast(Route53ProfilesErrors::INTERNAL_SERVICE_ERROR), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_NEXT_TOKEN_HASH) { diff --git a/generated/src/aws-cpp-sdk-route53resolver/source/Route53ResolverErrors.cpp b/generated/src/aws-cpp-sdk-route53resolver/source/Route53ResolverErrors.cpp index 05e3802d595d..ba1afbc28be2 100644 --- a/generated/src/aws-cpp-sdk-route53resolver/source/Route53ResolverErrors.cpp +++ b/generated/src/aws-cpp-sdk-route53resolver/source/Route53ResolverErrors.cpp @@ -82,7 +82,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_POLICY_DOCUMENT_HASH) { return AWSError(static_cast(Route53ResolverErrors::INVALID_POLICY_DOCUMENT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(Route53ResolverErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(Route53ResolverErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_TAG_HASH) { return AWSError(static_cast(Route53ResolverErrors::INVALID_TAG), RetryableType::NOT_RETRYABLE); } else if (hashCode == UNKNOWN_RESOURCE_HASH) { diff --git a/generated/src/aws-cpp-sdk-s3control/source/S3ControlErrors.cpp b/generated/src/aws-cpp-sdk-s3control/source/S3ControlErrors.cpp index 983a09aedc5d..35d9422ef45d 100644 --- a/generated/src/aws-cpp-sdk-s3control/source/S3ControlErrors.cpp +++ b/generated/src/aws-cpp-sdk-s3control/source/S3ControlErrors.cpp @@ -40,7 +40,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(S3ControlErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(S3ControlErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(S3ControlErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INTERNAL_SERVICE_HASH) { return AWSError(static_cast(S3ControlErrors::INTERNAL_SERVICE), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-s3tables/source/S3TablesErrors.cpp b/generated/src/aws-cpp-sdk-s3tables/source/S3TablesErrors.cpp index 595e9ba3213a..c0f36ba3db49 100644 --- a/generated/src/aws-cpp-sdk-s3tables/source/S3TablesErrors.cpp +++ b/generated/src/aws-cpp-sdk-s3tables/source/S3TablesErrors.cpp @@ -33,7 +33,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == FORBIDDEN_HASH) { return AWSError(static_cast(S3TablesErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(S3TablesErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(S3TablesErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { return AWSError(static_cast(S3TablesErrors::INTERNAL_SERVER_ERROR), RetryableType::RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-schemas/source/SchemasErrors.cpp b/generated/src/aws-cpp-sdk-schemas/source/SchemasErrors.cpp index 119d96c4b893..e26f15002fce 100644 --- a/generated/src/aws-cpp-sdk-schemas/source/SchemasErrors.cpp +++ b/generated/src/aws-cpp-sdk-schemas/source/SchemasErrors.cpp @@ -112,7 +112,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == GONE_HASH) { return AWSError(static_cast(SchemasErrors::GONE), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SchemasErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SchemasErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(SchemasErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-secretsmanager/source/SecretsManagerErrors.cpp b/generated/src/aws-cpp-sdk-secretsmanager/source/SecretsManagerErrors.cpp index 60a3b95e89dd..48f9091a69cd 100644 --- a/generated/src/aws-cpp-sdk-secretsmanager/source/SecretsManagerErrors.cpp +++ b/generated/src/aws-cpp-sdk-secretsmanager/source/SecretsManagerErrors.cpp @@ -39,7 +39,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INVALID_PARAMETER_HASH) { return AWSError(static_cast(SecretsManagerErrors::INVALID_PARAMETER), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(SecretsManagerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(SecretsManagerErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == DECRYPTION_FAILURE_HASH) { return AWSError(static_cast(SecretsManagerErrors::DECRYPTION_FAILURE), RetryableType::NOT_RETRYABLE); } else if (hashCode == PUBLIC_POLICY_HASH) { diff --git a/generated/src/aws-cpp-sdk-securityhub/source/SecurityHubErrors.cpp b/generated/src/aws-cpp-sdk-securityhub/source/SecurityHubErrors.cpp index 522884e4afc8..11267d9974cd 100644 --- a/generated/src/aws-cpp-sdk-securityhub/source/SecurityHubErrors.cpp +++ b/generated/src/aws-cpp-sdk-securityhub/source/SecurityHubErrors.cpp @@ -147,7 +147,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(SecurityHubErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(SecurityHubErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(SecurityHubErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ORGANIZATION_NOT_FOUND_HASH) { return AWSError(static_cast(SecurityHubErrors::ORGANIZATION_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_CONFLICT_HASH) { diff --git a/generated/src/aws-cpp-sdk-serverlessrepo/source/ServerlessApplicationRepositoryErrors.cpp b/generated/src/aws-cpp-sdk-serverlessrepo/source/ServerlessApplicationRepositoryErrors.cpp index c07d761c08fd..49dbbff31591 100644 --- a/generated/src/aws-cpp-sdk-serverlessrepo/source/ServerlessApplicationRepositoryErrors.cpp +++ b/generated/src/aws-cpp-sdk-serverlessrepo/source/ServerlessApplicationRepositoryErrors.cpp @@ -76,7 +76,7 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(ServerlessApplicationRepositoryErrors::FORBIDDEN), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { return AWSError(static_cast(ServerlessApplicationRepositoryErrors::TOO_MANY_REQUESTS), - RetryableType::RETRYABLE); + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(ServerlessApplicationRepositoryErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVER_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-service-quotas/source/ServiceQuotasErrors.cpp b/generated/src/aws-cpp-sdk-service-quotas/source/ServiceQuotasErrors.cpp index b57aa94ea8b1..eec05dc3ddd8 100644 --- a/generated/src/aws-cpp-sdk-service-quotas/source/ServiceQuotasErrors.cpp +++ b/generated/src/aws-cpp-sdk-service-quotas/source/ServiceQuotasErrors.cpp @@ -64,7 +64,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(ServiceQuotasErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(ServiceQuotasErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(ServiceQuotasErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == QUOTA_EXCEEDED_HASH) { return AWSError(static_cast(ServiceQuotasErrors::QUOTA_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == SERVICE_HASH) { diff --git a/generated/src/aws-cpp-sdk-servicecatalog/source/ServiceCatalogErrors.cpp b/generated/src/aws-cpp-sdk-servicecatalog/source/ServiceCatalogErrors.cpp index 307d9acdc314..7fbf9746bcb0 100644 --- a/generated/src/aws-cpp-sdk-servicecatalog/source/ServiceCatalogErrors.cpp +++ b/generated/src/aws-cpp-sdk-servicecatalog/source/ServiceCatalogErrors.cpp @@ -31,7 +31,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == OPERATION_NOT_SUPPORTED_HASH) { return AWSError(static_cast(ServiceCatalogErrors::OPERATION_NOT_SUPPORTED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ServiceCatalogErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ServiceCatalogErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == DUPLICATE_RESOURCE_HASH) { return AWSError(static_cast(ServiceCatalogErrors::DUPLICATE_RESOURCE), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_IN_USE_HASH) { diff --git a/generated/src/aws-cpp-sdk-servicediscovery/source/ServiceDiscoveryErrors.cpp b/generated/src/aws-cpp-sdk-servicediscovery/source/ServiceDiscoveryErrors.cpp index ff0fe84a3644..e05252064621 100644 --- a/generated/src/aws-cpp-sdk-servicediscovery/source/ServiceDiscoveryErrors.cpp +++ b/generated/src/aws-cpp-sdk-servicediscovery/source/ServiceDiscoveryErrors.cpp @@ -84,7 +84,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == TOO_MANY_TAGS_HASH) { return AWSError(static_cast(ServiceDiscoveryErrors::TOO_MANY_TAGS), RetryableType::NOT_RETRYABLE); } else if (hashCode == REQUEST_LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(ServiceDiscoveryErrors::REQUEST_LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(ServiceDiscoveryErrors::REQUEST_LIMIT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVICE_NOT_FOUND_HASH) { return AWSError(static_cast(ServiceDiscoveryErrors::SERVICE_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == RESOURCE_LIMIT_EXCEEDED_HASH) { diff --git a/generated/src/aws-cpp-sdk-sesv2/source/SESV2Errors.cpp b/generated/src/aws-cpp-sdk-sesv2/source/SESV2Errors.cpp index 00daec5a1714..d2f1ef2cc59c 100644 --- a/generated/src/aws-cpp-sdk-sesv2/source/SESV2Errors.cpp +++ b/generated/src/aws-cpp-sdk-sesv2/source/SESV2Errors.cpp @@ -37,7 +37,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == SENDING_PAUSED_HASH) { return AWSError(static_cast(SESV2Errors::SENDING_PAUSED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(SESV2Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(SESV2Errors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ALREADY_EXISTS_HASH) { return AWSError(static_cast(SESV2Errors::ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { @@ -51,7 +51,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == MAIL_FROM_DOMAIN_NOT_VERIFIED_HASH) { return AWSError(static_cast(SESV2Errors::MAIL_FROM_DOMAIN_NOT_VERIFIED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SESV2Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SESV2Errors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(SESV2Errors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVICE_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-signer-data/source/SignerDataErrors.cpp b/generated/src/aws-cpp-sdk-signer-data/source/SignerDataErrors.cpp index a77248be0f8b..8c573877942f 100644 --- a/generated/src/aws-cpp-sdk-signer-data/source/SignerDataErrors.cpp +++ b/generated/src/aws-cpp-sdk-signer-data/source/SignerDataErrors.cpp @@ -51,7 +51,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SignerDataErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SignerDataErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INTERNAL_SERVICE_ERROR_HASH) { return AWSError(static_cast(SignerDataErrors::INTERNAL_SERVICE_ERROR), RetryableType::RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-signer/source/SignerErrors.cpp b/generated/src/aws-cpp-sdk-signer/source/SignerErrors.cpp index b98db0b3732c..43f195b6fe35 100644 --- a/generated/src/aws-cpp-sdk-signer/source/SignerErrors.cpp +++ b/generated/src/aws-cpp-sdk-signer/source/SignerErrors.cpp @@ -101,7 +101,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NOT_FOUND_HASH) { return AWSError(static_cast(SignerErrors::NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SignerErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SignerErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == SERVICE_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(SignerErrors::SERVICE_LIMIT_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == INTERNAL_SERVICE_ERROR_HASH) { diff --git a/generated/src/aws-cpp-sdk-sms-voice/source/PinpointSMSVoiceErrors.cpp b/generated/src/aws-cpp-sdk-sms-voice/source/PinpointSMSVoiceErrors.cpp index 5f9edba940ef..d2469b5e5c5b 100644 --- a/generated/src/aws-cpp-sdk-sms-voice/source/PinpointSMSVoiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-sms-voice/source/PinpointSMSVoiceErrors.cpp @@ -28,9 +28,9 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == NOT_FOUND_HASH) { return AWSError(static_cast(PinpointSMSVoiceErrors::NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(PinpointSMSVoiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(PinpointSMSVoiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(PinpointSMSVoiceErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(PinpointSMSVoiceErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == ALREADY_EXISTS_HASH) { return AWSError(static_cast(PinpointSMSVoiceErrors::ALREADY_EXISTS), RetryableType::NOT_RETRYABLE); } else if (hashCode == BAD_REQUEST_HASH) { diff --git a/generated/src/aws-cpp-sdk-socialmessaging/source/SocialMessagingErrors.cpp b/generated/src/aws-cpp-sdk-socialmessaging/source/SocialMessagingErrors.cpp index b28bff9c227d..1a53ac5389fd 100644 --- a/generated/src/aws-cpp-sdk-socialmessaging/source/SocialMessagingErrors.cpp +++ b/generated/src/aws-cpp-sdk-socialmessaging/source/SocialMessagingErrors.cpp @@ -26,7 +26,7 @@ AWSError GetErrorForName(const char* errorName) { int hashCode = HashingUtils::HashString(errorName); if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(SocialMessagingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(SocialMessagingErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == DEPENDENCY_HASH) { return AWSError(static_cast(SocialMessagingErrors::DEPENDENCY), RetryableType::RETRYABLE); } else if (hashCode == ACCESS_DENIED_BY_META_HASH) { diff --git a/generated/src/aws-cpp-sdk-sqs/include/aws/sqs/model/ReceiveMessageRequest.h b/generated/src/aws-cpp-sdk-sqs/include/aws/sqs/model/ReceiveMessageRequest.h index f26fcc154d01..bdd85790b6f9 100644 --- a/generated/src/aws-cpp-sdk-sqs/include/aws/sqs/model/ReceiveMessageRequest.h +++ b/generated/src/aws-cpp-sdk-sqs/include/aws/sqs/model/ReceiveMessageRequest.h @@ -32,6 +32,7 @@ class ReceiveMessageRequest : public SQSRequest { // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ReceiveMessage"; } + inline virtual bool IsLongPollingOperation() const override { return true; } AWS_SQS_API Aws::String SerializePayload() const override; AWS_SQS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; diff --git a/generated/src/aws-cpp-sdk-sso/source/SSOErrors.cpp b/generated/src/aws-cpp-sdk-sso/source/SSOErrors.cpp index c727b193f76f..118cc85fefda 100644 --- a/generated/src/aws-cpp-sdk-sso/source/SSOErrors.cpp +++ b/generated/src/aws-cpp-sdk-sso/source/SSOErrors.cpp @@ -25,7 +25,7 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == UNAUTHORIZED_HASH) { return AWSError(static_cast(SSOErrors::UNAUTHORIZED), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SSOErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SSOErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_REQUEST_HASH) { return AWSError(static_cast(SSOErrors::INVALID_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-states/include/aws/states/model/GetActivityTaskRequest.h b/generated/src/aws-cpp-sdk-states/include/aws/states/model/GetActivityTaskRequest.h index 2764abe02c1d..a75013a70308 100644 --- a/generated/src/aws-cpp-sdk-states/include/aws/states/model/GetActivityTaskRequest.h +++ b/generated/src/aws-cpp-sdk-states/include/aws/states/model/GetActivityTaskRequest.h @@ -26,6 +26,7 @@ class GetActivityTaskRequest : public SFNRequest { // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "GetActivityTask"; } + inline virtual bool IsLongPollingOperation() const override { return true; } AWS_SFN_API Aws::String SerializePayload() const override; AWS_SFN_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; diff --git a/generated/src/aws-cpp-sdk-sts/source/STSErrors.cpp b/generated/src/aws-cpp-sdk-sts/source/STSErrors.cpp index 8c2ef5df6c08..82a0c89301ab 100644 --- a/generated/src/aws-cpp-sdk-sts/source/STSErrors.cpp +++ b/generated/src/aws-cpp-sdk-sts/source/STSErrors.cpp @@ -37,7 +37,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == PACKED_POLICY_TOO_LARGE_HASH) { return AWSError(static_cast(STSErrors::PACKED_POLICY_TOO_LARGE), RetryableType::NOT_RETRYABLE); } else if (hashCode == I_D_P_COMMUNICATION_ERROR_HASH) { - return AWSError(static_cast(STSErrors::I_D_P_COMMUNICATION_ERROR), RetryableType::NOT_RETRYABLE); + return AWSError(static_cast(STSErrors::I_D_P_COMMUNICATION_ERROR), RetryableType::RETRYABLE); } else if (hashCode == I_D_P_REJECTED_CLAIM_HASH) { return AWSError(static_cast(STSErrors::I_D_P_REJECTED_CLAIM), RetryableType::NOT_RETRYABLE); } else if (hashCode == SESSION_DURATION_ESCALATION_HASH) { diff --git a/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForActivityTaskRequest.h b/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForActivityTaskRequest.h index d8d71bc9d785..509fb6bdc37d 100644 --- a/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForActivityTaskRequest.h +++ b/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForActivityTaskRequest.h @@ -27,6 +27,7 @@ class PollForActivityTaskRequest : public SWFRequest { // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PollForActivityTask"; } + inline virtual bool IsLongPollingOperation() const override { return true; } AWS_SWF_API Aws::String SerializePayload() const override; AWS_SWF_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; diff --git a/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForDecisionTaskRequest.h b/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForDecisionTaskRequest.h index b359db083672..fb4709024c46 100644 --- a/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForDecisionTaskRequest.h +++ b/generated/src/aws-cpp-sdk-swf/include/aws/swf/model/PollForDecisionTaskRequest.h @@ -27,6 +27,7 @@ class PollForDecisionTaskRequest : public SWFRequest { // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PollForDecisionTask"; } + inline virtual bool IsLongPollingOperation() const override { return true; } AWS_SWF_API Aws::String SerializePayload() const override; AWS_SWF_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; diff --git a/generated/src/aws-cpp-sdk-synthetics/source/SyntheticsErrors.cpp b/generated/src/aws-cpp-sdk-synthetics/source/SyntheticsErrors.cpp index 42fa3942caa0..a799ad710e4f 100644 --- a/generated/src/aws-cpp-sdk-synthetics/source/SyntheticsErrors.cpp +++ b/generated/src/aws-cpp-sdk-synthetics/source/SyntheticsErrors.cpp @@ -35,7 +35,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == INTERNAL_SERVER_HASH) { return AWSError(static_cast(SyntheticsErrors::INTERNAL_SERVER), RetryableType::RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(SyntheticsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(SyntheticsErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(SyntheticsErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } else if (hashCode == REQUEST_ENTITY_TOO_LARGE_HASH) { diff --git a/generated/src/aws-cpp-sdk-textract/source/TextractErrors.cpp b/generated/src/aws-cpp-sdk-textract/source/TextractErrors.cpp index c11b5a558ee9..c8d0db634ffe 100644 --- a/generated/src/aws-cpp-sdk-textract/source/TextractErrors.cpp +++ b/generated/src/aws-cpp-sdk-textract/source/TextractErrors.cpp @@ -49,7 +49,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == IDEMPOTENT_PARAMETER_MISMATCH_HASH) { return AWSError(static_cast(TextractErrors::IDEMPOTENT_PARAMETER_MISMATCH), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(TextractErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(TextractErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_JOB_ID_HASH) { return AWSError(static_cast(TextractErrors::INVALID_JOB_ID), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_K_M_S_KEY_HASH) { @@ -61,7 +61,8 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DOCUMENT_TOO_LARGE_HASH) { return AWSError(static_cast(TextractErrors::DOCUMENT_TOO_LARGE), RetryableType::NOT_RETRYABLE); } else if (hashCode == PROVISIONED_THROUGHPUT_EXCEEDED_HASH) { - return AWSError(static_cast(TextractErrors::PROVISIONED_THROUGHPUT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(TextractErrors::PROVISIONED_THROUGHPUT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_S3_OBJECT_HASH) { return AWSError(static_cast(TextractErrors::INVALID_S3_OBJECT), RetryableType::NOT_RETRYABLE); } else if (hashCode == HUMAN_LOOP_QUOTA_EXCEEDED_HASH) { diff --git a/generated/src/aws-cpp-sdk-transcribe/source/TranscribeServiceErrors.cpp b/generated/src/aws-cpp-sdk-transcribe/source/TranscribeServiceErrors.cpp index bf02c6101ad7..992e015acc67 100644 --- a/generated/src/aws-cpp-sdk-transcribe/source/TranscribeServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-transcribe/source/TranscribeServiceErrors.cpp @@ -28,7 +28,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == NOT_FOUND_HASH) { return AWSError(static_cast(TranscribeServiceErrors::NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(TranscribeServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(TranscribeServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(TranscribeServiceErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceErrors.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceErrors.cpp index 023f90cdd236..2bef02bea5c3 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceErrors.cpp @@ -25,7 +25,8 @@ AWSError GetErrorForName(const char* errorName) { if (hashCode == CONFLICT_HASH) { return AWSError(static_cast(TranscribeStreamingServiceErrors::CONFLICT), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(TranscribeStreamingServiceErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(TranscribeStreamingServiceErrors::LIMIT_EXCEEDED), + RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == BAD_REQUEST_HASH) { return AWSError(static_cast(TranscribeStreamingServiceErrors::BAD_REQUEST), RetryableType::NOT_RETRYABLE); } diff --git a/generated/src/aws-cpp-sdk-translate/source/TranslateErrors.cpp b/generated/src/aws-cpp-sdk-translate/source/TranslateErrors.cpp index 415ebe681ca2..06624e2451d3 100644 --- a/generated/src/aws-cpp-sdk-translate/source/TranslateErrors.cpp +++ b/generated/src/aws-cpp-sdk-translate/source/TranslateErrors.cpp @@ -69,7 +69,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DETECTED_LANGUAGE_LOW_CONFIDENCE_HASH) { return AWSError(static_cast(TranslateErrors::DETECTED_LANGUAGE_LOW_CONFIDENCE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(TranslateErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(TranslateErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == UNSUPPORTED_DISPLAY_LANGUAGE_CODE_HASH) { return AWSError(static_cast(TranslateErrors::UNSUPPORTED_DISPLAY_LANGUAGE_CODE), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_TAGS_HASH) { @@ -77,7 +77,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CONCURRENT_MODIFICATION_HASH) { return AWSError(static_cast(TranslateErrors::CONCURRENT_MODIFICATION), RetryableType::NOT_RETRYABLE); } else if (hashCode == TOO_MANY_REQUESTS_HASH) { - return AWSError(static_cast(TranslateErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE); + return AWSError(static_cast(TranslateErrors::TOO_MANY_REQUESTS), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == INVALID_FILTER_HASH) { return AWSError(static_cast(TranslateErrors::INVALID_FILTER), RetryableType::NOT_RETRYABLE); } else if (hashCode == TEXT_SIZE_LIMIT_EXCEEDED_HASH) { diff --git a/generated/src/aws-cpp-sdk-workdocs/source/WorkDocsErrors.cpp b/generated/src/aws-cpp-sdk-workdocs/source/WorkDocsErrors.cpp index 7fe9ec2d7695..67cb61498d12 100644 --- a/generated/src/aws-cpp-sdk-workdocs/source/WorkDocsErrors.cpp +++ b/generated/src/aws-cpp-sdk-workdocs/source/WorkDocsErrors.cpp @@ -66,7 +66,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == CUSTOM_METADATA_LIMIT_EXCEEDED_HASH) { return AWSError(static_cast(WorkDocsErrors::CUSTOM_METADATA_LIMIT_EXCEEDED), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(WorkDocsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(WorkDocsErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == PROHIBITED_STATE_HASH) { return AWSError(static_cast(WorkDocsErrors::PROHIBITED_STATE), RetryableType::NOT_RETRYABLE); } else if (hashCode == DOCUMENT_LOCKED_FOR_COMMENTS_HASH) { diff --git a/generated/src/aws-cpp-sdk-workmail/source/WorkMailErrors.cpp b/generated/src/aws-cpp-sdk-workmail/source/WorkMailErrors.cpp index 0c59f8859f42..63b318d50bab 100644 --- a/generated/src/aws-cpp-sdk-workmail/source/WorkMailErrors.cpp +++ b/generated/src/aws-cpp-sdk-workmail/source/WorkMailErrors.cpp @@ -52,7 +52,7 @@ AWSError GetErrorForName(const char* errorName) { } else if (hashCode == DIRECTORY_UNAVAILABLE_HASH) { return AWSError(static_cast(WorkMailErrors::DIRECTORY_UNAVAILABLE), RetryableType::NOT_RETRYABLE); } else if (hashCode == LIMIT_EXCEEDED_HASH) { - return AWSError(static_cast(WorkMailErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE); + return AWSError(static_cast(WorkMailErrors::LIMIT_EXCEEDED), RetryableType::RETRYABLE_THROTTLING); } else if (hashCode == MAIL_DOMAIN_NOT_FOUND_HASH) { return AWSError(static_cast(WorkMailErrors::MAIL_DOMAIN_NOT_FOUND), RetryableType::NOT_RETRYABLE); } else if (hashCode == INVALID_CUSTOM_SES_CONFIGURATION_HASH) { diff --git a/generated/tests/dynamodbstreams-gen-tests/DynamoDBStreamsIncludeTests.cpp b/generated/tests/dynamodbstreams-gen-tests/DynamoDBStreamsIncludeTests.cpp index 6e73813d35c3..1aebf64a1380 100644 --- a/generated/tests/dynamodbstreams-gen-tests/DynamoDBStreamsIncludeTests.cpp +++ b/generated/tests/dynamodbstreams-gen-tests/DynamoDBStreamsIncludeTests.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/src/aws-cpp-sdk-core/include/aws/core/AmazonWebServiceRequest.h b/src/aws-cpp-sdk-core/include/aws/core/AmazonWebServiceRequest.h index 77b8e9d72aa7..33e80b9779cf 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/AmazonWebServiceRequest.h +++ b/src/aws-cpp-sdk-core/include/aws/core/AmazonWebServiceRequest.h @@ -114,6 +114,12 @@ namespace Aws */ virtual bool IsChunked() const { return false; } + /** + * Whether this operation is a long-polling operation (e.g. SQS ReceiveMessage). + * Long-polling operations apply a backoff delay before returning when retry quota is exhausted. + */ + virtual bool IsLongPollingOperation() const { return false; } + /** * Register closure for request signed event. */ diff --git a/src/aws-cpp-sdk-core/include/aws/core/client/AWSClient.h b/src/aws-cpp-sdk-core/include/aws/core/client/AWSClient.h index 67c1fc6c921b..9b0d9a6bbca8 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/client/AWSClient.h +++ b/src/aws-cpp-sdk-core/include/aws/core/client/AWSClient.h @@ -363,6 +363,7 @@ namespace Aws Aws::Client::RequestCompressionConfig m_requestCompressionConfig; std::shared_ptr m_userAgentInterceptor; Aws::Vector> m_interceptors; + bool m_enableNewRetries; }; AWS_CORE_API Aws::String GetAuthorizationHeader(const Aws::Http::HttpRequest& httpRequest); diff --git a/src/aws-cpp-sdk-core/include/aws/core/client/AdaptiveRetryStrategy.h b/src/aws-cpp-sdk-core/include/aws/core/client/AdaptiveRetryStrategy.h index 4a9f4d551d86..20ef87f400ce 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/client/AdaptiveRetryStrategy.h +++ b/src/aws-cpp-sdk-core/include/aws/core/client/AdaptiveRetryStrategy.h @@ -9,6 +9,9 @@ #include #include +#include +#include + namespace Aws { namespace Client @@ -107,8 +110,9 @@ class AWS_CORE_API RetryTokenBucket // The last time when the client was throttled. Aws::Utils::DateTime m_lastThrottleTime; - // TokenBucket's mutex to synchronize read/write operations - std::recursive_mutex m_mutex; +private: + std::mutex m_mutex; + std::condition_variable m_capacityCV; }; /** diff --git a/src/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h b/src/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h index b7a691af2d7e..a5c164384a7b 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h +++ b/src/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h @@ -653,6 +653,7 @@ namespace Aws */ AWS_CORE_API std::shared_ptr InitRetryStrategy(Aws::String retryMode = ""); AWS_CORE_API std::shared_ptr InitRetryStrategy(int maxRetries, Aws::String retryMode = ""); + AWS_CORE_API std::shared_ptr InitRetryStrategy(int maxRetries, Aws::String retryMode, double transientBackoffBaseSec); /** * A helper function to compute a user agent diff --git a/src/aws-cpp-sdk-core/include/aws/core/client/RetryStrategy.h b/src/aws-cpp-sdk-core/include/aws/core/client/RetryStrategy.h index 3e6d59f78b9a..272817b287b4 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/client/RetryStrategy.h +++ b/src/aws-cpp-sdk-core/include/aws/core/client/RetryStrategy.h @@ -124,6 +124,7 @@ namespace Aws public: StandardRetryStrategy(long maxAttempts = 3); StandardRetryStrategy(std::shared_ptr retryQuotaContainer, long maxAttempts = 3); + StandardRetryStrategy(long maxAttempts, double transientBackoffBaseSec); virtual ~StandardRetryStrategy(); virtual void RequestBookkeeping(const HttpResponseOutcome& httpResponseOutcome) override; diff --git a/src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClientBase.h b/src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClientBase.h index a16116cfaded..b60c808d9f80 100644 --- a/src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClientBase.h +++ b/src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClientBase.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -109,7 +110,8 @@ namespace client Aws::MakeShared("AwsSmithyClientBase", m_httpClient->IsDefaultAwsHttpClient() ? Aws::Client::HttpClientChunkedMode::DEFAULT : m_clientConfig->httpClientChunkedMode, m_clientConfig->awsChunkedBufferSize) - }) + }), + m_enableNewRetries{Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) == "true"} { baseInit(); @@ -247,7 +249,7 @@ namespace client ResponseHandlerFunc&& responseHandler, EndpointUpdateCallback&& endpointCallback ) const; - + bool m_enableNewRetries; }; } // namespace client } // namespace smithy diff --git a/src/aws-cpp-sdk-core/source/client/AWSClient.cpp b/src/aws-cpp-sdk-core/source/client/AWSClient.cpp index cf3dcf867f25..0b0c63a7f0df 100644 --- a/src/aws-cpp-sdk-core/source/client/AWSClient.cpp +++ b/src/aws-cpp-sdk-core/source/client/AWSClient.cpp @@ -140,10 +140,11 @@ AWSClient::AWSClient(const Aws::Client::ClientConfiguration& configuration, m_enableClockSkewAdjustment(configuration.enableClockSkewAdjustment), m_requestCompressionConfig(configuration.requestCompressionConfig), m_userAgentInterceptor{Aws::MakeShared(AWS_CLIENT_LOG_TAG, configuration, m_retryStrategy->GetStrategyName(), m_serviceName)}, - m_interceptors{Aws::MakeShared(AWS_CLIENT_LOG_TAG), Aws::MakeShared(AWS_CLIENT_LOG_TAG, + m_interceptors{Aws::MakeShared(AWS_CLIENT_LOG_TAG), Aws::MakeShared(AWS_CLIENT_LOG_TAG, m_httpClient->IsDefaultAwsHttpClient() ? Aws::Client::HttpClientChunkedMode::DEFAULT : configuration.httpClientChunkedMode, configuration.awsChunkedBufferSize), - m_userAgentInterceptor} + m_userAgentInterceptor}, + m_enableNewRetries{Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) == "true"} { } @@ -172,7 +173,8 @@ AWSClient::AWSClient(const Aws::Client::ClientConfiguration& configuration, m_interceptors{Aws::MakeShared(AWS_CLIENT_LOG_TAG, configuration), Aws::MakeShared(AWS_CLIENT_LOG_TAG, m_httpClient->IsDefaultAwsHttpClient() ? Aws::Client::HttpClientChunkedMode::DEFAULT : configuration.httpClientChunkedMode, configuration.awsChunkedBufferSize), - m_userAgentInterceptor} + m_userAgentInterceptor}, + m_enableNewRetries{Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) == "true"} { } @@ -281,7 +283,7 @@ HttpResponseOutcome AWSClient::AttemptExhaustively(const Aws::Http::URI& uri, Aws::String invocationId = Aws::Utils::UUID::PseudoRandomUUID(); RequestInfo requestInfo; requestInfo.attempt = 1; - requestInfo.maxAttempts = 0; + requestInfo.maxAttempts = m_enableNewRetries ? m_retryStrategy->GetMaxAttempts() : 0; httpRequest->SetHeaderValue(Http::SDK_INVOCATION_ID_HEADER, invocationId); httpRequest->SetHeaderValue(Http::SDK_REQUEST_HEADER, requestInfo); AppendRecursionDetectionHeader(httpRequest); @@ -362,6 +364,11 @@ HttpResponseOutcome AWSClient::AttemptExhaustively(const Aws::Http::URI& uri, if (!retryWithCorrectRegion && !m_retryStrategy->ShouldRetry(outcome.GetError(), retries)) { + const bool blockedByQuotaOnly = outcome.GetError().ShouldRetry() && + retries + 1 < m_retryStrategy->GetMaxAttempts(); + if (m_enableNewRetries && blockedByQuotaOnly && request.IsLongPollingOperation()) { + m_httpClient->RetryRequestSleep(std::chrono::milliseconds(sleepMillis)); + } break; } if (request.IsEventStreamRequest() && @@ -450,7 +457,7 @@ HttpResponseOutcome AWSClient::AttemptExhaustively(const Aws::Http::URI& uri, Aws::String invocationId = Aws::Utils::UUID::PseudoRandomUUID(); RequestInfo requestInfo; requestInfo.attempt = 1; - requestInfo.maxAttempts = 0; + requestInfo.maxAttempts = m_enableNewRetries ? m_retryStrategy->GetMaxAttempts() : 0; httpRequest->SetHeaderValue(Http::SDK_INVOCATION_ID_HEADER, invocationId); httpRequest->SetHeaderValue(Http::SDK_REQUEST_HEADER, requestInfo); AppendRecursionDetectionHeader(httpRequest); diff --git a/src/aws-cpp-sdk-core/source/client/AdaptiveRetryStrategy.cpp b/src/aws-cpp-sdk-core/source/client/AdaptiveRetryStrategy.cpp index 69bde40fb6a7..863d5dcf6894 100644 --- a/src/aws-cpp-sdk-core/source/client/AdaptiveRetryStrategy.cpp +++ b/src/aws-cpp-sdk-core/source/client/AdaptiveRetryStrategy.cpp @@ -47,7 +47,7 @@ namespace Aws bool RetryTokenBucket::Acquire(size_t amount, bool fastFail) { - std::lock_guard locker(m_mutex); + std::unique_lock locker(m_mutex); if (!m_enabled) { return true; @@ -57,12 +57,11 @@ namespace Aws if (notEnough && fastFail) { return false; } - // If all the tokens couldn't be acquired immediately, wait enough - // time to fill the remainder. - if (notEnough) { - std::chrono::duration waitTime((amount - m_currentCapacity) / m_fillRate); - std::this_thread::sleep_for(waitTime); - Refill(); + while (amount > m_currentCapacity) + { + std::chrono::duration const waitTime((amount - m_currentCapacity) / m_fillRate); + m_capacityCV.wait_for(locker, std::chrono::duration_cast(waitTime)); + Refill(Aws::Utils::DateTime::Now()); } m_currentCapacity -= amount; return true; @@ -70,8 +69,6 @@ namespace Aws void RetryTokenBucket::Refill(const Aws::Utils::DateTime& now) { - std::lock_guard locker(m_mutex); - if (0 == m_lastTimestamp.Millis()) { m_lastTimestamp = now; return; @@ -84,18 +81,15 @@ namespace Aws void RetryTokenBucket::UpdateRate(double newRps, const Aws::Utils::DateTime& now) { - std::lock_guard locker(m_mutex); - Refill(now); m_fillRate = (std::max)(newRps, MIN_FILL_RATE); m_maxCapacity = (std::max)(newRps, MIN_CAPACITY); m_currentCapacity = (std::min)(m_currentCapacity, m_maxCapacity); + m_capacityCV.notify_all(); } void RetryTokenBucket::UpdateMeasuredRate(const Aws::Utils::DateTime& now) { - std::lock_guard locker(m_mutex); - double t = now.Millis() / 1000.0; double timeBucket = floor(t * 2.0) / 2.0; m_requestCount += 1; @@ -109,7 +103,7 @@ namespace Aws void RetryTokenBucket::UpdateClientSendingRate(bool isThrottlingResponse, const Aws::Utils::DateTime& now) { - std::lock_guard locker(m_mutex); + std::lock_guard locker(m_mutex); UpdateMeasuredRate(now); @@ -138,7 +132,6 @@ namespace Aws void RetryTokenBucket::Enable() { - std::lock_guard locker(m_mutex); m_enabled = true; } diff --git a/src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp b/src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp index 3198214e8d1e..78f3168866c6 100644 --- a/src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp +++ b/src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp @@ -543,7 +543,7 @@ ClientConfiguration::ClientConfiguration(bool /*useSmartDefaults*/, const char* Aws::Config::Defaults::SetSmartDefaultsConfigurationParameters(*this, defaultMode, hasEc2MetadataRegion, ec2MetadataRegion); } -std::shared_ptr InitRetryStrategy(int maxAttempts, Aws::String retryMode) { +static Aws::String ResolveRetryMode(Aws::String retryMode) { if (retryMode.empty()) { retryMode = Aws::Environment::GetEnv("AWS_RETRY_MODE"); @@ -556,6 +556,11 @@ std::shared_ptr InitRetryStrategy(int maxAttempts, Aws::String re { retryMode = "standard"; } + return retryMode; +} + +std::shared_ptr InitRetryStrategy(int maxAttempts, Aws::String retryMode) { + retryMode = ResolveRetryMode(retryMode); std::shared_ptr retryStrategy; if (retryMode == "standard") @@ -584,12 +589,44 @@ std::shared_ptr InitRetryStrategy(int maxAttempts, Aws::String re } else { - retryStrategy = Aws::MakeShared(CLIENT_CONFIG_TAG); + if (Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) != "true") + { + if (maxAttempts < 0) + { + retryStrategy = Aws::MakeShared(CLIENT_CONFIG_TAG); + } + else + { + retryStrategy = Aws::MakeShared(CLIENT_CONFIG_TAG, maxAttempts); + } + } + else + { + retryStrategy = Aws::MakeShared(CLIENT_CONFIG_TAG); + } } return retryStrategy; } +std::shared_ptr InitRetryStrategy(int maxAttempts, Aws::String retryMode, double transientBackoffBaseSec) { + if (Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) != "true") + { + // Gate is off: ignore service-specific tuning, use default behavior + return InitRetryStrategy(retryMode); + } + + // Only standard mode honors a service-specific backoff base; other modes are unaffected, + // so they go through the default-base path. + if (ResolveRetryMode(retryMode) != "standard") + { + return InitRetryStrategy(maxAttempts, retryMode); + } + + long attempts = static_cast(maxAttempts); + return Aws::MakeShared(CLIENT_CONFIG_TAG, attempts, transientBackoffBaseSec); +} + std::shared_ptr InitRetryStrategy(Aws::String retryMode) { int maxAttempts = 0; diff --git a/src/aws-cpp-sdk-core/source/client/CoreErrors.cpp b/src/aws-cpp-sdk-core/source/client/CoreErrors.cpp index 50a7f9308d83..62114d4c3279 100644 --- a/src/aws-cpp-sdk-core/source/client/CoreErrors.cpp +++ b/src/aws-cpp-sdk-core/source/client/CoreErrors.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -33,6 +34,10 @@ void CoreErrorsMapper::InitCoreErrorsMapper() } s_CoreErrorsMapper = Aws::New("InitCoreErrorsMapper"); + const bool newRetriesEnabled = Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) == "true"; + const RetryableType throttleType = + newRetriesEnabled ? RetryableType::RETRYABLE_THROTTLING : RetryableType::RETRYABLE; + s_CoreErrorsMapper->emplace("IncompleteSignature", AWSError(CoreErrors::INCOMPLETE_SIGNATURE, false)); s_CoreErrorsMapper->emplace("IncompleteSignatureException", AWSError(CoreErrors::INCOMPLETE_SIGNATURE, false)); s_CoreErrorsMapper->emplace("InvalidSignatureException", AWSError(CoreErrors::INVALID_SIGNATURE, false)); @@ -65,11 +70,11 @@ void CoreErrorsMapper::InitCoreErrorsMapper() s_CoreErrorsMapper->emplace("ServiceUnavailableException", AWSError(CoreErrors::SERVICE_UNAVAILABLE, true)); s_CoreErrorsMapper->emplace("ServiceUnavailableError", AWSError(CoreErrors::SERVICE_UNAVAILABLE, true)); s_CoreErrorsMapper->emplace("ServiceUnavailable", AWSError(CoreErrors::SERVICE_UNAVAILABLE, true)); - s_CoreErrorsMapper->emplace("RequestThrottledException", AWSError(CoreErrors::THROTTLING, true)); - s_CoreErrorsMapper->emplace("RequestThrottled", AWSError(CoreErrors::THROTTLING, true)); - s_CoreErrorsMapper->emplace("ThrottlingException", AWSError(CoreErrors::THROTTLING, true)); - s_CoreErrorsMapper->emplace("ThrottledException", AWSError(CoreErrors::THROTTLING, true)); - s_CoreErrorsMapper->emplace("Throttling", AWSError(CoreErrors::THROTTLING, true)); + s_CoreErrorsMapper->emplace("RequestThrottledException", AWSError(CoreErrors::THROTTLING, throttleType)); + s_CoreErrorsMapper->emplace("RequestThrottled", AWSError(CoreErrors::THROTTLING, throttleType)); + s_CoreErrorsMapper->emplace("ThrottlingException", AWSError(CoreErrors::THROTTLING, throttleType)); + s_CoreErrorsMapper->emplace("ThrottledException", AWSError(CoreErrors::THROTTLING, throttleType)); + s_CoreErrorsMapper->emplace("Throttling", AWSError(CoreErrors::THROTTLING, throttleType)); s_CoreErrorsMapper->emplace("ValidationErrorException", AWSError(CoreErrors::VALIDATION, false)); s_CoreErrorsMapper->emplace("ValidationException", AWSError(CoreErrors::VALIDATION, false)); s_CoreErrorsMapper->emplace("ValidationError", AWSError(CoreErrors::VALIDATION, false)); @@ -79,8 +84,8 @@ void CoreErrorsMapper::InitCoreErrorsMapper() s_CoreErrorsMapper->emplace("ResourceNotFound", AWSError(CoreErrors::RESOURCE_NOT_FOUND, false)); s_CoreErrorsMapper->emplace("UnrecognizedClientException", AWSError(CoreErrors::UNRECOGNIZED_CLIENT, false)); s_CoreErrorsMapper->emplace("UnrecognizedClient", AWSError(CoreErrors::UNRECOGNIZED_CLIENT, false)); - s_CoreErrorsMapper->emplace("SlowDownException", AWSError(CoreErrors::SLOW_DOWN, true)); - s_CoreErrorsMapper->emplace("SlowDown", AWSError(CoreErrors::SLOW_DOWN, true)); + s_CoreErrorsMapper->emplace("SlowDownException", AWSError(CoreErrors::SLOW_DOWN, throttleType)); + s_CoreErrorsMapper->emplace("SlowDown", AWSError(CoreErrors::SLOW_DOWN, throttleType)); s_CoreErrorsMapper->emplace("SignatureDoesNotMatchException", AWSError(CoreErrors::SIGNATURE_DOES_NOT_MATCH, false)); s_CoreErrorsMapper->emplace("SignatureDoesNotMatch", AWSError(CoreErrors::SIGNATURE_DOES_NOT_MATCH, false)); s_CoreErrorsMapper->emplace("InvalidAccessKeyIdException", AWSError(CoreErrors::INVALID_ACCESS_KEY_ID, false)); @@ -89,6 +94,17 @@ void CoreErrorsMapper::InitCoreErrorsMapper() s_CoreErrorsMapper->emplace("RequestTimeTooSkewed", AWSError(CoreErrors::REQUEST_TIME_TOO_SKEWED, true)); s_CoreErrorsMapper->emplace("RequestTimeoutException", AWSError(CoreErrors::REQUEST_TIMEOUT, true)); s_CoreErrorsMapper->emplace("RequestTimeout", AWSError(CoreErrors::REQUEST_TIMEOUT, true)); + if (newRetriesEnabled) { + s_CoreErrorsMapper->emplace("TooManyRequestsException", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("ProvisionedThroughputExceededException", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("TransactionInProgressException", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("RequestLimitExceeded", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("BandwidthLimitExceeded", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("LimitExceededException", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("PriorRequestNotComplete", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("EC2ThrottledException", AWSError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING)); + s_CoreErrorsMapper->emplace("IDPCommunicationError", AWSError(CoreErrors::NETWORK_CONNECTION, true)); + } } void CoreErrorsMapper::CleanupCoreErrorsMapper() diff --git a/src/aws-cpp-sdk-core/source/client/RetryStrategy.cpp b/src/aws-cpp-sdk-core/source/client/RetryStrategy.cpp index 3720fd0474d4..1b2689ab8fdc 100644 --- a/src/aws-cpp-sdk-core/source/client/RetryStrategy.cpp +++ b/src/aws-cpp-sdk-core/source/client/RetryStrategy.cpp @@ -32,6 +32,8 @@ namespace Aws namespace { const char RETRY_STRATEGY_TAG[] = "StandardRetryStrategy"; + const double DEFAULT_TRANSIENT_BACKOFF_BASE_SEC = 0.05; + bool IsNewRetriesEnabled() { return Aws::Utils::StringUtils::ToLower(Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026").c_str()) == "true"; @@ -51,9 +53,11 @@ namespace { class NewRetriesImpl : public StandardRetryStrategy::RetryImpl { public: + explicit NewRetriesImpl(double transientBackoffBaseSec) : m_transientBackoffBaseSec(transientBackoffBaseSec) {} + long CalculateDelay(const AWSError& error, long attemptedRetries) const override { - double x = error.ShouldThrottle() ? 1.0 : 0.05; + double x = error.ShouldThrottle() ? 1.0 : m_transientBackoffBaseSec; double exponentialPart = x * static_cast(1L << (std::min)(attemptedRetries, 30L)); double cappedPart = (std::min)(exponentialPart, 20.0); @@ -76,13 +80,16 @@ namespace { return static_cast(t_i * 1000.0); } + + private: + double m_transientBackoffBaseSec; }; - Aws::UniquePtr CreateRetryImpl() + Aws::UniquePtr CreateRetryImpl(double transientBackoffBaseSec) { if (IsNewRetriesEnabled()) { - return Aws::MakeUnique("StandardRetryStrategy"); + return Aws::MakeUnique("StandardRetryStrategy", transientBackoffBaseSec); } return Aws::MakeUnique("StandardRetryStrategy"); } @@ -107,11 +114,15 @@ namespace Aws StandardRetryStrategy::StandardRetryStrategy(long maxAttempts) : m_retryQuotaContainer(CreateQuotaContainer()), m_maxAttempts(maxAttempts), - m_impl(CreateRetryImpl()) {} + m_impl(CreateRetryImpl(DEFAULT_TRANSIENT_BACKOFF_BASE_SEC)) {} StandardRetryStrategy::StandardRetryStrategy(std::shared_ptr retryQuotaContainer, long maxAttempts) : m_retryQuotaContainer(retryQuotaContainer), m_maxAttempts(maxAttempts), - m_impl(CreateRetryImpl()) {} + m_impl(CreateRetryImpl(DEFAULT_TRANSIENT_BACKOFF_BASE_SEC)) {} + + StandardRetryStrategy::StandardRetryStrategy(long maxAttempts, double transientBackoffBaseSec) + : m_retryQuotaContainer(CreateQuotaContainer()), m_maxAttempts(maxAttempts), + m_impl(CreateRetryImpl(transientBackoffBaseSec)) {} StandardRetryStrategy::~StandardRetryStrategy() = default; diff --git a/src/aws-cpp-sdk-core/source/smithy/client/AwsSmithyClientBase.cpp b/src/aws-cpp-sdk-core/source/smithy/client/AwsSmithyClientBase.cpp index a324b1d8b119..b7da57e16b0a 100644 --- a/src/aws-cpp-sdk-core/source/smithy/client/AwsSmithyClientBase.cpp +++ b/src/aws-cpp-sdk-core/source/smithy/client/AwsSmithyClientBase.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -299,7 +300,10 @@ void AwsSmithyClientBase::MakeRequestAsync(Aws::AmazonWebServiceRequest const* c return; } pRequestCtx->m_requestInfo.attempt = 1; - pRequestCtx->m_requestInfo.maxAttempts = 0; + pRequestCtx->m_requestInfo.maxAttempts = + Aws::Environment::GetEnv("AWS_NEW_RETRIES_2026") == "true" + ? m_clientConfig->retryStrategy->GetMaxAttempts() + : 0; pRequestCtx->m_interceptorContext = Aws::MakeShared(AWS_SMITHY_CLIENT_LOG, *request); pRequestCtx->m_responseHandler = std::move(responseHandler); pRequestCtx->m_authResolvedCallback = std::move(authCallback); @@ -613,6 +617,11 @@ void AwsSmithyClientBase::HandleAsyncReply(std::shared_ptrretryStrategy->ShouldRetry(outcome.GetError(), static_cast(pRequestCtx->m_retryCount))) { + const bool blockedByQuotaOnly = outcome.GetError().ShouldRetry() && + static_cast(pRequestCtx->m_retryCount) + 1 < m_clientConfig->retryStrategy->GetMaxAttempts(); + if (m_enableNewRetries && blockedByQuotaOnly && pRequestCtx->m_pRequest && pRequestCtx->m_pRequest->IsLongPollingOperation()) { + m_httpClient->RetryRequestSleep(std::chrono::milliseconds(sleepMillis)); + } break; } diff --git a/tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp b/tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp index 846e27c6d666..11695b9f7602 100644 --- a/tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp +++ b/tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp @@ -421,6 +421,90 @@ TEST_F(AWSClientTestSuite, TestStandardRetryStrategy) ASSERT_EQ(3, clientWithStandardRetryStrategy.GetRetryQuotaContainer()->GetRetryQuota()); } +static AmazonWebServiceRequestMock MakeLongPollingRequest() +{ + AmazonWebServiceRequestMock request; + request.SetLongPollingOperation(true); + return request; +} + +// SEP Test Case 12: long-polling, retryable error, retry quota exhausted - stops without a normal retry. +TEST_F(AWSClientTestSuite, LongPollingQuotaExhausted) +{ + Aws::Environment::EnvironmentRAII env{{{"AWS_NEW_RETRIES_2026", "true"}}}; + ClientConfiguration config; + auto quota = Aws::MakeShared(ALLOCATION_TAG); + config.retryStrategy = Aws::MakeShared(ALLOCATION_TAG, quota); + MockAWSClientWithStandardRetryStrategy lpClient(config); + ASSERT_TRUE(lpClient.GetRetryQuotaContainer()->AcquireRetryQuota(498)); + + HeaderValueCollection responseHeaders; + QueueMockResponse(AWSError(CoreErrors::NETWORK_CONNECTION, true), responseHeaders); + + auto request = MakeLongPollingRequest(); + auto outcome = lpClient.MakeRequest(request); + ASSERT_FALSE(outcome.IsSuccess()); + ASSERT_EQ(0, lpClient.GetRequestAttemptedRetries()); +} + +// SEP Test Case 14: long-polling, retryable error, stops at max attempts. +TEST_F(AWSClientTestSuite, LongPollingMaxAttemptsExceeded) +{ + Aws::Environment::EnvironmentRAII env{{{"AWS_NEW_RETRIES_2026", "true"}}}; + ClientConfiguration config; + auto quota = Aws::MakeShared(ALLOCATION_TAG); + config.retryStrategy = Aws::MakeShared(ALLOCATION_TAG, quota); + MockAWSClientWithStandardRetryStrategy lpClient(config); + + HeaderValueCollection responseHeaders; + AWSError transientError(CoreErrors::NETWORK_CONNECTION, true); + QueueMockResponse(transientError, responseHeaders); + QueueMockResponse(transientError, responseHeaders); + QueueMockResponse(transientError, responseHeaders); + + auto request = MakeLongPollingRequest(); + auto outcome = lpClient.MakeRequest(request); + ASSERT_FALSE(outcome.IsSuccess()); + ASSERT_EQ(2, lpClient.GetRequestAttemptedRetries()); +} + +// SEP Test Case 15: long-polling, retryable error then success. +TEST_F(AWSClientTestSuite, LongPollingRetriesThenSucceeds) +{ + Aws::Environment::EnvironmentRAII env{{{"AWS_NEW_RETRIES_2026", "true"}}}; + ClientConfiguration config; + auto quota = Aws::MakeShared(ALLOCATION_TAG); + config.retryStrategy = Aws::MakeShared(ALLOCATION_TAG, quota); + MockAWSClientWithStandardRetryStrategy lpClient(config); + + HeaderValueCollection responseHeaders; + QueueMockResponse(AWSError(CoreErrors::NETWORK_CONNECTION, true), responseHeaders); + QueueMockResponse(HttpResponseCode::OK, responseHeaders); + + auto request = MakeLongPollingRequest(); + auto outcome = lpClient.MakeRequest(request); + AWS_ASSERT_SUCCESS(outcome); + ASSERT_EQ(1, lpClient.GetRequestAttemptedRetries()); +} + +// SEP Test Case 16: long-polling, non-retryable error, fails without retrying. +TEST_F(AWSClientTestSuite, LongPollingNonRetryableError) +{ + Aws::Environment::EnvironmentRAII env{{{"AWS_NEW_RETRIES_2026", "true"}}}; + ClientConfiguration config; + auto quota = Aws::MakeShared(ALLOCATION_TAG); + config.retryStrategy = Aws::MakeShared(ALLOCATION_TAG, quota); + MockAWSClientWithStandardRetryStrategy lpClient(config); + + HeaderValueCollection responseHeaders; + QueueMockResponse(HttpResponseCode::BAD_REQUEST, responseHeaders); + + auto request = MakeLongPollingRequest(); + auto outcome = lpClient.MakeRequest(request); + ASSERT_FALSE(outcome.IsSuccess()); + ASSERT_EQ(0, lpClient.GetRequestAttemptedRetries()); +} + TEST_F(AWSClientTestSuite, TestRecursionDetection) { struct AWSClientTestSuite_TestRecursionDetection_TestCase diff --git a/tests/aws-cpp-sdk-core-tests/aws/client/RetryStrategyTest.cpp b/tests/aws-cpp-sdk-core-tests/aws/client/RetryStrategyTest.cpp index 18fe1f7570a5..27b57994acf9 100644 --- a/tests/aws-cpp-sdk-core-tests/aws/client/RetryStrategyTest.cpp +++ b/tests/aws-cpp-sdk-core-tests/aws/client/RetryStrategyTest.cpp @@ -25,6 +25,10 @@ static const char ALLOCATION_TAG[] = "RetryStrategyTest"; class MockStandardRetryStrategy : public Aws::Client::StandardRetryStrategy { public: + MockStandardRetryStrategy() = default; + explicit MockStandardRetryStrategy(double transientBackoffBaseSec) + : StandardRetryStrategy(3, transientBackoffBaseSec) {} + const std::shared_ptr& GetRetryQuotaContainer() const { return m_retryQuotaContainer; @@ -290,4 +294,26 @@ TEST_F(NewRetriesStrategyTest, InvalidRetryAfterFallsBack) long delay = retryStrategy.CalculateDelayBeforeNextRetry(error, 0); ASSERT_GE(delay, 0); ASSERT_LE(delay, 50); -} \ No newline at end of file +} + +// SEP Test Case 11 - DynamoDB tuning: 25ms non-throttling backoff base +TEST_F(NewRetriesStrategyTest, DynamoDBBackoffBase) +{ + MockStandardRetryStrategy retryStrategy(0.025); + AWSError transientError(CoreErrors::NETWORK_CONNECTION, true); + + // Backoff with 25ms base: [0, 25ms] at i=0, [0, 50ms] at i=1, etc. + for (int i = 0; i < 4; ++i) + { + long delay = retryStrategy.CalculateDelayBeforeNextRetry(transientError, i); + long maxDelay = static_cast(0.025 * (1L << i) * 1000.0); + ASSERT_GE(delay, 0) << "Retry " << i; + ASSERT_LE(delay, maxDelay) << "Retry " << i; + } + + // Throttling base is unchanged at 1s regardless of the transient base. + AWSError throttlingError(CoreErrors::THROTTLING, RetryableType::RETRYABLE_THROTTLING); + long delay = retryStrategy.CalculateDelayBeforeNextRetry(throttlingError, 0); + ASSERT_GE(delay, 0); + ASSERT_LE(delay, 1000); +} diff --git a/tests/testing-resources/include/aws/testing/mocks/aws/client/MockAWSClient.h b/tests/testing-resources/include/aws/testing/mocks/aws/client/MockAWSClient.h index f00f39f1e9af..cff1a22c630f 100644 --- a/tests/testing-resources/include/aws/testing/mocks/aws/client/MockAWSClient.h +++ b/tests/testing-resources/include/aws/testing/mocks/aws/client/MockAWSClient.h @@ -55,10 +55,14 @@ class AmazonWebServiceRequestMock : public Aws::AmazonWebServiceRequest return bodyString.find("TestErrorInBodyOfResponse") != std::string::npos; } + bool IsLongPollingOperation() const override { return m_isLongPollingOperation; } + void SetLongPollingOperation(bool value) { m_isLongPollingOperation = value; } + private: std::shared_ptr m_body; Aws::Http::HeaderValueCollection m_headers; bool m_shouldComputeMd5; + bool m_isLongPollingOperation{false}; }; class CountedRetryStrategy : public Aws::Client::DefaultRetryStrategy diff --git a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Operation.java b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Operation.java index c69ebf9772c8..3eb73526a9f1 100644 --- a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Operation.java +++ b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Operation.java @@ -94,6 +94,9 @@ public class Operation { // For Requestless Defaults private boolean requestlessDefault = false; + // Long-polling operations that must back off even when retry quota is exhausted + private boolean longPolling = false; + public boolean hasRequest() { return this.request != null && !this.phonyRequest; } diff --git a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/ServiceModel.java b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/ServiceModel.java index a9bfe814188f..af2f34f524b8 100644 --- a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/ServiceModel.java +++ b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/ServiceModel.java @@ -91,6 +91,7 @@ public boolean hasServiceSpecificClientConfig() { return metadata.getServiceId().equalsIgnoreCase("S3") || metadata.getServiceId().equalsIgnoreCase("S3-CRT") || metadata.getServiceId().equalsIgnoreCase("S3 Control") || + metadata.getServiceId().equalsIgnoreCase("DynamoDB Streams") || metadata.getSigningName().equalsIgnoreCase("bedrock") || metadata.isHasEndpointDiscoveryTrait() || endpointRuleSetModel.getParameters().containsKey("AccountId") || endpointRuleSetModel.getParameters().containsKey("AccountIdEndpointMode"); diff --git a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java index 89ed4e05ab95..42451573aa9c 100644 --- a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java +++ b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java @@ -116,6 +116,36 @@ public class C2jModelToGeneratorModelTransformer { */ private static Set RESPONSE_CODES_TO_RETRY = ImmutableSet.of(500, 502, 503, 504); + /** + * Hard coded set of errors that are always throttle-able even if modeled + */ + final private static Set THROTTLE_ERRORS = ImmutableSet.of( + "Throttling", + "ThrottlingException", + "ThrottledException", + "RequestThrottledException", + "TooManyRequestsException", + "ProvisionedThroughputExceededException", + "TransactionInProgressException", + "RequestLimitExceeded", + "BandwidthLimitExceeded", + "LimitExceededException", + "RequestThrottled", + "SlowDown", + "PriorRequestNotComplete", + "EC2ThrottledException" + ); + + /** + * Hard coded set of errors that are always retryable even if modeled + */ + final private static Set RETRYABLE_ERRORS = ImmutableSet.of( + "RequestTimeout", + "InternalError", + "RequestTimeoutException", + "IDPCommunicationError" + ); + /** * Type representing what a member should be remapped to and services that it * cannot be renamed to, to preserve backwards compat. @@ -170,6 +200,7 @@ public ServiceModel convert() { convertShapes(); convertOperations(); + applyLongPollingTrait(); removeIgnoredOperations(); removeUnreferencedShapes(); postProcessShapes(); @@ -211,6 +242,15 @@ public ServiceModel convert() { serviceModel.setEndpointTests(c2jServiceModel.getEndpointTests()); serviceModel.setClientContextParams(c2jServiceModel.getClientContextParams()); + serviceModel.getServiceErrors() + .stream().filter(error -> THROTTLE_ERRORS.contains(error.getText())) + .forEach(error -> error.setThrottling(true)); + + serviceModel.getServiceErrors() + .stream().filter(error -> RETRYABLE_ERRORS.contains(error.getText()) && + !THROTTLE_ERRORS.contains(error.getText())) + .forEach(error -> error.setRetryable(true)); + return serviceModel; } @@ -589,6 +629,24 @@ void convertOperations() { } } + private static final Map> LONG_POLLING_OPERATIONS = ImmutableMap.of( + "SQS", ImmutableSet.of("ReceiveMessage"), + "SFN", ImmutableSet.of("GetActivityTask"), + "SWF", ImmutableSet.of("PollForActivityTask", "PollForDecisionTask") + ); + + void applyLongPollingTrait() { + Optional.ofNullable(c2jServiceModel.getMetadata().getServiceId()) + .map(LONG_POLLING_OPERATIONS::get) + .ifPresent(longPollOps -> { + for (Map.Entry entry : operations.entrySet()) { + if (longPollOps.contains(entry.getKey())) { + entry.getValue().setLongPolling(true); + } + } + }); + } + Operation convertOperation(C2jOperation c2jOperation) { Operation operation = new Operation(); diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/RequestHeader.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/RequestHeader.vm index 4516a24155af..1e0c8e945d04 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/RequestHeader.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/RequestHeader.vm @@ -57,6 +57,9 @@ namespace Model #if($shape.hasEventStreamMembers()) inline virtual bool IsEventStreamRequest() const override { return true; } #end +#if($operation.longPolling) + inline virtual bool IsLongPollingOperation() const override { return true; } +#end #if($hasEventStreamResponse) inline virtual bool HasEventStreamResponse() const override { return true; } #end diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceClientConfigurationSource.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceClientConfigurationSource.vm index 6331feba91f7..11679bd614cb 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceClientConfigurationSource.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceClientConfigurationSource.vm @@ -130,13 +130,10 @@ void ${metadata.classNamePrefix}ClientConfiguration::Load${serviceNamespace}Spec enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, inputProfileName); } #end -## DyanmoDB historically requires 10 retries for backwards compatibility -#if($serviceModel.metadata.serviceId == "DynamoDB") +## DynamoDB and DynamoDB Streams tune retry 2.1: maxAttempts=4 and a 25ms non-throttling backoff base +#if($serviceModel.metadata.serviceId == "DynamoDB" || $serviceModel.metadata.serviceId == "DynamoDB Streams") this->configFactories.retryStrategyCreateFn = []() -> std::shared_ptr { - // TODO: renable once default retries are evaluated - // Align with other SDKs to default retry to 10 times for dynamodb. - // return Client::InitRetryStrategy(10); - return Client::InitRetryStrategy(); + return Client::InitRetryStrategy(4, "", 0.025); }; #end ## Bedrock API key auth