diff --git a/.changes/2.31.74.json b/.changes/2.31.74.json new file mode 100644 index 000000000000..0da6a07188d4 --- /dev/null +++ b/.changes/2.31.74.json @@ -0,0 +1,132 @@ +{ + "version": "2.31.74", + "date": "2025-06-30", + "entries": [ + { + "type": "feature", + "category": "AWS ARC - Zonal Shift", + "contributor": "", + "description": "Added support for on-demand practice runs and balanced capacity checks in ARC autoshift practice." + }, + { + "type": "feature", + "category": "AWS B2B Data Interchange", + "contributor": "", + "description": "Updated APIs to support inbound EDI split capabilities and additional Partnership-level configurations of generated EDI files' contents and format." + }, + { + "type": "feature", + "category": "AWS CloudFormation", + "contributor": "", + "description": "Added support for UNKNOWN drift status." + }, + { + "type": "feature", + "category": "AWS Config", + "contributor": "", + "description": "Updated ResourceType enum with new resource types onboarded by AWS Config as of June 2025" + }, + { + "type": "feature", + "category": "AWS Data Exchange", + "contributor": "", + "description": "This release updates resource Id with alphanumeric constraint, including Asset id, Revision id, Data Set id, Job id, and Event Action id." + }, + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "releasing source processing properties to support source properties for ODB integrations" + }, + { + "type": "feature", + "category": "AWS Health Imaging", + "contributor": "", + "description": "Added new fields to support the concept of primary image sets within the storage hierarchy." + }, + { + "type": "feature", + "category": "AWS Identity and Access Management", + "contributor": "", + "description": "Updated IAM ServiceSpecificCredential support to include expiration, API Key output format instead of username and password for services that will support API keys, and the ability to list credentials for all users in the account for a given service configuration." + }, + { + "type": "feature", + "category": "AWS Outposts", + "contributor": "", + "description": "Make ContactName and ContactPhoneNumber required fields when creating and updating Outpost Site Addresses." + }, + { + "type": "feature", + "category": "AWS Parallel Computing Service", + "contributor": "", + "description": "Fixed the validation pattern for an instance profile Amazon Resource Name (ARN) in AWS PCS." + }, + { + "type": "feature", + "category": "AWS Transfer Family", + "contributor": "", + "description": "Added support for dual-stack (IPv4 and IPv6) endpoints for SFTP public endpoints and VPC-internal endpoints (SFTP, FTPS, FTP, and AS2), enabling customers to configure new servers with IPv4 or dual-stack mode, convert existing servers to dual-stack, and use IPv6 with service APIs." + }, + { + "type": "feature", + "category": "Amazon Bedrock", + "contributor": "", + "description": "Add support for API Keys, Re-Ranker, implicit filter for RAG / KB evaluation for Bedrock APIs." + }, + { + "type": "feature", + "category": "Amazon Bedrock Runtime", + "contributor": "", + "description": "Add API Key and document citations support for Bedrock Runtime APIs" + }, + { + "type": "feature", + "category": "Amazon CloudWatch Logs", + "contributor": "", + "description": "Increase minimum length of queryId parameter to 1 character." + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "This release introduces ChatMetrics to the model, providing comprehensive analytics insights for Amazon Connect chat conversations. Users can access these detailed metrics through the AWS Connect API by using the DescribeContact operation with their specific instance and contact IDs" + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "", + "description": "This change adds support for witnesses in global tables. It also adds a new table status, REPLICATION_NOT_AUTHORIZED. This status will indicate scenarios where global replicas table can't be utilized for data plane operations." + }, + { + "type": "feature", + "category": "Amazon EventBridge", + "contributor": "", + "description": "Added support for EventBridge Dualstack endpoints in AWS GovCloud (US) regions (us-gov-east-1 and us-gov-west-1). The dualstack endpoints are identical for both FIPS and non-FIPS configurations, following the format: events.{region}.api.aws" + }, + { + "type": "feature", + "category": "Amazon QuickSight", + "contributor": "", + "description": "Introduced custom permission capabilities for reporting content. Added menu option in exploration to preserve configuration data when textbox menu option is used. Added support for Athena trusted identity propagation." + }, + { + "type": "feature", + "category": "Amazon Simple Systems Manager (SSM)", + "contributor": "", + "description": "Introduces AccessType, a new filter value for the DescribeSessions API." + }, + { + "type": "feature", + "category": "Network Flow Monitor", + "contributor": "", + "description": "Add ConflictExceptions to UpdateScope and DeleteScope operations for scopes being mutated." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.31.75.json b/.changes/2.31.75.json new file mode 100644 index 000000000000..1f01be61b2ed --- /dev/null +++ b/.changes/2.31.75.json @@ -0,0 +1,60 @@ +{ + "version": "2.31.75", + "date": "2025-07-01", + "entries": [ + { + "type": "feature", + "category": "AWS Clean Rooms ML", + "contributor": "", + "description": "This release introduces support for incremental training and distributed training for custom models in AWS Clean Rooms ML." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Add the sdk service client version to the useragent" + }, + { + "type": "feature", + "category": "Amazon DataZone", + "contributor": "", + "description": "Add support for the new optional domain-unit-id parameter in the UpdateProject API." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Add Context to GetInstanceTypesFromInstanceRequirements API" + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Amazon RDS Custom for Oracle now supports multi-AZ database instances." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Updated field validation requirements for InstanceGroups." + }, + { + "type": "feature", + "category": "QBusiness", + "contributor": "", + "description": "New ChatResponseConfiguration to Customize Q Business chat responses for specific use cases and communication needs. Updated Boosting capability allowing admins to provide preference on date attributes for recency and/or provide a preferred data source." + }, + { + "type": "feature", + "category": "odb", + "contributor": "", + "description": "This release adds API operations for Oracle Database@AWS. You can use the APIs to create Exadata infrastructure, ODB networks, and Exadata and Autonomous VM clusters inside AWS data centers. The infrastructure is managed by OCI. You can integrate these resources with AWS services." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e951b9a303a..2f742efa378b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,123 @@ #### 👋 _Looking for changelogs for older versions? You can find them in the [changelogs](./changelogs) directory._ +# __2.31.75__ __2025-07-01__ +## __AWS Clean Rooms ML__ + - ### Features + - This release introduces support for incremental training and distributed training for custom models in AWS Clean Rooms ML. + +## __AWS SDK for Java v2__ + - ### Features + - Add the sdk service client version to the useragent + - Updated endpoint and partition metadata. + +## __Amazon DataZone__ + - ### Features + - Add support for the new optional domain-unit-id parameter in the UpdateProject API. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add Context to GetInstanceTypesFromInstanceRequirements API + +## __Amazon Relational Database Service__ + - ### Features + - Amazon RDS Custom for Oracle now supports multi-AZ database instances. + +## __Amazon SageMaker Service__ + - ### Features + - Updated field validation requirements for InstanceGroups. + +## __QBusiness__ + - ### Features + - New ChatResponseConfiguration to Customize Q Business chat responses for specific use cases and communication needs. Updated Boosting capability allowing admins to provide preference on date attributes for recency and/or provide a preferred data source. + +## __odb__ + - ### Features + - This release adds API operations for Oracle Database@AWS. You can use the APIs to create Exadata infrastructure, ODB networks, and Exadata and Autonomous VM clusters inside AWS data centers. The infrastructure is managed by OCI. You can integrate these resources with AWS services. + +# __2.31.74__ __2025-06-30__ +## __AWS ARC - Zonal Shift__ + - ### Features + - Added support for on-demand practice runs and balanced capacity checks in ARC autoshift practice. + +## __AWS B2B Data Interchange__ + - ### Features + - Updated APIs to support inbound EDI split capabilities and additional Partnership-level configurations of generated EDI files' contents and format. + +## __AWS CloudFormation__ + - ### Features + - Added support for UNKNOWN drift status. + +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config as of June 2025 + +## __AWS Data Exchange__ + - ### Features + - This release updates resource Id with alphanumeric constraint, including Asset id, Revision id, Data Set id, Job id, and Event Action id. + +## __AWS Glue__ + - ### Features + - releasing source processing properties to support source properties for ODB integrations + +## __AWS Health Imaging__ + - ### Features + - Added new fields to support the concept of primary image sets within the storage hierarchy. + +## __AWS Identity and Access Management__ + - ### Features + - Updated IAM ServiceSpecificCredential support to include expiration, API Key output format instead of username and password for services that will support API keys, and the ability to list credentials for all users in the account for a given service configuration. + +## __AWS Outposts__ + - ### Features + - Make ContactName and ContactPhoneNumber required fields when creating and updating Outpost Site Addresses. + +## __AWS Parallel Computing Service__ + - ### Features + - Fixed the validation pattern for an instance profile Amazon Resource Name (ARN) in AWS PCS. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Transfer Family__ + - ### Features + - Added support for dual-stack (IPv4 and IPv6) endpoints for SFTP public endpoints and VPC-internal endpoints (SFTP, FTPS, FTP, and AS2), enabling customers to configure new servers with IPv4 or dual-stack mode, convert existing servers to dual-stack, and use IPv6 with service APIs. + +## __Amazon Bedrock__ + - ### Features + - Add support for API Keys, Re-Ranker, implicit filter for RAG / KB evaluation for Bedrock APIs. + +## __Amazon Bedrock Runtime__ + - ### Features + - Add API Key and document citations support for Bedrock Runtime APIs + +## __Amazon CloudWatch Logs__ + - ### Features + - Increase minimum length of queryId parameter to 1 character. + +## __Amazon Connect Service__ + - ### Features + - This release introduces ChatMetrics to the model, providing comprehensive analytics insights for Amazon Connect chat conversations. Users can access these detailed metrics through the AWS Connect API by using the DescribeContact operation with their specific instance and contact IDs + +## __Amazon DynamoDB__ + - ### Features + - This change adds support for witnesses in global tables. It also adds a new table status, REPLICATION_NOT_AUTHORIZED. This status will indicate scenarios where global replicas table can't be utilized for data plane operations. + +## __Amazon EventBridge__ + - ### Features + - Added support for EventBridge Dualstack endpoints in AWS GovCloud (US) regions (us-gov-east-1 and us-gov-west-1). The dualstack endpoints are identical for both FIPS and non-FIPS configurations, following the format: events.{region}.api.aws + +## __Amazon QuickSight__ + - ### Features + - Introduced custom permission capabilities for reporting content. Added menu option in exploration to preserve configuration data when textbox menu option is used. Added support for Athena trusted identity propagation. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Introduces AccessType, a new filter value for the DescribeSessions API. + +## __Network Flow Monitor__ + - ### Features + - Add ConflictExceptions to UpdateScope and DeleteScope operations for scopes being mutated. + # __2.31.73__ __2025-06-27__ ## __AWS Config__ - ### Features diff --git a/README.md b/README.md index 7744ca1f76fe..138e78fe5d87 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ To automatically manage module versions (currently all modules have the same ver software.amazon.awssdk bom - 2.31.73 + 2.31.75 pom import @@ -85,12 +85,12 @@ Alternatively you can add dependencies for the specific services you use only: software.amazon.awssdk ec2 - 2.31.73 + 2.31.75 software.amazon.awssdk s3 - 2.31.73 + 2.31.75 ``` @@ -102,7 +102,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please software.amazon.awssdk aws-sdk-java - 2.31.73 + 2.31.75 ``` diff --git a/archetypes/archetype-app-quickstart/pom.xml b/archetypes/archetype-app-quickstart/pom.xml index 512fe04aef87..dd4bf1d68a1a 100644 --- a/archetypes/archetype-app-quickstart/pom.xml +++ b/archetypes/archetype-app-quickstart/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/archetypes/archetype-lambda/pom.xml b/archetypes/archetype-lambda/pom.xml index 747cadfbc75c..ef2ea74c4c5f 100644 --- a/archetypes/archetype-lambda/pom.xml +++ b/archetypes/archetype-lambda/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 archetype-lambda diff --git a/archetypes/archetype-tools/pom.xml b/archetypes/archetype-tools/pom.xml index edf8a6fb0388..ca41b0676686 100644 --- a/archetypes/archetype-tools/pom.xml +++ b/archetypes/archetype-tools/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/archetypes/pom.xml b/archetypes/pom.xml index 159f3069c705..ef7e4795d710 100644 --- a/archetypes/pom.xml +++ b/archetypes/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 archetypes diff --git a/aws-sdk-java/pom.xml b/aws-sdk-java/pom.xml index 88625caa659f..71038e870e86 100644 --- a/aws-sdk-java/pom.xml +++ b/aws-sdk-java/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml aws-sdk-java @@ -2093,6 +2093,11 @@ Amazon AutoScaling, etc). keyspacesstreams ${awsjavasdk.version} + + software.amazon.awssdk + odb + ${awsjavasdk.version} + ${project.artifactId}-${project.version} diff --git a/bom-internal/pom.xml b/bom-internal/pom.xml index 902d7b6fec1d..5db756cda2de 100644 --- a/bom-internal/pom.xml +++ b/bom-internal/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/bom/pom.xml b/bom/pom.xml index 6f66d4f623b2..9219c536ef6e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml bom @@ -2293,6 +2293,11 @@ keyspacesstreams ${awsjavasdk.version} + + software.amazon.awssdk + odb + ${awsjavasdk.version} + diff --git a/bundle-logging-bridge/pom.xml b/bundle-logging-bridge/pom.xml index e35d49b6a4b1..0decc070a4f7 100644 --- a/bundle-logging-bridge/pom.xml +++ b/bundle-logging-bridge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bundle-logging-bridge jar diff --git a/bundle-sdk/pom.xml b/bundle-sdk/pom.xml index c261657e5fe6..a89e0182f5f2 100644 --- a/bundle-sdk/pom.xml +++ b/bundle-sdk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bundle-sdk jar diff --git a/bundle/pom.xml b/bundle/pom.xml index 2fc01995c746..b095bb7b81c4 100644 --- a/bundle/pom.xml +++ b/bundle/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bundle jar diff --git a/codegen-lite-maven-plugin/pom.xml b/codegen-lite-maven-plugin/pom.xml index 3b955a6a7c85..c8cb7e848abe 100644 --- a/codegen-lite-maven-plugin/pom.xml +++ b/codegen-lite-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml codegen-lite-maven-plugin diff --git a/codegen-lite/pom.xml b/codegen-lite/pom.xml index 894b483707d3..81beb659771e 100644 --- a/codegen-lite/pom.xml +++ b/codegen-lite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codegen-lite AWS Java SDK :: Code Generator Lite diff --git a/codegen-maven-plugin/pom.xml b/codegen-maven-plugin/pom.xml index 50e130c8b967..64fa80df5b50 100644 --- a/codegen-maven-plugin/pom.xml +++ b/codegen-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml codegen-maven-plugin diff --git a/codegen/pom.xml b/codegen/pom.xml index a9af7aaae87f..b5b94a594ad0 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codegen AWS Java SDK :: Code Generator diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java index aaa729662c17..9829133551c3 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java @@ -26,6 +26,7 @@ import static software.amazon.awssdk.codegen.internal.Constant.EVENT_PUBLISHER_PARAM_NAME; import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode; import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.applySignerOverrideMethod; +import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId; import static software.amazon.awssdk.codegen.poet.client.SyncClientClass.addRequestModifierCode; import static software.amazon.awssdk.codegen.poet.client.SyncClientClass.getProtocolSpecs; @@ -229,7 +230,14 @@ private MethodSpec constructor(TypeSpec.Builder classBuilder) { .addStatement("this.clientHandler = new $T(clientConfiguration)", AwsAsyncClientHandler.class) .addStatement("this.clientConfiguration = clientConfiguration.toBuilder()" + ".option($T.SDK_CLIENT, this)" - + ".build()", SdkClientOption.class); + + ".option($T.API_METADATA, $S + \"#\" + $T.VERSION)" + + ".build()", + SdkClientOption.class, + SdkClientOption.class, + transformServiceId(model.getMetadata().getServiceId()), + ClassName.get(model.getMetadata().getFullClientInternalPackageName(), + "ServiceVersionInfo")); + FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { builder.addStatement("this.$N = init($T.builder()).build()", protocolFactoryField.name, diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java index 87e8339e54a5..c058c1d7b654 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java @@ -280,4 +280,9 @@ public static MethodSpec updateRetryStrategyClientConfigurationMethod() { builder.addStatement("configuration.option($T.CONFIGURED_RETRY_CONFIGURATOR, null)", SdkClientOption.class); return builder.build(); } + + // According to User Agent 2.0 spec, replace spaces with underscores + static String transformServiceId(String serviceId) { + return serviceId.replace(" ", "_"); + } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java index 2695e43f8746..780d15a8298b 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java @@ -23,6 +23,7 @@ import static software.amazon.awssdk.codegen.poet.PoetUtils.classNameFromFqcn; import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode; import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.applySignerOverrideMethod; +import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId; import com.squareup.javapoet.ClassName; import com.squareup.javapoet.CodeBlock; @@ -201,7 +202,13 @@ private MethodSpec constructor() { .addStatement("this.clientHandler = new $T(clientConfiguration)", protocolSpec.getClientHandlerClass()) .addStatement("this.clientConfiguration = clientConfiguration.toBuilder()" + ".option($T.SDK_CLIENT, this)" - + ".build()", SdkClientOption.class); + + ".option($T.API_METADATA, $S + \"#\" + $T.VERSION)" + + ".build()", + SdkClientOption.class, + SdkClientOption.class, + transformServiceId(model.getMetadata().getServiceId()), + ClassName.get(model.getMetadata().getFullClientInternalPackageName(), + "ServiceVersionInfo")); FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/ServiceVersionInfoSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/ServiceVersionInfoSpec.java index 00963197bdee..145e482ad899 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/ServiceVersionInfoSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/ServiceVersionInfoSpec.java @@ -22,6 +22,7 @@ import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeSpec; import javax.lang.model.element.Modifier; +import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; import software.amazon.awssdk.codegen.poet.ClassSpec; import software.amazon.awssdk.codegen.poet.PoetExtension; @@ -39,6 +40,7 @@ public TypeSpec poetSpec() { TypeSpec.Builder builder = TypeSpec.classBuilder("ServiceVersionInfo") .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addAnnotation(PoetUtils.generatedAnnotation()) + .addAnnotation(SdkInternalApi.class) .addField(FieldSpec.builder( String.class, "VERSION", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) .initializer("$S", SDK_VERSION) diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules2/EndpointProviderSpec2.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules2/EndpointProviderSpec2.java index bf0cb11f1813..55dbf5358842 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules2/EndpointProviderSpec2.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules2/EndpointProviderSpec2.java @@ -236,7 +236,7 @@ private void codegenExpr(RuleSetExpression expr, CodeBlock.Builder builder) { utils.scopesByName(), useEndpointCaching, builder); - expr.accept(visitor); + visitor.visitRuleSetExpression(expr); } private TypeName ruleResult() { diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/ServiceVersionInfoSpecTest.java b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/ServiceVersionInfoSpecTest.java index 496a35914030..4fe4c9daf0bb 100644 --- a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/ServiceVersionInfoSpecTest.java +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/ServiceVersionInfoSpecTest.java @@ -31,15 +31,17 @@ public class ServiceVersionInfoSpecTest { // Fixture test that compares generated ServiceVersionInfo class against expected output. - // The fixture file uses {{VERSION}} as a placeholder which gets replaced with the current - // SDK version at test time, since the generated code injects the actual version at build time. + // The fixture file uses {{VERSION}} as a placeholder for the SDK version. The placeholder get + // replaced with actual value at test time, since the generated code injects the actual + // version at build time. @Test void testServiceVersionInfoClass() { String currVersion = VersionInfo.SDK_VERSION; ClassSpec serviceVersionInfoSpec = new ServiceVersionInfoSpec(ClientTestModels.restJsonServiceModels()); String expectedContent = loadFixtureFile("test-service-version-info-class.java"); - expectedContent = expectedContent.replace("{{VERSION}}", currVersion); + expectedContent = expectedContent + .replace("{{VERSION}}", currVersion); String actualContent = generateContent(serviceVersionInfoSpec); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/specs/test-service-version-info-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/specs/test-service-version-info-class.java index 62d60b103745..ab582d908e73 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/specs/test-service-version-info-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/specs/test-service-version-info-class.java @@ -2,8 +2,10 @@ import java.lang.String; import software.amazon.awssdk.annotations.Generated; +import software.amazon.awssdk.annotations.SdkInternalApi; @Generated("software.amazon.awssdk:codegen") +@SdkInternalApi public final class ServiceVersionInfo { /** * Returns the current version for the AWS SDK in which this class is running. diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java index 948b39851836..62fc9a6420b1 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java @@ -58,6 +58,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -140,7 +141,8 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-cbor-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-cbor-async-client-class.java index 179cda47f8d4..55e919112380 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-cbor-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-cbor-async-client-class.java @@ -59,6 +59,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -143,7 +144,9 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, + "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsCborProtocolFactory.builder()).build(); this.jsonProtocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java index ca1e1d24abd1..6af0c4bce214 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java @@ -64,6 +64,7 @@ import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.batchmanager.JsonAsyncBatchManager; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -153,7 +154,9 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, + "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java index 8c5920371062..2af4fa91155d 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java @@ -43,6 +43,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -108,7 +109,8 @@ final class DefaultJsonClient implements JsonClient { protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java index 8a7945259d3e..888fc0332acc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java @@ -45,6 +45,7 @@ import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.query.internal.QueryServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.query.internal.ServiceVersionInfo; import software.amazon.awssdk.services.query.model.APostOperationRequest; import software.amazon.awssdk.services.query.model.APostOperationResponse; import software.amazon.awssdk.services.query.model.APostOperationWithOutputRequest; @@ -122,7 +123,8 @@ final class DefaultQueryAsyncClient implements QueryAsyncClient { protected DefaultQueryAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Query_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java index 49ddc43017b9..c9fbcb8a1304 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java @@ -39,6 +39,7 @@ import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.query.internal.QueryServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.query.internal.ServiceVersionInfo; import software.amazon.awssdk.services.query.model.APostOperationRequest; import software.amazon.awssdk.services.query.model.APostOperationResponse; import software.amazon.awssdk.services.query.model.APostOperationWithOutputRequest; @@ -113,7 +114,8 @@ final class DefaultQueryClient implements QueryClient { protected DefaultQueryClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Query_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java index 966f8f0ee206..cd9f7feed73e 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java @@ -50,6 +50,7 @@ import software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory; import software.amazon.awssdk.protocols.xml.XmlOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.xml.internal.ServiceVersionInfo; import software.amazon.awssdk.services.xml.internal.XmlServiceClientConfigurationBuilder; import software.amazon.awssdk.services.xml.model.APostOperationRequest; import software.amazon.awssdk.services.xml.model.APostOperationResponse; @@ -114,7 +115,8 @@ final class DefaultXmlAsyncClient implements XmlAsyncClient { protected DefaultXmlAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Xml_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java index 7b2a515aa9a4..b96f7fc24865 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java @@ -39,6 +39,7 @@ import software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory; import software.amazon.awssdk.protocols.xml.XmlOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.xml.internal.ServiceVersionInfo; import software.amazon.awssdk.services.xml.internal.XmlServiceClientConfigurationBuilder; import software.amazon.awssdk.services.xml.model.APostOperationRequest; import software.amazon.awssdk.services.xml.model.APostOperationResponse; @@ -95,7 +96,8 @@ final class DefaultXmlClient implements XmlClient { protected DefaultXmlClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Xml_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java index a6e467d42300..9622a7daa009 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java @@ -63,6 +63,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -146,7 +147,8 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java index 4e035d57ed02..629de25187ad 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java @@ -38,6 +38,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.querytojsoncompatible.internal.QueryToJsonCompatibleServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.querytojsoncompatible.internal.ServiceVersionInfo; import software.amazon.awssdk.services.querytojsoncompatible.model.APostOperationRequest; import software.amazon.awssdk.services.querytojsoncompatible.model.APostOperationResponse; import software.amazon.awssdk.services.querytojsoncompatible.model.InvalidInputException; @@ -57,7 +58,7 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat private static final Logger log = LoggerFactory.getLogger(DefaultQueryToJsonCompatibleAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); + .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); private final AsyncClientHandler clientHandler; @@ -67,7 +68,8 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat protected DefaultQueryToJsonCompatibleAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "QueryToJsonCompatibleService" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -99,43 +101,43 @@ protected DefaultQueryToJsonCompatibleAsyncClient(SdkClientConfiguration clientC public CompletableFuture aPostOperation(APostOperationRequest aPostOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(aPostOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, aPostOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "QueryToJsonCompatibleService"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "APostOperation"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, APostOperationResponse::builder); + operationMetadata, APostOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); String hostPrefix = "{StringMember}-foo."; HostnameValidator.validateHostnameCompliant(aPostOperationRequest.stringMember(), "StringMember", - "aPostOperationRequest"); + "aPostOperationRequest"); String resolvedHostExpression = String.format("%s-foo.", aPostOperationRequest.stringMember()); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("APostOperation").withProtocolMetadata(protocolMetadata) - .withMarshaller(new APostOperationRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .hostPrefixExpression(resolvedHostExpression).withInput(aPostOperationRequest)); + .execute(new ClientExecutionParams() + .withOperationName("APostOperation").withProtocolMetadata(protocolMetadata) + .withMarshaller(new APostOperationRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .hostPrefixExpression(resolvedHostExpression).withInput(aPostOperationRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -159,12 +161,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(QueryToJsonCompatibleException::builder).protocol(AwsJsonProtocol.AWS_JSON) - .protocolVersion("1.1").hasAwsQueryCompatible(true); + .defaultServiceExceptionSupplier(QueryToJsonCompatibleException::builder).protocol(AwsJsonProtocol.AWS_JSON) + .protocolVersion("1.1").hasAwsQueryCompatible(true); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -208,7 +210,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } QueryToJsonCompatibleServiceClientConfigurationBuilder serviceConfigBuilder = new QueryToJsonCompatibleServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -217,7 +219,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java index aa52553f0bf0..4397f32d85b5 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java @@ -34,6 +34,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.querytojsoncompatible.internal.QueryToJsonCompatibleServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.querytojsoncompatible.internal.ServiceVersionInfo; import software.amazon.awssdk.services.querytojsoncompatible.model.APostOperationRequest; import software.amazon.awssdk.services.querytojsoncompatible.model.APostOperationResponse; import software.amazon.awssdk.services.querytojsoncompatible.model.InvalidInputException; @@ -53,7 +54,7 @@ final class DefaultQueryToJsonCompatibleClient implements QueryToJsonCompatibleC private static final Logger log = Logger.loggerFor(DefaultQueryToJsonCompatibleClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); + .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); private final SyncClientHandler clientHandler; @@ -63,7 +64,8 @@ final class DefaultQueryToJsonCompatibleClient implements QueryToJsonCompatibleC protected DefaultQueryToJsonCompatibleClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "QueryToJsonCompatibleService" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -89,45 +91,45 @@ protected DefaultQueryToJsonCompatibleClient(SdkClientConfiguration clientConfig */ @Override public APostOperationResponse aPostOperation(APostOperationRequest aPostOperationRequest) throws InvalidInputException, - AwsServiceException, SdkClientException, QueryToJsonCompatibleException { + AwsServiceException, SdkClientException, QueryToJsonCompatibleException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - APostOperationResponse::builder); + APostOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(aPostOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, aPostOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "QueryToJsonCompatibleService"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "APostOperation"); String hostPrefix = "{StringMember}-foo."; HostnameValidator.validateHostnameCompliant(aPostOperationRequest.stringMember(), "StringMember", - "aPostOperationRequest"); + "aPostOperationRequest"); String resolvedHostExpression = String.format("%s-foo.", aPostOperationRequest.stringMember()); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("APostOperation").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .hostPrefixExpression(resolvedHostExpression).withRequestConfiguration(clientConfiguration) - .withInput(aPostOperationRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new APostOperationRequestMarshaller(protocolFactory))); + .withOperationName("APostOperation").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .hostPrefixExpression(resolvedHostExpression).withRequestConfiguration(clientConfiguration) + .withInput(aPostOperationRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new APostOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -139,7 +141,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -154,7 +156,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -188,7 +190,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } QueryToJsonCompatibleServiceClientConfigurationBuilder serviceConfigBuilder = new QueryToJsonCompatibleServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -198,8 +200,8 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(QueryToJsonCompatibleException::builder).protocol(AwsJsonProtocol.AWS_JSON) - .protocolVersion("1.1").hasAwsQueryCompatible(true); + .defaultServiceExceptionSupplier(QueryToJsonCompatibleException::builder).protocol(AwsJsonProtocol.AWS_JSON) + .protocolVersion("1.1").hasAwsQueryCompatible(true); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-batchmanager-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-batchmanager-async.java index 8c13f1420fd1..66136524d4cc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-batchmanager-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-batchmanager-async.java @@ -40,6 +40,7 @@ import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.batchmanagertest.batchmanager.BatchManagerTestAsyncBatchManager; import software.amazon.awssdk.services.batchmanagertest.internal.BatchManagerTestServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.batchmanagertest.internal.ServiceVersionInfo; import software.amazon.awssdk.services.batchmanagertest.model.BatchManagerTestException; import software.amazon.awssdk.services.batchmanagertest.model.SendRequestRequest; import software.amazon.awssdk.services.batchmanagertest.model.SendRequestResponse; @@ -57,7 +58,7 @@ final class DefaultBatchManagerTestAsyncClient implements BatchManagerTestAsyncC private static final Logger log = LoggerFactory.getLogger(DefaultBatchManagerTestAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final AsyncClientHandler clientHandler; @@ -69,7 +70,8 @@ final class DefaultBatchManagerTestAsyncClient implements BatchManagerTestAsyncC protected DefaultBatchManagerTestAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "BatchManagerTest" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } @@ -98,36 +100,36 @@ protected DefaultBatchManagerTestAsyncClient(SdkClientConfiguration clientConfig public CompletableFuture sendRequest(SendRequestRequest sendRequestRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(sendRequestRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, sendRequestRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "BatchManagerTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SendRequest"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - SendRequestResponse::builder); + SendRequestResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("SendRequest").withProtocolMetadata(protocolMetadata) - .withMarshaller(new SendRequestRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(sendRequestRequest)); + .execute(new ClientExecutionParams() + .withOperationName("SendRequest").withProtocolMetadata(protocolMetadata) + .withMarshaller(new SendRequestRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(sendRequestRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -156,12 +158,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(BatchManagerTestException::builder).protocol(AwsJsonProtocol.REST_JSON) - .protocolVersion("1.1"); + .defaultServiceExceptionSupplier(BatchManagerTestException::builder).protocol(AwsJsonProtocol.REST_JSON) + .protocolVersion("1.1"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -205,7 +207,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } BatchManagerTestServiceClientConfigurationBuilder serviceConfigBuilder = new BatchManagerTestServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -214,7 +216,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-async-client-class.java index ae42324a36f6..7a975ac9082e 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-async-client-class.java @@ -64,6 +64,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -149,7 +150,8 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsCborProtocolFactory.builder()).build(); this.jsonProtocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-client-class.java index 7741026207f2..6894514a3d92 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-cbor-client-class.java @@ -40,6 +40,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -100,7 +101,8 @@ final class DefaultJsonClient implements JsonClient { protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsCborProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java index d1740b039d14..cbd3e0ac3630 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java @@ -3,6 +3,7 @@ import static software.amazon.awssdk.utils.FunctionalUtils.runAndLogError; import foo.bar.helloworld.internal.ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder; +import foo.bar.helloworld.internal.ServiceVersionInfo; import foo.bar.helloworld.model.OneOperationRequest; import foo.bar.helloworld.model.OneOperationResponse; import foo.bar.helloworld.model.ProtocolRestJsonWithCustomPackageException; @@ -55,7 +56,7 @@ final class DefaultProtocolRestJsonWithCustomPackageAsyncClient implements Proto private static final Logger log = LoggerFactory.getLogger(DefaultProtocolRestJsonWithCustomPackageAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final AsyncClientHandler clientHandler; @@ -65,7 +66,8 @@ final class DefaultProtocolRestJsonWithCustomPackageAsyncClient implements Proto protected DefaultProtocolRestJsonWithCustomPackageAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "AmazonProtocolRestJsonWithCustomPackage" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -93,36 +95,36 @@ protected DefaultProtocolRestJsonWithCustomPackageAsyncClient(SdkClientConfigura public CompletableFuture oneOperation(OneOperationRequest oneOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(oneOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, oneOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AmazonProtocolRestJsonWithCustomPackage"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OneOperation"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - OneOperationResponse::builder); + OneOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OneOperationRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(oneOperationRequest)); + .execute(new ClientExecutionParams() + .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OneOperationRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(oneOperationRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -137,7 +139,7 @@ public CompletableFuture oneOperation(OneOperationRequest @Override public final ProtocolRestJsonWithCustomPackageServiceClientConfiguration serviceClientConfiguration() { return new ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()) - .build(); + .build(); } @Override @@ -147,12 +149,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomPackageException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); + .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomPackageException::builder) + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -196,7 +198,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder serviceConfigBuilder = new ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -205,7 +207,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java index e6bad19f4837..86d2c5372f6b 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java @@ -1,6 +1,7 @@ package foo.bar.helloworld; import foo.bar.helloworld.internal.ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder; +import foo.bar.helloworld.internal.ServiceVersionInfo; import foo.bar.helloworld.model.OneOperationRequest; import foo.bar.helloworld.model.OneOperationResponse; import foo.bar.helloworld.model.ProtocolRestJsonWithCustomPackageException; @@ -51,7 +52,7 @@ final class DefaultProtocolRestJsonWithCustomPackageClient implements ProtocolRe private static final Logger log = Logger.loggerFor(DefaultProtocolRestJsonWithCustomPackageClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final SyncClientHandler clientHandler; @@ -61,7 +62,8 @@ final class DefaultProtocolRestJsonWithCustomPackageClient implements ProtocolRe protected DefaultProtocolRestJsonWithCustomPackageClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "AmazonProtocolRestJsonWithCustomPackage" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -83,38 +85,38 @@ protected DefaultProtocolRestJsonWithCustomPackageClient(SdkClientConfiguration */ @Override public OneOperationResponse oneOperation(OneOperationRequest oneOperationRequest) throws AwsServiceException, - SdkClientException, ProtocolRestJsonWithCustomPackageException { + SdkClientException, ProtocolRestJsonWithCustomPackageException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - OneOperationResponse::builder); + OneOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(oneOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, oneOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AmazonProtocolRestJsonWithCustomPackage"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OneOperation"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(oneOperationRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OneOperationRequestMarshaller(protocolFactory))); + .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(oneOperationRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OneOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -126,7 +128,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -141,7 +143,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -175,7 +177,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder serviceConfigBuilder = new ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -185,14 +187,14 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomPackageException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); + .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomPackageException::builder) + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); } @Override public final ProtocolRestJsonWithCustomPackageServiceClientConfiguration serviceClientConfiguration() { return new ProtocolRestJsonWithCustomPackageServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()) - .build(); + .build(); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java index 1ecac26efb45..b92034ef589c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java @@ -38,6 +38,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.internal.ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.internal.ServiceVersionInfo; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.OneOperationRequest; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.OneOperationResponse; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.ProtocolRestJsonWithCustomContentTypeException; @@ -55,7 +56,7 @@ final class DefaultProtocolRestJsonWithCustomContentTypeAsyncClient implements P private static final Logger log = LoggerFactory.getLogger(DefaultProtocolRestJsonWithCustomContentTypeAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final AsyncClientHandler clientHandler; @@ -65,7 +66,8 @@ final class DefaultProtocolRestJsonWithCustomContentTypeAsyncClient implements P protected DefaultProtocolRestJsonWithCustomContentTypeAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "AmazonProtocolRestJsonWithCustomContentType" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -93,36 +95,36 @@ protected DefaultProtocolRestJsonWithCustomContentTypeAsyncClient(SdkClientConfi public CompletableFuture oneOperation(OneOperationRequest oneOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(oneOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, oneOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AmazonProtocolRestJsonWithCustomContentType"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OneOperation"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - OneOperationResponse::builder); + OneOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OneOperationRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(oneOperationRequest)); + .execute(new ClientExecutionParams() + .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OneOperationRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(oneOperationRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -137,7 +139,7 @@ public CompletableFuture oneOperation(OneOperationRequest @Override public final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration() { return new ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()) - .build(); + .build(); } @Override @@ -147,12 +149,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomContentTypeException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1").contentType("application/json"); + .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomContentTypeException::builder) + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1").contentType("application/json"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -196,7 +198,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder serviceConfigBuilder = new ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -205,7 +207,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java index b97e2307b4d0..60728a004178 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java @@ -34,6 +34,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.internal.ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.internal.ServiceVersionInfo; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.OneOperationRequest; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.OneOperationResponse; import software.amazon.awssdk.services.protocolrestjsonwithcustomcontenttype.model.ProtocolRestJsonWithCustomContentTypeException; @@ -51,7 +52,7 @@ final class DefaultProtocolRestJsonWithCustomContentTypeClient implements Protoc private static final Logger log = Logger.loggerFor(DefaultProtocolRestJsonWithCustomContentTypeClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final SyncClientHandler clientHandler; @@ -61,7 +62,11 @@ final class DefaultProtocolRestJsonWithCustomContentTypeClient implements Protoc protected DefaultProtocolRestJsonWithCustomContentTypeClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration + .toBuilder() + .option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, + "AmazonProtocolRestJsonWithCustomContentType" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -83,38 +88,38 @@ protected DefaultProtocolRestJsonWithCustomContentTypeClient(SdkClientConfigurat */ @Override public OneOperationResponse oneOperation(OneOperationRequest oneOperationRequest) throws AwsServiceException, - SdkClientException, ProtocolRestJsonWithCustomContentTypeException { + SdkClientException, ProtocolRestJsonWithCustomContentTypeException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - OneOperationResponse::builder); + OneOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(oneOperationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, oneOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AmazonProtocolRestJsonWithCustomContentType"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OneOperation"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(oneOperationRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OneOperationRequestMarshaller(protocolFactory))); + .withOperationName("OneOperation").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(oneOperationRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OneOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -126,7 +131,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -141,7 +146,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -175,7 +180,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder serviceConfigBuilder = new ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -185,14 +190,14 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomContentTypeException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1").contentType("application/json"); + .defaultServiceExceptionSupplier(ProtocolRestJsonWithCustomContentTypeException::builder) + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1").contentType("application/json"); } @Override public final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration() { return new ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()) - .build(); + .build(); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java index 7324f449c25e..137d34e5f377 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java @@ -44,6 +44,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.endpointdiscoverytest.internal.EndpointDiscoveryTestServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.endpointdiscoverytest.internal.ServiceVersionInfo; import software.amazon.awssdk.services.endpointdiscoverytest.model.DescribeEndpointsRequest; import software.amazon.awssdk.services.endpointdiscoverytest.model.DescribeEndpointsResponse; import software.amazon.awssdk.services.endpointdiscoverytest.model.EndpointDiscoveryTestException; @@ -70,7 +71,7 @@ final class DefaultEndpointDiscoveryTestAsyncClient implements EndpointDiscovery private static final Logger log = LoggerFactory.getLogger(DefaultEndpointDiscoveryTestAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); + .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); private final AsyncClientHandler clientHandler; @@ -82,11 +83,12 @@ final class DefaultEndpointDiscoveryTestAsyncClient implements EndpointDiscovery protected DefaultEndpointDiscoveryTestAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "AwsEndpointDiscoveryTest" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache - .create(EndpointDiscoveryTestAsyncEndpointDiscoveryCacheLoader.create(this)); + .create(EndpointDiscoveryTestAsyncEndpointDiscoveryCacheLoader.create(this)); } } @@ -111,38 +113,38 @@ protected DefaultEndpointDiscoveryTestAsyncClient(SdkClientConfiguration clientC @Override public CompletableFuture describeEndpoints(DescribeEndpointsRequest describeEndpointsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeEndpointsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEndpointsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEndpoints"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, DescribeEndpointsResponse::builder); + operationMetadata, DescribeEndpointsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("DescribeEndpoints").withProtocolMetadata(protocolMetadata) - .withMarshaller(new DescribeEndpointsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(describeEndpointsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("DescribeEndpoints").withProtocolMetadata(protocolMetadata) + .withMarshaller(new DescribeEndpointsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(describeEndpointsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -175,69 +177,69 @@ public CompletableFuture describeEndpoints(DescribeEn */ @Override public CompletableFuture testDiscoveryIdentifiersRequired( - TestDiscoveryIdentifiersRequiredRequest testDiscoveryIdentifiersRequiredRequest) { + TestDiscoveryIdentifiersRequiredRequest testDiscoveryIdentifiersRequiredRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryIdentifiersRequiredRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)); + testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryIdentifiersRequired"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, TestDiscoveryIdentifiersRequiredResponse::builder); + .createResponseHandler(operationMetadata, TestDiscoveryIdentifiersRequiredResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER) - .isEndpointOverridden(); + .isEndpointOverridden(); if (endpointOverridden) { throw new IllegalStateException( - "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); + "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); } if (!endpointDiscoveryEnabled) { throw new IllegalStateException( - "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); + "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); } CompletableFuture endpointFuture = CompletableFuture.completedFuture(null); if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryIdentifiersRequiredRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) - .resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) + .resolveIdentity(); endpointFuture = identityFuture.thenCompose(credentials -> { EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest - .builder() - .required(true) - .defaultEndpoint( - clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)) - .build(); + .builder() + .required(true) + .defaultEndpoint( + clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)) + .build(); return endpointDiscoveryCache.getAsync(credentials.accessKeyId(), endpointDiscoveryRequest); }); } CompletableFuture executeFuture = endpointFuture - .thenCompose(cachedEndpoint -> clientHandler - .execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryIdentifiersRequired").withProtocolMetadata(protocolMetadata) - .withMarshaller(new TestDiscoveryIdentifiersRequiredRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryIdentifiersRequiredRequest))); + .thenCompose(cachedEndpoint -> clientHandler + .execute(new ClientExecutionParams() + .withOperationName("TestDiscoveryIdentifiersRequired").withProtocolMetadata(protocolMetadata) + .withMarshaller(new TestDiscoveryIdentifiersRequiredRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryIdentifiersRequiredRequest))); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -269,60 +271,60 @@ public CompletableFuture testDiscovery */ @Override public CompletableFuture testDiscoveryOptional( - TestDiscoveryOptionalRequest testDiscoveryOptionalRequest) { + TestDiscoveryOptionalRequest testDiscoveryOptionalRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryOptionalRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testDiscoveryOptionalRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryOptional"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, TestDiscoveryOptionalResponse::builder); + operationMetadata, TestDiscoveryOptionalResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER) - .isEndpointOverridden(); + .isEndpointOverridden(); CompletableFuture endpointFuture = CompletableFuture.completedFuture(null); if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryOptionalRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) - .resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) + .resolveIdentity(); endpointFuture = identityFuture.thenCompose(credentials -> { EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest - .builder() - .required(false) - .defaultEndpoint( - clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryOptionalRequest.overrideConfiguration().orElse(null)).build(); + .builder() + .required(false) + .defaultEndpoint( + clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryOptionalRequest.overrideConfiguration().orElse(null)).build(); return endpointDiscoveryCache.getAsync(credentials.accessKeyId(), endpointDiscoveryRequest); }); } CompletableFuture executeFuture = endpointFuture - .thenCompose(cachedEndpoint -> clientHandler - .execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryOptional").withProtocolMetadata(protocolMetadata) - .withMarshaller(new TestDiscoveryOptionalRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryOptionalRequest))); + .thenCompose(cachedEndpoint -> clientHandler + .execute(new ClientExecutionParams() + .withOperationName("TestDiscoveryOptional").withProtocolMetadata(protocolMetadata) + .withMarshaller(new TestDiscoveryOptionalRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryOptionalRequest))); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -354,68 +356,68 @@ public CompletableFuture testDiscoveryOptional( */ @Override public CompletableFuture testDiscoveryRequired( - TestDiscoveryRequiredRequest testDiscoveryRequiredRequest) { + TestDiscoveryRequiredRequest testDiscoveryRequiredRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryRequiredRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testDiscoveryRequiredRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryRequired"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, TestDiscoveryRequiredResponse::builder); + operationMetadata, TestDiscoveryRequiredResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER) - .isEndpointOverridden(); + .isEndpointOverridden(); if (endpointOverridden) { throw new IllegalStateException( - "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); + "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); } if (!endpointDiscoveryEnabled) { throw new IllegalStateException( - "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); + "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); } CompletableFuture endpointFuture = CompletableFuture.completedFuture(null); if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryRequiredRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) - .resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)) + .resolveIdentity(); endpointFuture = identityFuture.thenCompose(credentials -> { EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest - .builder() - .required(true) - .defaultEndpoint( - clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryRequiredRequest.overrideConfiguration().orElse(null)).build(); + .builder() + .required(true) + .defaultEndpoint( + clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryRequiredRequest.overrideConfiguration().orElse(null)).build(); return endpointDiscoveryCache.getAsync(credentials.accessKeyId(), endpointDiscoveryRequest); }); } CompletableFuture executeFuture = endpointFuture - .thenCompose(cachedEndpoint -> clientHandler - .execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryRequired").withProtocolMetadata(protocolMetadata) - .withMarshaller(new TestDiscoveryRequiredRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryRequiredRequest))); + .thenCompose(cachedEndpoint -> clientHandler + .execute(new ClientExecutionParams() + .withOperationName("TestDiscoveryRequired").withProtocolMetadata(protocolMetadata) + .withMarshaller(new TestDiscoveryRequiredRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .discoveredEndpoint(cachedEndpoint).withInput(testDiscoveryRequiredRequest))); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -439,12 +441,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(EndpointDiscoveryTestException::builder).protocol(AwsJsonProtocol.AWS_JSON) - .protocolVersion("1.1"); + .defaultServiceExceptionSupplier(EndpointDiscoveryTestException::builder).protocol(AwsJsonProtocol.AWS_JSON) + .protocolVersion("1.1"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -488,7 +490,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } EndpointDiscoveryTestServiceClientConfigurationBuilder serviceConfigBuilder = new EndpointDiscoveryTestServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -497,7 +499,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java index a473c2090cdb..a25497e1327b 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java @@ -41,6 +41,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.endpointdiscoverytest.internal.EndpointDiscoveryTestServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.endpointdiscoverytest.internal.ServiceVersionInfo; import software.amazon.awssdk.services.endpointdiscoverytest.model.DescribeEndpointsRequest; import software.amazon.awssdk.services.endpointdiscoverytest.model.DescribeEndpointsResponse; import software.amazon.awssdk.services.endpointdiscoverytest.model.EndpointDiscoveryTestException; @@ -68,7 +69,7 @@ final class DefaultEndpointDiscoveryTestClient implements EndpointDiscoveryTestC private static final Logger log = Logger.loggerFor(DefaultEndpointDiscoveryTestClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); + .serviceProtocol(AwsServiceProtocol.AWS_JSON).build(); private final SyncClientHandler clientHandler; @@ -80,11 +81,12 @@ final class DefaultEndpointDiscoveryTestClient implements EndpointDiscoveryTestC protected DefaultEndpointDiscoveryTestClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "AwsEndpointDiscoveryTest" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache.create(EndpointDiscoveryTestEndpointDiscoveryCacheLoader - .create(this)); + .create(this)); } } @@ -104,39 +106,39 @@ protected DefaultEndpointDiscoveryTestClient(SdkClientConfiguration clientConfig */ @Override public DescribeEndpointsResponse describeEndpoints(DescribeEndpointsRequest describeEndpointsRequest) - throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { + throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - DescribeEndpointsResponse::builder); + DescribeEndpointsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeEndpointsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEndpointsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEndpoints"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("DescribeEndpoints").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(describeEndpointsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new DescribeEndpointsRequestMarshaller(protocolFactory))); + .withOperationName("DescribeEndpoints").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(describeEndpointsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new DescribeEndpointsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -158,62 +160,62 @@ public DescribeEndpointsResponse describeEndpoints(DescribeEndpointsRequest desc */ @Override public TestDiscoveryIdentifiersRequiredResponse testDiscoveryIdentifiersRequired( - TestDiscoveryIdentifiersRequiredRequest testDiscoveryIdentifiersRequiredRequest) throws AwsServiceException, - SdkClientException, EndpointDiscoveryTestException { + TestDiscoveryIdentifiersRequiredRequest testDiscoveryIdentifiersRequiredRequest) throws AwsServiceException, + SdkClientException, EndpointDiscoveryTestException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, TestDiscoveryIdentifiersRequiredResponse::builder); + operationMetadata, TestDiscoveryIdentifiersRequiredResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).isEndpointOverridden(); if (endpointOverridden) { throw new IllegalStateException( - "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); + "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); } if (!endpointDiscoveryEnabled) { throw new IllegalStateException( - "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); + "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); } URI cachedEndpoint = null; if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryIdentifiersRequiredRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); String key = CompletableFutureUtils.joinLikeSync(identityFuture).accessKeyId(); EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest.builder().required(true) - .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)).build(); + .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)).build(); cachedEndpoint = endpointDiscoveryCache.get(key, endpointDiscoveryRequest); } SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryIdentifiersRequiredRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)); + testDiscoveryIdentifiersRequiredRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryIdentifiersRequired"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryIdentifiersRequired").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) - .withInput(testDiscoveryIdentifiersRequiredRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new TestDiscoveryIdentifiersRequiredRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("TestDiscoveryIdentifiersRequired").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) + .withInput(testDiscoveryIdentifiersRequiredRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new TestDiscoveryIdentifiersRequiredRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -235,52 +237,52 @@ public TestDiscoveryIdentifiersRequiredResponse testDiscoveryIdentifiersRequired */ @Override public TestDiscoveryOptionalResponse testDiscoveryOptional(TestDiscoveryOptionalRequest testDiscoveryOptionalRequest) - throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { + throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, TestDiscoveryOptionalResponse::builder); + operationMetadata, TestDiscoveryOptionalResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).isEndpointOverridden(); URI cachedEndpoint = null; if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryOptionalRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); String key = CompletableFutureUtils.joinLikeSync(identityFuture).accessKeyId(); EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest.builder().required(false) - .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryOptionalRequest.overrideConfiguration().orElse(null)).build(); + .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryOptionalRequest.overrideConfiguration().orElse(null)).build(); cachedEndpoint = endpointDiscoveryCache.get(key, endpointDiscoveryRequest); } SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryOptionalRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testDiscoveryOptionalRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryOptional"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryOptional").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) - .withInput(testDiscoveryOptionalRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new TestDiscoveryOptionalRequestMarshaller(protocolFactory))); + .withOperationName("TestDiscoveryOptional").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) + .withInput(testDiscoveryOptionalRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new TestDiscoveryOptionalRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -302,60 +304,60 @@ public TestDiscoveryOptionalResponse testDiscoveryOptional(TestDiscoveryOptional */ @Override public TestDiscoveryRequiredResponse testDiscoveryRequired(TestDiscoveryRequiredRequest testDiscoveryRequiredRequest) - throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { + throws AwsServiceException, SdkClientException, EndpointDiscoveryTestException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, TestDiscoveryRequiredResponse::builder); + operationMetadata, TestDiscoveryRequiredResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - default: - return Optional.empty(); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); boolean endpointDiscoveryEnabled = clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED); boolean endpointOverridden = clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).isEndpointOverridden(); if (endpointOverridden) { throw new IllegalStateException( - "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); + "This operation requires endpoint discovery, but an endpoint override was specified when the client was created. This is not supported."); } if (!endpointDiscoveryEnabled) { throw new IllegalStateException( - "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); + "This operation requires endpoint discovery, but endpoint discovery was disabled on the client."); } URI cachedEndpoint = null; if (endpointDiscoveryEnabled) { CompletableFuture identityFuture = testDiscoveryRequiredRequest - .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); + .overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) + .orElseGet(() -> clientConfiguration.option(AwsClientOption.CREDENTIALS_IDENTITY_PROVIDER)).resolveIdentity(); String key = CompletableFutureUtils.joinLikeSync(identityFuture).accessKeyId(); EndpointDiscoveryRequest endpointDiscoveryRequest = EndpointDiscoveryRequest.builder().required(true) - .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) - .overrideConfiguration(testDiscoveryRequiredRequest.overrideConfiguration().orElse(null)).build(); + .defaultEndpoint(clientConfiguration.option(SdkClientOption.CLIENT_ENDPOINT_PROVIDER).clientEndpoint()) + .overrideConfiguration(testDiscoveryRequiredRequest.overrideConfiguration().orElse(null)).build(); cachedEndpoint = endpointDiscoveryCache.get(key, endpointDiscoveryRequest); } SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDiscoveryRequiredRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testDiscoveryRequiredRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "AwsEndpointDiscoveryTest"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDiscoveryRequired"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("TestDiscoveryRequired").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) - .withInput(testDiscoveryRequiredRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new TestDiscoveryRequiredRequestMarshaller(protocolFactory))); + .withOperationName("TestDiscoveryRequired").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .discoveredEndpoint(cachedEndpoint).withRequestConfiguration(clientConfiguration) + .withInput(testDiscoveryRequiredRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new TestDiscoveryRequiredRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -367,7 +369,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -382,7 +384,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -416,7 +418,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } EndpointDiscoveryTestServiceClientConfigurationBuilder serviceConfigBuilder = new EndpointDiscoveryTestServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -426,8 +428,8 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(EndpointDiscoveryTestException::builder).protocol(AwsJsonProtocol.AWS_JSON) - .protocolVersion("1.1"); + .defaultServiceExceptionSupplier(EndpointDiscoveryTestException::builder).protocol(AwsJsonProtocol.AWS_JSON) + .protocolVersion("1.1"); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java index 65a319c88a89..8cc62fc11b76 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java @@ -70,6 +70,7 @@ import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.batchmanager.JsonAsyncBatchManager; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -160,7 +161,9 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, + "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java index 36bbe1316c9a..6c3d7b89e49c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java @@ -47,6 +47,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.json.internal.JsonServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.json.internal.ServiceVersionInfo; import software.amazon.awssdk.services.json.model.APostOperationRequest; import software.amazon.awssdk.services.json.model.APostOperationResponse; import software.amazon.awssdk.services.json.model.APostOperationWithOutputRequest; @@ -113,7 +114,8 @@ final class DefaultJsonClient implements JsonClient { protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Json_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java index 042d0d6220b8..315cfc92febc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java @@ -49,6 +49,7 @@ import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.query.internal.QueryServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.query.internal.ServiceVersionInfo; import software.amazon.awssdk.services.query.model.APostOperationRequest; import software.amazon.awssdk.services.query.model.APostOperationResponse; import software.amazon.awssdk.services.query.model.APostOperationWithOutputRequest; @@ -127,7 +128,8 @@ final class DefaultQueryAsyncClient implements QueryAsyncClient { protected DefaultQueryAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Query_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java index 8025c0c0568f..89c434672edb 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java @@ -42,6 +42,7 @@ import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.query.internal.QueryServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.query.internal.ServiceVersionInfo; import software.amazon.awssdk.services.query.model.APostOperationRequest; import software.amazon.awssdk.services.query.model.APostOperationResponse; import software.amazon.awssdk.services.query.model.APostOperationWithOutputRequest; @@ -117,7 +118,8 @@ final class DefaultQueryClient implements QueryClient { protected DefaultQueryClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Query_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-async-client-class.java index 3f49694dc45d..9ec3cad2ab53 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-async-client-class.java @@ -37,6 +37,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.protocols.rpcv2.SmithyRpcV2CborProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.smithyrpcv2protocol.internal.ServiceVersionInfo; import software.amazon.awssdk.services.smithyrpcv2protocol.internal.SmithyRpcV2ProtocolServiceClientConfigurationBuilder; import software.amazon.awssdk.services.smithyrpcv2protocol.model.ComplexErrorException; import software.amazon.awssdk.services.smithyrpcv2protocol.model.EmptyInputOutputRequest; @@ -94,7 +95,7 @@ final class DefaultSmithyRpcV2ProtocolAsyncClient implements SmithyRpcV2Protocol private static final Logger log = LoggerFactory.getLogger(DefaultSmithyRpcV2ProtocolAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.SMITHY_RPC_V2_CBOR).build(); + .serviceProtocol(AwsServiceProtocol.SMITHY_RPC_V2_CBOR).build(); private final AsyncClientHandler clientHandler; @@ -104,7 +105,8 @@ final class DefaultSmithyRpcV2ProtocolAsyncClient implements SmithyRpcV2Protocol protected DefaultSmithyRpcV2ProtocolAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "SmithyRpcV2Protocol" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(SmithyRpcV2CborProtocolFactory.builder()).build(); } @@ -131,47 +133,47 @@ protected DefaultSmithyRpcV2ProtocolAsyncClient(SdkClientConfiguration clientCon @Override public CompletableFuture emptyInputOutput(EmptyInputOutputRequest emptyInputOutputRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(emptyInputOutputRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, emptyInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EmptyInputOutput"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, EmptyInputOutputResponse::builder); + operationMetadata, EmptyInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("EmptyInputOutput").withProtocolMetadata(protocolMetadata) - .withMarshaller(new EmptyInputOutputRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(emptyInputOutputRequest)); + .execute(new ClientExecutionParams() + .withOperationName("EmptyInputOutput").withProtocolMetadata(protocolMetadata) + .withMarshaller(new EmptyInputOutputRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(emptyInputOutputRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -207,44 +209,44 @@ public CompletableFuture emptyInputOutput(EmptyInputOu public CompletableFuture float16(Float16Request float16Request) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(float16Request, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, float16Request - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "Float16"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - Float16Response::builder); + Float16Response::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams().withOperationName("Float16") - .withProtocolMetadata(protocolMetadata).withMarshaller(new Float16RequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(float16Request)); + .execute(new ClientExecutionParams().withOperationName("Float16") + .withProtocolMetadata(protocolMetadata).withMarshaller(new Float16RequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(float16Request)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -279,47 +281,47 @@ public CompletableFuture float16(Float16Request float16Request) @Override public CompletableFuture fractionalSeconds(FractionalSecondsRequest fractionalSecondsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(fractionalSecondsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, fractionalSecondsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "FractionalSeconds"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, FractionalSecondsResponse::builder); + operationMetadata, FractionalSecondsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("FractionalSeconds").withProtocolMetadata(protocolMetadata) - .withMarshaller(new FractionalSecondsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(fractionalSecondsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("FractionalSeconds").withProtocolMetadata(protocolMetadata) + .withMarshaller(new FractionalSecondsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(fractionalSecondsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -356,47 +358,47 @@ public CompletableFuture fractionalSeconds(Fractional @Override public CompletableFuture greetingWithErrors(GreetingWithErrorsRequest greetingWithErrorsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(greetingWithErrorsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, greetingWithErrorsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GreetingWithErrors"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, GreetingWithErrorsResponse::builder); + operationMetadata, GreetingWithErrorsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("GreetingWithErrors").withProtocolMetadata(protocolMetadata) - .withMarshaller(new GreetingWithErrorsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(greetingWithErrorsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("GreetingWithErrors").withProtocolMetadata(protocolMetadata) + .withMarshaller(new GreetingWithErrorsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(greetingWithErrorsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -432,45 +434,45 @@ public CompletableFuture greetingWithErrors(Greeting public CompletableFuture noInputOutput(NoInputOutputRequest noInputOutputRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(noInputOutputRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, noInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "NoInputOutput"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - NoInputOutputResponse::builder); + NoInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("NoInputOutput").withProtocolMetadata(protocolMetadata) - .withMarshaller(new NoInputOutputRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(noInputOutputRequest)); + .execute(new ClientExecutionParams() + .withOperationName("NoInputOutput").withProtocolMetadata(protocolMetadata) + .withMarshaller(new NoInputOutputRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(noInputOutputRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -505,49 +507,49 @@ public CompletableFuture noInputOutput(NoInputOutputReque */ @Override public CompletableFuture operationWithDefaults( - OperationWithDefaultsRequest operationWithDefaultsRequest) { + OperationWithDefaultsRequest operationWithDefaultsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(operationWithDefaultsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, operationWithDefaultsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OperationWithDefaults"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OperationWithDefaultsResponse::builder); + operationMetadata, OperationWithDefaultsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("OperationWithDefaults").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OperationWithDefaultsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(operationWithDefaultsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("OperationWithDefaults").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OperationWithDefaultsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(operationWithDefaultsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -581,49 +583,49 @@ public CompletableFuture operationWithDefaults( */ @Override public CompletableFuture optionalInputOutput( - OptionalInputOutputRequest optionalInputOutputRequest) { + OptionalInputOutputRequest optionalInputOutputRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(optionalInputOutputRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, optionalInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OptionalInputOutput"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OptionalInputOutputResponse::builder); + operationMetadata, OptionalInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("OptionalInputOutput").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OptionalInputOutputRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(optionalInputOutputRequest)); + .execute(new ClientExecutionParams() + .withOperationName("OptionalInputOutput").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OptionalInputOutputRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(optionalInputOutputRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -658,47 +660,47 @@ public CompletableFuture optionalInputOutput( @Override public CompletableFuture recursiveShapes(RecursiveShapesRequest recursiveShapesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(recursiveShapesRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, recursiveShapesRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RecursiveShapes"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RecursiveShapesResponse::builder); + operationMetadata, RecursiveShapesResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("RecursiveShapes").withProtocolMetadata(protocolMetadata) - .withMarshaller(new RecursiveShapesRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(recursiveShapesRequest)); + .execute(new ClientExecutionParams() + .withOperationName("RecursiveShapes").withProtocolMetadata(protocolMetadata) + .withMarshaller(new RecursiveShapesRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(recursiveShapesRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -734,47 +736,47 @@ public CompletableFuture recursiveShapes(RecursiveShape @Override public CompletableFuture rpcV2CborDenseMaps(RpcV2CborDenseMapsRequest rpcV2CborDenseMapsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborDenseMapsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborDenseMapsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborDenseMaps"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RpcV2CborDenseMapsResponse::builder); + operationMetadata, RpcV2CborDenseMapsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("RpcV2CborDenseMaps").withProtocolMetadata(protocolMetadata) - .withMarshaller(new RpcV2CborDenseMapsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(rpcV2CborDenseMapsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("RpcV2CborDenseMaps").withProtocolMetadata(protocolMetadata) + .withMarshaller(new RpcV2CborDenseMapsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(rpcV2CborDenseMapsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -811,45 +813,45 @@ public CompletableFuture rpcV2CborDenseMaps(RpcV2Cbo public CompletableFuture rpcV2CborLists(RpcV2CborListsRequest rpcV2CborListsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborListsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborListsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborLists"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RpcV2CborListsResponse::builder); + operationMetadata, RpcV2CborListsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("RpcV2CborLists").withProtocolMetadata(protocolMetadata) - .withMarshaller(new RpcV2CborListsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(rpcV2CborListsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("RpcV2CborLists").withProtocolMetadata(protocolMetadata) + .withMarshaller(new RpcV2CborListsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(rpcV2CborListsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -884,49 +886,49 @@ public CompletableFuture rpcV2CborLists(RpcV2CborListsRe */ @Override public CompletableFuture rpcV2CborSparseMaps( - RpcV2CborSparseMapsRequest rpcV2CborSparseMapsRequest) { + RpcV2CborSparseMapsRequest rpcV2CborSparseMapsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborSparseMapsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborSparseMapsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborSparseMaps"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RpcV2CborSparseMapsResponse::builder); + operationMetadata, RpcV2CborSparseMapsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("RpcV2CborSparseMaps").withProtocolMetadata(protocolMetadata) - .withMarshaller(new RpcV2CborSparseMapsRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(rpcV2CborSparseMapsRequest)); + .execute(new ClientExecutionParams() + .withOperationName("RpcV2CborSparseMaps").withProtocolMetadata(protocolMetadata) + .withMarshaller(new RpcV2CborSparseMapsRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(rpcV2CborSparseMapsRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -960,49 +962,49 @@ public CompletableFuture rpcV2CborSparseMaps( */ @Override public CompletableFuture simpleScalarProperties( - SimpleScalarPropertiesRequest simpleScalarPropertiesRequest) { + SimpleScalarPropertiesRequest simpleScalarPropertiesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(simpleScalarPropertiesRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, simpleScalarPropertiesRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SimpleScalarProperties"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, SimpleScalarPropertiesResponse::builder); + operationMetadata, SimpleScalarPropertiesResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("SimpleScalarProperties").withProtocolMetadata(protocolMetadata) - .withMarshaller(new SimpleScalarPropertiesRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(simpleScalarPropertiesRequest)); + .execute(new ClientExecutionParams() + .withOperationName("SimpleScalarProperties").withProtocolMetadata(protocolMetadata) + .withMarshaller(new SimpleScalarPropertiesRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(simpleScalarPropertiesRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -1036,49 +1038,49 @@ public CompletableFuture simpleScalarProperties( */ @Override public CompletableFuture sparseNullsOperation( - SparseNullsOperationRequest sparseNullsOperationRequest) { + SparseNullsOperationRequest sparseNullsOperationRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(sparseNullsOperationRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, sparseNullsOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SparseNullsOperation"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, SparseNullsOperationResponse::builder); + operationMetadata, SparseNullsOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("SparseNullsOperation").withProtocolMetadata(protocolMetadata) - .withMarshaller(new SparseNullsOperationRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(sparseNullsOperationRequest)); + .execute(new ClientExecutionParams() + .withOperationName("SparseNullsOperation").withProtocolMetadata(protocolMetadata) + .withMarshaller(new SparseNullsOperationRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(sparseNullsOperationRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -1102,12 +1104,12 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(SmithyRpcV2ProtocolException::builder) - .protocol(AwsJsonProtocol.SMITHY_RPC_V2_CBOR).protocolVersion("1.1"); + .defaultServiceExceptionSupplier(SmithyRpcV2ProtocolException::builder) + .protocol(AwsJsonProtocol.SMITHY_RPC_V2_CBOR).protocolVersion("1.1"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -1151,7 +1153,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } SmithyRpcV2ProtocolServiceClientConfigurationBuilder serviceConfigBuilder = new SmithyRpcV2ProtocolServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -1160,7 +1162,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-sync.java index fe4cc2f7b0eb..e1127da5917e 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-rpcv2-sync.java @@ -33,6 +33,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.protocols.rpcv2.SmithyRpcV2CborProtocolFactory; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.smithyrpcv2protocol.internal.ServiceVersionInfo; import software.amazon.awssdk.services.smithyrpcv2protocol.internal.SmithyRpcV2ProtocolServiceClientConfigurationBuilder; import software.amazon.awssdk.services.smithyrpcv2protocol.model.ComplexErrorException; import software.amazon.awssdk.services.smithyrpcv2protocol.model.EmptyInputOutputRequest; @@ -90,7 +91,7 @@ final class DefaultSmithyRpcV2ProtocolClient implements SmithyRpcV2ProtocolClien private static final Logger log = Logger.loggerFor(DefaultSmithyRpcV2ProtocolClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.SMITHY_RPC_V2_CBOR).build(); + .serviceProtocol(AwsServiceProtocol.SMITHY_RPC_V2_CBOR).build(); private final SyncClientHandler clientHandler; @@ -100,7 +101,8 @@ final class DefaultSmithyRpcV2ProtocolClient implements SmithyRpcV2ProtocolClien protected DefaultSmithyRpcV2ProtocolClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "SmithyRpcV2Protocol" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(SmithyRpcV2CborProtocolFactory.builder()).build(); } @@ -122,48 +124,48 @@ protected DefaultSmithyRpcV2ProtocolClient(SdkClientConfiguration clientConfigur */ @Override public EmptyInputOutputResponse emptyInputOutput(EmptyInputOutputRequest emptyInputOutputRequest) throws AwsServiceException, - SdkClientException, SmithyRpcV2ProtocolException { + SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - EmptyInputOutputResponse::builder); + EmptyInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(emptyInputOutputRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, emptyInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EmptyInputOutput"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("EmptyInputOutput").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(emptyInputOutputRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new EmptyInputOutputRequestMarshaller(protocolFactory))); + .withOperationName("EmptyInputOutput").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(emptyInputOutputRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new EmptyInputOutputRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -187,46 +189,46 @@ public EmptyInputOutputResponse emptyInputOutput(EmptyInputOutputRequest emptyIn */ @Override public Float16Response float16(Float16Request float16Request) throws AwsServiceException, SdkClientException, - SmithyRpcV2ProtocolException { + SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - Float16Response::builder); + Float16Response::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(float16Request, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, float16Request - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "Float16"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("Float16").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) - .withInput(float16Request).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new Float16RequestMarshaller(protocolFactory))); + .withOperationName("Float16").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) + .withInput(float16Request).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new Float16RequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -250,48 +252,48 @@ public Float16Response float16(Float16Request float16Request) throws AwsServiceE */ @Override public FractionalSecondsResponse fractionalSeconds(FractionalSecondsRequest fractionalSecondsRequest) - throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - FractionalSecondsResponse::builder); + FractionalSecondsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(fractionalSecondsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, fractionalSecondsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "FractionalSeconds"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("FractionalSeconds").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(fractionalSecondsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new FractionalSecondsRequestMarshaller(protocolFactory))); + .withOperationName("FractionalSeconds").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(fractionalSecondsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new FractionalSecondsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -317,49 +319,49 @@ public FractionalSecondsResponse fractionalSeconds(FractionalSecondsRequest frac */ @Override public GreetingWithErrorsResponse greetingWithErrors(GreetingWithErrorsRequest greetingWithErrorsRequest) - throws ComplexErrorException, InvalidGreetingException, AwsServiceException, SdkClientException, - SmithyRpcV2ProtocolException { + throws ComplexErrorException, InvalidGreetingException, AwsServiceException, SdkClientException, + SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, GreetingWithErrorsResponse::builder); + operationMetadata, GreetingWithErrorsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(greetingWithErrorsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, greetingWithErrorsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GreetingWithErrors"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("GreetingWithErrors").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(greetingWithErrorsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new GreetingWithErrorsRequestMarshaller(protocolFactory))); + .withOperationName("GreetingWithErrors").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(greetingWithErrorsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new GreetingWithErrorsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -383,47 +385,47 @@ public GreetingWithErrorsResponse greetingWithErrors(GreetingWithErrorsRequest g */ @Override public NoInputOutputResponse noInputOutput(NoInputOutputRequest noInputOutputRequest) throws AwsServiceException, - SdkClientException, SmithyRpcV2ProtocolException { + SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - NoInputOutputResponse::builder); + NoInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(noInputOutputRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, noInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "NoInputOutput"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("NoInputOutput").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(noInputOutputRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new NoInputOutputRequestMarshaller(protocolFactory))); + .withOperationName("NoInputOutput").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(noInputOutputRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new NoInputOutputRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -448,48 +450,48 @@ public NoInputOutputResponse noInputOutput(NoInputOutputRequest noInputOutputReq */ @Override public OperationWithDefaultsResponse operationWithDefaults(OperationWithDefaultsRequest operationWithDefaultsRequest) - throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OperationWithDefaultsResponse::builder); + operationMetadata, OperationWithDefaultsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(operationWithDefaultsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, operationWithDefaultsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OperationWithDefaults"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("OperationWithDefaults").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(operationWithDefaultsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OperationWithDefaultsRequestMarshaller(protocolFactory))); + .withOperationName("OperationWithDefaults").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(operationWithDefaultsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OperationWithDefaultsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -513,48 +515,48 @@ public OperationWithDefaultsResponse operationWithDefaults(OperationWithDefaults */ @Override public OptionalInputOutputResponse optionalInputOutput(OptionalInputOutputRequest optionalInputOutputRequest) - throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OptionalInputOutputResponse::builder); + operationMetadata, OptionalInputOutputResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(optionalInputOutputRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, optionalInputOutputRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "OptionalInputOutput"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("OptionalInputOutput").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(optionalInputOutputRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OptionalInputOutputRequestMarshaller(protocolFactory))); + .withOperationName("OptionalInputOutput").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(optionalInputOutputRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OptionalInputOutputRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -578,48 +580,48 @@ public OptionalInputOutputResponse optionalInputOutput(OptionalInputOutputReques */ @Override public RecursiveShapesResponse recursiveShapes(RecursiveShapesRequest recursiveShapesRequest) throws AwsServiceException, - SdkClientException, SmithyRpcV2ProtocolException { + SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - RecursiveShapesResponse::builder); + RecursiveShapesResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(recursiveShapesRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, recursiveShapesRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RecursiveShapes"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("RecursiveShapes").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(recursiveShapesRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new RecursiveShapesRequestMarshaller(protocolFactory))); + .withOperationName("RecursiveShapes").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(recursiveShapesRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new RecursiveShapesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -644,48 +646,48 @@ public RecursiveShapesResponse recursiveShapes(RecursiveShapesRequest recursiveS */ @Override public RpcV2CborDenseMapsResponse rpcV2CborDenseMaps(RpcV2CborDenseMapsRequest rpcV2CborDenseMapsRequest) - throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RpcV2CborDenseMapsResponse::builder); + operationMetadata, RpcV2CborDenseMapsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborDenseMapsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborDenseMapsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborDenseMaps"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("RpcV2CborDenseMaps").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborDenseMapsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new RpcV2CborDenseMapsRequestMarshaller(protocolFactory))); + .withOperationName("RpcV2CborDenseMaps").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborDenseMapsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new RpcV2CborDenseMapsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -710,47 +712,47 @@ public RpcV2CborDenseMapsResponse rpcV2CborDenseMaps(RpcV2CborDenseMapsRequest r */ @Override public RpcV2CborListsResponse rpcV2CborLists(RpcV2CborListsRequest rpcV2CborListsRequest) throws ValidationException, - AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - RpcV2CborListsResponse::builder); + RpcV2CborListsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborListsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborListsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborLists"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("RpcV2CborLists").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborListsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new RpcV2CborListsRequestMarshaller(protocolFactory))); + .withOperationName("RpcV2CborLists").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborListsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new RpcV2CborListsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -775,48 +777,48 @@ public RpcV2CborListsResponse rpcV2CborLists(RpcV2CborListsRequest rpcV2CborList */ @Override public RpcV2CborSparseMapsResponse rpcV2CborSparseMaps(RpcV2CborSparseMapsRequest rpcV2CborSparseMapsRequest) - throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws ValidationException, AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, RpcV2CborSparseMapsResponse::builder); + operationMetadata, RpcV2CborSparseMapsResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(rpcV2CborSparseMapsRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, rpcV2CborSparseMapsRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RpcV2CborSparseMaps"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("RpcV2CborSparseMaps").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborSparseMapsRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new RpcV2CborSparseMapsRequestMarshaller(protocolFactory))); + .withOperationName("RpcV2CborSparseMaps").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(rpcV2CborSparseMapsRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new RpcV2CborSparseMapsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -840,49 +842,49 @@ public RpcV2CborSparseMapsResponse rpcV2CborSparseMaps(RpcV2CborSparseMapsReques */ @Override public SimpleScalarPropertiesResponse simpleScalarProperties(SimpleScalarPropertiesRequest simpleScalarPropertiesRequest) - throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, SimpleScalarPropertiesResponse::builder); + operationMetadata, SimpleScalarPropertiesResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(simpleScalarPropertiesRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, simpleScalarPropertiesRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SimpleScalarProperties"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("SimpleScalarProperties").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(simpleScalarPropertiesRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new SimpleScalarPropertiesRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("SimpleScalarProperties").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(simpleScalarPropertiesRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new SimpleScalarPropertiesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -906,48 +908,48 @@ public SimpleScalarPropertiesResponse simpleScalarProperties(SimpleScalarPropert */ @Override public SparseNullsOperationResponse sparseNullsOperation(SparseNullsOperationRequest sparseNullsOperationRequest) - throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { + throws AwsServiceException, SdkClientException, SmithyRpcV2ProtocolException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, SparseNullsOperationResponse::builder); + operationMetadata, SparseNullsOperationResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "ValidationException": - return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") - .exceptionBuilderSupplier(ValidationException::builder).build()); - case "InvalidGreeting": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") - .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); - case "ComplexError": - return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") - .exceptionBuilderSupplier(ComplexErrorException::builder).build()); - default: - return Optional.empty(); + case "ValidationException": + return Optional.of(ExceptionMetadata.builder().errorCode("ValidationException") + .exceptionBuilderSupplier(ValidationException::builder).build()); + case "InvalidGreeting": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidGreeting") + .exceptionBuilderSupplier(InvalidGreetingException::builder).build()); + case "ComplexError": + return Optional.of(ExceptionMetadata.builder().errorCode("ComplexError") + .exceptionBuilderSupplier(ComplexErrorException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(sparseNullsOperationRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, sparseNullsOperationRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SmithyRpcV2Protocol"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SparseNullsOperation"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("SparseNullsOperation").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(sparseNullsOperationRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new SparseNullsOperationRequestMarshaller(protocolFactory))); + .withOperationName("SparseNullsOperation").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(sparseNullsOperationRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new SparseNullsOperationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -959,7 +961,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -974,7 +976,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -1008,7 +1010,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } SmithyRpcV2ProtocolServiceClientConfigurationBuilder serviceConfigBuilder = new SmithyRpcV2ProtocolServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -1018,8 +1020,8 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration) - .defaultServiceExceptionSupplier(SmithyRpcV2ProtocolException::builder) - .protocol(AwsJsonProtocol.SMITHY_RPC_V2_CBOR).protocolVersion("1.1"); + .defaultServiceExceptionSupplier(SmithyRpcV2ProtocolException::builder) + .protocol(AwsJsonProtocol.SMITHY_RPC_V2_CBOR).protocolVersion("1.1"); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-async-client-class.java index 81f2c6ffd395..7a1c65058c5a 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-async-client-class.java @@ -43,6 +43,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.database.internal.DatabaseServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.database.internal.ServiceVersionInfo; import software.amazon.awssdk.services.database.model.DatabaseException; import software.amazon.awssdk.services.database.model.DatabaseRequest; import software.amazon.awssdk.services.database.model.DeleteRowRequest; @@ -92,7 +93,7 @@ final class DefaultDatabaseAsyncClient implements DatabaseAsyncClient { private static final Logger log = LoggerFactory.getLogger(DefaultDatabaseAsyncClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final AsyncClientHandler clientHandler; @@ -102,7 +103,8 @@ final class DefaultDatabaseAsyncClient implements DatabaseAsyncClient { protected DefaultDatabaseAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Database_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -134,38 +136,38 @@ protected DefaultDatabaseAsyncClient(SdkClientConfiguration clientConfiguration) public CompletableFuture deleteRow(DeleteRowRequest deleteRowRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteRow"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - DeleteRowResponse::builder); + DeleteRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams().withOperationName("DeleteRow") - .withProtocolMetadata(protocolMetadata) - .withMarshaller(new DeleteRowRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) - .withMetricCollector(apiCallMetricCollector).withInput(deleteRowRequest)); + .execute(new ClientExecutionParams().withOperationName("DeleteRow") + .withProtocolMetadata(protocolMetadata) + .withMarshaller(new DeleteRowRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) + .withMetricCollector(apiCallMetricCollector).withInput(deleteRowRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -205,38 +207,38 @@ public CompletableFuture deleteRow(DeleteRowRequest deleteRow public CompletableFuture getRow(GetRowRequest getRowRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetRow"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - GetRowResponse::builder); + GetRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams().withOperationName("GetRow") - .withProtocolMetadata(protocolMetadata).withMarshaller(new GetRowRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(getRowRequest)); + .execute(new ClientExecutionParams().withOperationName("GetRow") + .withProtocolMetadata(protocolMetadata).withMarshaller(new GetRowRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(getRowRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -276,43 +278,43 @@ public CompletableFuture getRow(GetRowRequest getRowRequest) { */ @Override public CompletableFuture opWithSigv4AndSigv4aUnSignedPayload( - OpWithSigv4AndSigv4AUnSignedPayloadRequest opWithSigv4AndSigv4AUnSignedPayloadRequest) { + OpWithSigv4AndSigv4AUnSignedPayloadRequest opWithSigv4AndSigv4AUnSignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4AndSigv4AUnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opWithSigv4AndSigv4AUnSignedPayloadRequest.overrideConfiguration().orElse(null)); + opWithSigv4AndSigv4AUnSignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4AndSigv4aUnSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, OpWithSigv4AndSigv4AUnSignedPayloadResponse::builder); + .createResponseHandler(operationMetadata, OpWithSigv4AndSigv4AUnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4AndSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpWithSigv4AndSigv4AUnSignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opWithSigv4AndSigv4AUnSignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4AndSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpWithSigv4AndSigv4AUnSignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opWithSigv4AndSigv4AUnSignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -350,43 +352,43 @@ public CompletableFuture opWithSigv */ @Override public CompletableFuture opWithSigv4SignedPayload( - OpWithSigv4SignedPayloadRequest opWithSigv4SignedPayloadRequest) { + OpWithSigv4SignedPayloadRequest opWithSigv4SignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4SignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4SignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4SignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4SignedPayloadResponse::builder); + operationMetadata, OpWithSigv4SignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4SignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpWithSigv4SignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opWithSigv4SignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4SignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpWithSigv4SignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opWithSigv4SignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -424,43 +426,43 @@ public CompletableFuture opWithSigv4SignedPayl */ @Override public CompletableFuture opWithSigv4UnSignedPayload( - OpWithSigv4UnSignedPayloadRequest opWithSigv4UnSignedPayloadRequest) { + OpWithSigv4UnSignedPayloadRequest opWithSigv4UnSignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4UnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4UnSignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4UnSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4UnSignedPayloadResponse::builder); + operationMetadata, OpWithSigv4UnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4UnSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpWithSigv4UnSignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opWithSigv4UnSignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4UnSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpWithSigv4UnSignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opWithSigv4UnSignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -505,58 +507,58 @@ public CompletableFuture opWithSigv4UnSigned */ @Override public CompletableFuture opWithSigv4UnSignedPayloadAndStreaming( - OpWithSigv4UnSignedPayloadAndStreamingRequest opWithSigv4UnSignedPayloadAndStreamingRequest, - AsyncRequestBody requestBody) { + OpWithSigv4UnSignedPayloadAndStreamingRequest opWithSigv4UnSignedPayloadAndStreamingRequest, + AsyncRequestBody requestBody) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4UnSignedPayloadAndStreamingRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opWithSigv4UnSignedPayloadAndStreamingRequest.overrideConfiguration().orElse(null)); + opWithSigv4UnSignedPayloadAndStreamingRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4UnSignedPayloadAndStreaming"); if (!isSignerOverridden(clientConfiguration)) { opWithSigv4UnSignedPayloadAndStreamingRequest = applySignerOverride( - opWithSigv4UnSignedPayloadAndStreamingRequest, AsyncAws4Signer.create()); + opWithSigv4UnSignedPayloadAndStreamingRequest, AsyncAws4Signer.create()); } JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, OpWithSigv4UnSignedPayloadAndStreamingResponse::builder); + .createResponseHandler(operationMetadata, OpWithSigv4UnSignedPayloadAndStreamingResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4UnSignedPayloadAndStreaming") - .withProtocolMetadata(protocolMetadata) - .withMarshaller( - AsyncStreamingRequestMarshaller - .builder() - .delegateMarshaller( - new OpWithSigv4UnSignedPayloadAndStreamingRequestMarshaller(protocolFactory)) - .asyncRequestBody(requestBody).transferEncoding(true).build()) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withAsyncRequestBody(requestBody).withInput(opWithSigv4UnSignedPayloadAndStreamingRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4UnSignedPayloadAndStreaming") + .withProtocolMetadata(protocolMetadata) + .withMarshaller( + AsyncStreamingRequestMarshaller + .builder() + .delegateMarshaller( + new OpWithSigv4UnSignedPayloadAndStreamingRequestMarshaller(protocolFactory)) + .asyncRequestBody(requestBody).transferEncoding(true).build()) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withAsyncRequestBody(requestBody).withInput(opWithSigv4UnSignedPayloadAndStreamingRequest)); CompletableFuture whenCompleted = executeFuture - .whenComplete((r, e) -> { - metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); - }); + .whenComplete((r, e) -> { + metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); + }); executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture); return executeFuture; } catch (Throwable t) { @@ -591,43 +593,43 @@ public CompletableFuture opWithS */ @Override public CompletableFuture opWithSigv4aSignedPayload( - OpWithSigv4ASignedPayloadRequest opWithSigv4ASignedPayloadRequest) { + OpWithSigv4ASignedPayloadRequest opWithSigv4ASignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4ASignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4ASignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4aSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4ASignedPayloadResponse::builder); + operationMetadata, OpWithSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpWithSigv4ASignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opWithSigv4ASignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpWithSigv4ASignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opWithSigv4ASignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -665,43 +667,43 @@ public CompletableFuture opWithSigv4aSignedPa */ @Override public CompletableFuture opWithSigv4aUnSignedPayload( - OpWithSigv4AUnSignedPayloadRequest opWithSigv4AUnSignedPayloadRequest) { + OpWithSigv4AUnSignedPayloadRequest opWithSigv4AUnSignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4AUnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4AUnSignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4aUnSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4AUnSignedPayloadResponse::builder); + operationMetadata, OpWithSigv4AUnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpWithSigv4AUnSignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opWithSigv4AUnSignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpWithSigv4AUnSignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opWithSigv4AUnSignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -741,43 +743,43 @@ public CompletableFuture opWithSigv4aUnSign */ @Override public CompletableFuture opsWithSigv4andSigv4aSignedPayload( - OpsWithSigv4AndSigv4ASignedPayloadRequest opsWithSigv4AndSigv4ASignedPayloadRequest) { + OpsWithSigv4AndSigv4ASignedPayloadRequest opsWithSigv4AndSigv4ASignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opsWithSigv4AndSigv4ASignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); + opsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opsWithSigv4andSigv4aSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, OpsWithSigv4AndSigv4ASignedPayloadResponse::builder); + .createResponseHandler(operationMetadata, OpsWithSigv4AndSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new OpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(opsWithSigv4AndSigv4ASignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("opsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new OpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(opsWithSigv4AndSigv4ASignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -817,38 +819,38 @@ public CompletableFuture opsWithSigv public CompletableFuture putRow(PutRowRequest putRowRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutRow"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - PutRowResponse::builder); + PutRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams().withOperationName("PutRow") - .withProtocolMetadata(protocolMetadata).withMarshaller(new PutRowRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(putRowRequest)); + .execute(new ClientExecutionParams().withOperationName("PutRow") + .withProtocolMetadata(protocolMetadata).withMarshaller(new PutRowRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(putRowRequest)); CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); @@ -888,47 +890,47 @@ public CompletableFuture putRow(PutRowRequest putRowRequest) { */ @Override public CompletableFuture secondOpsWithSigv4andSigv4aSignedPayload( - SecondOpsWithSigv4AndSigv4ASignedPayloadRequest secondOpsWithSigv4AndSigv4ASignedPayloadRequest) { + SecondOpsWithSigv4AndSigv4ASignedPayloadRequest secondOpsWithSigv4AndSigv4ASignedPayloadRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration( - secondOpsWithSigv4AndSigv4ASignedPayloadRequest, this.clientConfiguration); + secondOpsWithSigv4AndSigv4ASignedPayloadRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - secondOpsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); + secondOpsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "secondOpsWithSigv4andSigv4aSignedPayload"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, SecondOpsWithSigv4AndSigv4ASignedPayloadResponse::builder); + .createResponseHandler(operationMetadata, SecondOpsWithSigv4AndSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); CompletableFuture executeFuture = clientHandler - .execute(new ClientExecutionParams() - .withOperationName("secondOpsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withMarshaller(new SecondOpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory)) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) - .withInput(secondOpsWithSigv4AndSigv4ASignedPayloadRequest)); + .execute(new ClientExecutionParams() + .withOperationName("secondOpsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withMarshaller(new SecondOpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory)) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) + .withInput(secondOpsWithSigv4AndSigv4ASignedPayloadRequest)); CompletableFuture whenCompleted = executeFuture - .whenComplete((r, e) -> { - metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); - }); + .whenComplete((r, e) -> { + metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); + }); executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture); return executeFuture; } catch (Throwable t) { @@ -949,11 +951,11 @@ public final String serviceName() { private > T init(T builder) { return builder.clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(DatabaseException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -973,8 +975,8 @@ private T applySignerOverride(T request, Signer sign } Consumer signerOverride = b -> b.signer(signer).build(); AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration() - .map(c -> c.toBuilder().applyMutation(signerOverride).build()) - .orElse((AwsRequestOverrideConfiguration.builder().applyMutation(signerOverride).build())); + .map(c -> c.toBuilder().applyMutation(signerOverride).build()) + .orElse((AwsRequestOverrideConfiguration.builder().applyMutation(signerOverride).build())); return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build(); } @@ -1012,7 +1014,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } DatabaseServiceClientConfigurationBuilder serviceConfigBuilder = new DatabaseServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -1021,7 +1023,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-sync-client-class.java index 656846b6a453..0f1feebb9f4e 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-sync-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-unsigned-payload-trait-sync-client-class.java @@ -36,6 +36,7 @@ import software.amazon.awssdk.protocols.json.JsonOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.database.internal.DatabaseServiceClientConfigurationBuilder; +import software.amazon.awssdk.services.database.internal.ServiceVersionInfo; import software.amazon.awssdk.services.database.model.DatabaseException; import software.amazon.awssdk.services.database.model.DeleteRowRequest; import software.amazon.awssdk.services.database.model.DeleteRowResponse; @@ -84,7 +85,7 @@ final class DefaultDatabaseClient implements DatabaseClient { private static final Logger log = Logger.loggerFor(DefaultDatabaseClient.class); private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder() - .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); + .serviceProtocol(AwsServiceProtocol.REST_JSON).build(); private final SyncClientHandler clientHandler; @@ -94,7 +95,8 @@ final class DefaultDatabaseClient implements DatabaseClient { protected DefaultDatabaseClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Database_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -120,40 +122,40 @@ protected DefaultDatabaseClient(SdkClientConfiguration clientConfiguration) { */ @Override public DeleteRowResponse deleteRow(DeleteRowRequest deleteRowRequest) throws InvalidInputException, AwsServiceException, - SdkClientException, DatabaseException { + SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - DeleteRowResponse::builder); + DeleteRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteRow"); return clientHandler.execute(new ClientExecutionParams() - .withOperationName("DeleteRow").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) - .withInput(deleteRowRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new DeleteRowRequestMarshaller(protocolFactory))); + .withOperationName("DeleteRow").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) + .withInput(deleteRowRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new DeleteRowRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -181,40 +183,40 @@ public DeleteRowResponse deleteRow(DeleteRowRequest deleteRowRequest) throws Inv */ @Override public GetRowResponse getRow(GetRowRequest getRowRequest) throws InvalidInputException, AwsServiceException, - SdkClientException, DatabaseException { + SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - GetRowResponse::builder); + GetRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetRow"); return clientHandler.execute(new ClientExecutionParams().withOperationName("GetRow") - .withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) - .withInput(getRowRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new GetRowRequestMarshaller(protocolFactory))); + .withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) + .withInput(getRowRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new GetRowRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -242,40 +244,40 @@ public GetRowResponse getRow(GetRowRequest getRowRequest) throws InvalidInputExc */ @Override public PutRowResponse putRow(PutRowRequest putRowRequest) throws InvalidInputException, AwsServiceException, - SdkClientException, DatabaseException { + SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, - PutRowResponse::builder); + PutRowResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putRowRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putRowRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutRow"); return clientHandler.execute(new ClientExecutionParams().withOperationName("PutRow") - .withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) - .withInput(putRowRequest).withMetricCollector(apiCallMetricCollector) - .withMarshaller(new PutRowRequestMarshaller(protocolFactory))); + .withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) + .withInput(putRowRequest).withMetricCollector(apiCallMetricCollector) + .withMarshaller(new PutRowRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -304,44 +306,44 @@ public PutRowResponse putRow(PutRowRequest putRowRequest) throws InvalidInputExc */ @Override public OpWithSigv4AndSigv4AUnSignedPayloadResponse opWithSigv4AndSigv4aUnSignedPayload( - OpWithSigv4AndSigv4AUnSignedPayloadRequest opWithSigv4AndSigv4AUnSignedPayloadRequest) throws InvalidInputException, - AwsServiceException, SdkClientException, DatabaseException { + OpWithSigv4AndSigv4AUnSignedPayloadRequest opWithSigv4AndSigv4AUnSignedPayloadRequest) throws InvalidInputException, + AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4AndSigv4AUnSignedPayloadResponse::builder); + operationMetadata, OpWithSigv4AndSigv4AUnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4AndSigv4AUnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opWithSigv4AndSigv4AUnSignedPayloadRequest.overrideConfiguration().orElse(null)); + opWithSigv4AndSigv4AUnSignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4AndSigv4aUnSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4AndSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4AndSigv4AUnSignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpWithSigv4AndSigv4AUnSignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4AndSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4AndSigv4AUnSignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpWithSigv4AndSigv4AUnSignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -369,44 +371,44 @@ public OpWithSigv4AndSigv4AUnSignedPayloadResponse opWithSigv4AndSigv4aUnSignedP */ @Override public OpWithSigv4SignedPayloadResponse opWithSigv4SignedPayload( - OpWithSigv4SignedPayloadRequest opWithSigv4SignedPayloadRequest) throws InvalidInputException, AwsServiceException, - SdkClientException, DatabaseException { + OpWithSigv4SignedPayloadRequest opWithSigv4SignedPayloadRequest) throws InvalidInputException, AwsServiceException, + SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4SignedPayloadResponse::builder); + operationMetadata, OpWithSigv4SignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4SignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4SignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4SignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4SignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4SignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpWithSigv4SignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4SignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4SignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpWithSigv4SignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -434,44 +436,44 @@ public OpWithSigv4SignedPayloadResponse opWithSigv4SignedPayload( */ @Override public OpWithSigv4UnSignedPayloadResponse opWithSigv4UnSignedPayload( - OpWithSigv4UnSignedPayloadRequest opWithSigv4UnSignedPayloadRequest) throws InvalidInputException, - AwsServiceException, SdkClientException, DatabaseException { + OpWithSigv4UnSignedPayloadRequest opWithSigv4UnSignedPayloadRequest) throws InvalidInputException, + AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4UnSignedPayloadResponse::builder); + operationMetadata, OpWithSigv4UnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4UnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4UnSignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4UnSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4UnSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4UnSignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpWithSigv4UnSignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4UnSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4UnSignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpWithSigv4UnSignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -511,53 +513,53 @@ public OpWithSigv4UnSignedPayloadResponse opWithSigv4UnSignedPayload( */ @Override public OpWithSigv4UnSignedPayloadAndStreamingResponse opWithSigv4UnSignedPayloadAndStreaming( - OpWithSigv4UnSignedPayloadAndStreamingRequest opWithSigv4UnSignedPayloadAndStreamingRequest, RequestBody requestBody) - throws InvalidInputException, AwsServiceException, SdkClientException, DatabaseException { + OpWithSigv4UnSignedPayloadAndStreamingRequest opWithSigv4UnSignedPayloadAndStreamingRequest, RequestBody requestBody) + throws InvalidInputException, AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, OpWithSigv4UnSignedPayloadAndStreamingResponse::builder); + .createResponseHandler(operationMetadata, OpWithSigv4UnSignedPayloadAndStreamingResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4UnSignedPayloadAndStreamingRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opWithSigv4UnSignedPayloadAndStreamingRequest.overrideConfiguration().orElse(null)); + opWithSigv4UnSignedPayloadAndStreamingRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4UnSignedPayloadAndStreaming"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4UnSignedPayloadAndStreaming") - .withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler) - .withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration) - .withInput(opWithSigv4UnSignedPayloadAndStreamingRequest) - .withMetricCollector(apiCallMetricCollector) - .withRequestBody(requestBody) - .withMarshaller( - StreamingRequestMarshaller - .builder() - .delegateMarshaller( - new OpWithSigv4UnSignedPayloadAndStreamingRequestMarshaller(protocolFactory)) - .requestBody(requestBody).transferEncoding(true).build())); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4UnSignedPayloadAndStreaming") + .withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler) + .withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration) + .withInput(opWithSigv4UnSignedPayloadAndStreamingRequest) + .withMetricCollector(apiCallMetricCollector) + .withRequestBody(requestBody) + .withMarshaller( + StreamingRequestMarshaller + .builder() + .delegateMarshaller( + new OpWithSigv4UnSignedPayloadAndStreamingRequestMarshaller(protocolFactory)) + .requestBody(requestBody).transferEncoding(true).build())); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -585,44 +587,44 @@ public OpWithSigv4UnSignedPayloadAndStreamingResponse opWithSigv4UnSignedPayload */ @Override public OpWithSigv4ASignedPayloadResponse opWithSigv4aSignedPayload( - OpWithSigv4ASignedPayloadRequest opWithSigv4ASignedPayloadRequest) throws InvalidInputException, AwsServiceException, - SdkClientException, DatabaseException { + OpWithSigv4ASignedPayloadRequest opWithSigv4ASignedPayloadRequest) throws InvalidInputException, AwsServiceException, + SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4ASignedPayloadResponse::builder); + operationMetadata, OpWithSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4ASignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4ASignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4aSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4ASignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpWithSigv4ASignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4ASignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpWithSigv4ASignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -650,44 +652,44 @@ public OpWithSigv4ASignedPayloadResponse opWithSigv4aSignedPayload( */ @Override public OpWithSigv4AUnSignedPayloadResponse opWithSigv4aUnSignedPayload( - OpWithSigv4AUnSignedPayloadRequest opWithSigv4AUnSignedPayloadRequest) throws InvalidInputException, - AwsServiceException, SdkClientException, DatabaseException { + OpWithSigv4AUnSignedPayloadRequest opWithSigv4AUnSignedPayloadRequest) throws InvalidInputException, + AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpWithSigv4AUnSignedPayloadResponse::builder); + operationMetadata, OpWithSigv4AUnSignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opWithSigv4AUnSignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, opWithSigv4AUnSignedPayloadRequest - .overrideConfiguration().orElse(null)); + .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opWithSigv4aUnSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opWithSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4AUnSignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpWithSigv4AUnSignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opWithSigv4aUnSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opWithSigv4AUnSignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpWithSigv4AUnSignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -716,44 +718,44 @@ public OpWithSigv4AUnSignedPayloadResponse opWithSigv4aUnSignedPayload( */ @Override public OpsWithSigv4AndSigv4ASignedPayloadResponse opsWithSigv4andSigv4aSignedPayload( - OpsWithSigv4AndSigv4ASignedPayloadRequest opsWithSigv4AndSigv4ASignedPayloadRequest) throws InvalidInputException, - AwsServiceException, SdkClientException, DatabaseException { + OpsWithSigv4AndSigv4ASignedPayloadRequest opsWithSigv4AndSigv4ASignedPayloadRequest) throws InvalidInputException, + AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( - operationMetadata, OpsWithSigv4AndSigv4ASignedPayloadResponse::builder); + operationMetadata, OpsWithSigv4AndSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(opsWithSigv4AndSigv4ASignedPayloadRequest, - this.clientConfiguration); + this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - opsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); + opsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "opsWithSigv4andSigv4aSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("opsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration).withInput(opsWithSigv4AndSigv4ASignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new OpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("opsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration).withInput(opsWithSigv4AndSigv4ASignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new OpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -782,45 +784,45 @@ public OpsWithSigv4AndSigv4ASignedPayloadResponse opsWithSigv4andSigv4aSignedPay */ @Override public SecondOpsWithSigv4AndSigv4ASignedPayloadResponse secondOpsWithSigv4andSigv4aSignedPayload( - SecondOpsWithSigv4AndSigv4ASignedPayloadRequest secondOpsWithSigv4AndSigv4ASignedPayloadRequest) - throws InvalidInputException, AwsServiceException, SdkClientException, DatabaseException { + SecondOpsWithSigv4AndSigv4ASignedPayloadRequest secondOpsWithSigv4AndSigv4ASignedPayloadRequest) + throws InvalidInputException, AwsServiceException, SdkClientException, DatabaseException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) - .isPayloadJson(true).build(); + .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory - .createResponseHandler(operationMetadata, SecondOpsWithSigv4AndSigv4ASignedPayloadResponse::builder); + .createResponseHandler(operationMetadata, SecondOpsWithSigv4AndSigv4ASignedPayloadResponse::builder); Function> exceptionMetadataMapper = errorCode -> { if (errorCode == null) { return Optional.empty(); } switch (errorCode) { - case "InvalidInput": - return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) - .exceptionBuilderSupplier(InvalidInputException::builder).build()); - default: - return Optional.empty(); + case "InvalidInput": + return Optional.of(ExceptionMetadata.builder().errorCode("InvalidInput").httpStatusCode(400) + .exceptionBuilderSupplier(InvalidInputException::builder).build()); + default: + return Optional.empty(); } }; HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, - operationMetadata, exceptionMetadataMapper); + operationMetadata, exceptionMetadataMapper); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration( - secondOpsWithSigv4AndSigv4ASignedPayloadRequest, this.clientConfiguration); + secondOpsWithSigv4AndSigv4ASignedPayloadRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, - secondOpsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); + secondOpsWithSigv4AndSigv4ASignedPayloadRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector - .create("ApiCall"); + .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Database Service"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "secondOpsWithSigv4andSigv4aSignedPayload"); return clientHandler - .execute(new ClientExecutionParams() - .withOperationName("secondOpsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) - .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) - .withRequestConfiguration(clientConfiguration) - .withInput(secondOpsWithSigv4AndSigv4ASignedPayloadRequest) - .withMetricCollector(apiCallMetricCollector) - .withMarshaller(new SecondOpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory))); + .execute(new ClientExecutionParams() + .withOperationName("secondOpsWithSigv4andSigv4aSignedPayload").withProtocolMetadata(protocolMetadata) + .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) + .withRequestConfiguration(clientConfiguration) + .withInput(secondOpsWithSigv4AndSigv4ASignedPayloadRequest) + .withMetricCollector(apiCallMetricCollector) + .withMarshaller(new SecondOpsWithSigv4AndSigv4ASignedPayloadRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } @@ -832,7 +834,7 @@ public final String serviceName() { } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, - RequestOverrideConfiguration requestOverrideConfiguration) { + RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); @@ -847,7 +849,7 @@ private static List resolveMetricPublishers(SdkClientConfigurat } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, - JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { + JsonOperationMetadata operationMetadata, Function> exceptionMetadataMapper) { return protocolFactory.createErrorResponseHandler(operationMetadata, exceptionMetadataMapper); } @@ -881,7 +883,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, return configuration.build(); } DatabaseServiceClientConfigurationBuilder serviceConfigBuilder = new DatabaseServiceClientConfigurationBuilder( - configuration); + configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } @@ -891,7 +893,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, private > T init(T builder) { return builder.clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(DatabaseException::builder) - .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); + .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1"); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java index 5815d387f2fe..b6c21b785a46 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java @@ -54,6 +54,7 @@ import software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory; import software.amazon.awssdk.protocols.xml.XmlOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.xml.internal.ServiceVersionInfo; import software.amazon.awssdk.services.xml.internal.XmlServiceClientConfigurationBuilder; import software.amazon.awssdk.services.xml.model.APostOperationRequest; import software.amazon.awssdk.services.xml.model.APostOperationResponse; @@ -119,7 +120,8 @@ final class DefaultXmlAsyncClient implements XmlAsyncClient { protected DefaultXmlAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Xml_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java index bb35c8751301..b5cb1ff332d5 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java @@ -42,6 +42,7 @@ import software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory; import software.amazon.awssdk.protocols.xml.XmlOperationMetadata; import software.amazon.awssdk.retries.api.RetryStrategy; +import software.amazon.awssdk.services.xml.internal.ServiceVersionInfo; import software.amazon.awssdk.services.xml.internal.XmlServiceClientConfigurationBuilder; import software.amazon.awssdk.services.xml.model.APostOperationRequest; import software.amazon.awssdk.services.xml.model.APostOperationResponse; @@ -99,7 +100,8 @@ final class DefaultXmlClient implements XmlClient { protected DefaultXmlClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this) + .option(SdkClientOption.API_METADATA, "Xml_Service" + "#" + ServiceVersionInfo.VERSION).build(); this.protocolFactory = init(); } diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml index 01af329b07ae..73be6389470d 100644 --- a/core/annotations/pom.xml +++ b/core/annotations/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/arns/pom.xml b/core/arns/pom.xml index 4ac103e0c1e7..7a59d4d5a035 100644 --- a/core/arns/pom.xml +++ b/core/arns/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/auth-crt/pom.xml b/core/auth-crt/pom.xml index d8bb1db7aef0..373b9b51fb04 100644 --- a/core/auth-crt/pom.xml +++ b/core/auth-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT auth-crt diff --git a/core/auth/pom.xml b/core/auth/pom.xml index 480e239fb7cd..c2242f59e9e1 100644 --- a/core/auth/pom.xml +++ b/core/auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT auth diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml index 673fca20a7ec..ebf1f073fcf3 100644 --- a/core/aws-core/pom.xml +++ b/core/aws-core/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT aws-core diff --git a/core/checksums-spi/pom.xml b/core/checksums-spi/pom.xml index aa3dd6a36d7c..eace625d6d2c 100644 --- a/core/checksums-spi/pom.xml +++ b/core/checksums-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT checksums-spi diff --git a/core/checksums/pom.xml b/core/checksums/pom.xml index e6774e3743e2..70039fa12bef 100644 --- a/core/checksums/pom.xml +++ b/core/checksums/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT checksums diff --git a/core/crt-core/pom.xml b/core/crt-core/pom.xml index 6171305b184f..ca963dc141d3 100644 --- a/core/crt-core/pom.xml +++ b/core/crt-core/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT crt-core diff --git a/core/endpoints-spi/pom.xml b/core/endpoints-spi/pom.xml index fef49220106f..4f13ee5ef369 100644 --- a/core/endpoints-spi/pom.xml +++ b/core/endpoints-spi/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/http-auth-aws-crt/pom.xml b/core/http-auth-aws-crt/pom.xml index aa1a04995b01..fe69f58f0866 100644 --- a/core/http-auth-aws-crt/pom.xml +++ b/core/http-auth-aws-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-auth-aws-crt diff --git a/core/http-auth-aws-eventstream/pom.xml b/core/http-auth-aws-eventstream/pom.xml index 027f5cfeaa8c..ef39bbc4b083 100644 --- a/core/http-auth-aws-eventstream/pom.xml +++ b/core/http-auth-aws-eventstream/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-auth-aws-eventstream diff --git a/core/http-auth-aws/pom.xml b/core/http-auth-aws/pom.xml index 6b0d3e71a348..9ff1f9f3361a 100644 --- a/core/http-auth-aws/pom.xml +++ b/core/http-auth-aws/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-auth-aws diff --git a/core/http-auth-spi/pom.xml b/core/http-auth-spi/pom.xml index fda38d7403fd..c06eb454884b 100644 --- a/core/http-auth-spi/pom.xml +++ b/core/http-auth-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-auth-spi diff --git a/core/http-auth/pom.xml b/core/http-auth/pom.xml index 964c4c2aec6e..49e750e4a6f0 100644 --- a/core/http-auth/pom.xml +++ b/core/http-auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-auth diff --git a/core/identity-spi/pom.xml b/core/identity-spi/pom.xml index 50691f426da7..e7878b61f01f 100644 --- a/core/identity-spi/pom.xml +++ b/core/identity-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT identity-spi diff --git a/core/imds/pom.xml b/core/imds/pom.xml index d971dff149e8..a4e939a1eb63 100644 --- a/core/imds/pom.xml +++ b/core/imds/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 imds diff --git a/core/json-utils/pom.xml b/core/json-utils/pom.xml index c6cfe36b08eb..b14a3c2614b1 100644 --- a/core/json-utils/pom.xml +++ b/core/json-utils/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/metrics-spi/pom.xml b/core/metrics-spi/pom.xml index 83f919586bda..aac0fe42074b 100644 --- a/core/metrics-spi/pom.xml +++ b/core/metrics-spi/pom.xml @@ -5,7 +5,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 627de2e1408a..9008ee4b6e9e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT core diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml index 038408ac1e74..8cbaa2100f01 100644 --- a/core/profiles/pom.xml +++ b/core/profiles/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT profiles diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml index 085da1bd838f..f235a4b3ee47 100644 --- a/core/protocols/aws-cbor-protocol/pom.xml +++ b/core/protocols/aws-cbor-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-json-protocol/pom.xml b/core/protocols/aws-json-protocol/pom.xml index cd1629916146..00228d3ddd8a 100644 --- a/core/protocols/aws-json-protocol/pom.xml +++ b/core/protocols/aws-json-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-query-protocol/pom.xml b/core/protocols/aws-query-protocol/pom.xml index daa11d4083a0..9c7698ae662e 100644 --- a/core/protocols/aws-query-protocol/pom.xml +++ b/core/protocols/aws-query-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-xml-protocol/pom.xml b/core/protocols/aws-xml-protocol/pom.xml index 2b8fdd50aa75..f6bfe51b44e5 100644 --- a/core/protocols/aws-xml-protocol/pom.xml +++ b/core/protocols/aws-xml-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml index ef9e7025f5de..d57f6804f8bc 100644 --- a/core/protocols/pom.xml +++ b/core/protocols/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml index 56ca62747ede..77a46c8687e9 100644 --- a/core/protocols/protocol-core/pom.xml +++ b/core/protocols/protocol-core/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/protocols/smithy-rpcv2-protocol/pom.xml b/core/protocols/smithy-rpcv2-protocol/pom.xml index 8127aa18fac4..c1c7ba703f91 100644 --- a/core/protocols/smithy-rpcv2-protocol/pom.xml +++ b/core/protocols/smithy-rpcv2-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/regions/pom.xml b/core/regions/pom.xml index 473d0b445cfd..56609cb90d7d 100644 --- a/core/regions/pom.xml +++ b/core/regions/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT regions diff --git a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json index 3e6890fb0397..cff345581447 100644 --- a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json +++ b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json @@ -3160,6 +3160,7 @@ "tags" : [ "dualstack" ] } ] }, + "ap-east-2" : { }, "ap-northeast-1" : { "variants" : [ { "hostname" : "athena.ap-northeast-1.api.aws", @@ -5021,6 +5022,7 @@ "tags" : [ "dualstack" ] } ] }, + "eu-south-2" : { }, "eu-west-1" : { "variants" : [ { "hostname" : "cloudhsmv2.eu-west-1.api.aws", @@ -12843,14 +12845,20 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -12882,7 +12890,10 @@ "deprecated" : true, "hostname" : "inspector2-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, + "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -35339,6 +35350,12 @@ } } }, + "scheduler" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "schemas" : { "endpoints" : { "us-gov-east-1" : { }, diff --git a/core/retries-spi/pom.xml b/core/retries-spi/pom.xml index f88f7af150e2..bf5757827e1b 100644 --- a/core/retries-spi/pom.xml +++ b/core/retries-spi/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/retries/pom.xml b/core/retries/pom.xml index ac0b6652aa2c..8cff2e0a512d 100644 --- a/core/retries/pom.xml +++ b/core/retries/pom.xml @@ -21,7 +21,7 @@ core software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml index a030b6bbe50f..774a048de19e 100644 --- a/core/sdk-core/pom.xml +++ b/core/sdk-core/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk core - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sdk-core AWS Java SDK :: SDK Core diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java index 3edec111e45a..ad4e7bcbdec4 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java @@ -21,6 +21,7 @@ import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.USER_AGENT_PREFIX; import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.USER_AGENT_SUFFIX; import static software.amazon.awssdk.core.client.config.SdkClientOption.ADDITIONAL_HTTP_HEADERS; +import static software.amazon.awssdk.core.client.config.SdkClientOption.API_METADATA; import static software.amazon.awssdk.core.client.config.SdkClientOption.ASYNC_HTTP_CLIENT; import static software.amazon.awssdk.core.client.config.SdkClientOption.CLIENT_TYPE; import static software.amazon.awssdk.core.client.config.SdkClientOption.CLIENT_USER_AGENT; @@ -93,6 +94,7 @@ import software.amazon.awssdk.core.internal.useragent.AppIdResolver; import software.amazon.awssdk.core.internal.useragent.SdkClientUserAgentProperties; import software.amazon.awssdk.core.internal.useragent.SdkUserAgentBuilder; +import software.amazon.awssdk.core.internal.useragent.UserAgentConstant; import software.amazon.awssdk.core.retry.RetryMode; import software.amazon.awssdk.core.util.SystemUserAgent; import software.amazon.awssdk.http.ExecutableHttpRequest; @@ -402,6 +404,7 @@ private String resolveClientUserAgent(LazyValueSource config) { String appId = config.get(USER_AGENT_APP_ID); String resolvedAppId = appId == null ? resolveAppId(config) : appId; clientProperties.putProperty(APP_ID, resolvedAppId); + clientProperties.putProperty(UserAgentConstant.API_METADATA, config.get(API_METADATA)); return SdkUserAgentBuilder.buildClientUserAgentString(SystemUserAgent.getOrCreate(), clientProperties); } diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkClientOption.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkClientOption.java index 58def071bc64..e05753513ad4 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkClientOption.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkClientOption.java @@ -342,6 +342,11 @@ public final class SdkClientOption extends ClientOption { public static final SdkClientOption RESPONSE_CHECKSUM_VALIDATION = new SdkClientOption<>(ResponseChecksumValidation.class); + /** + * The API metadata for user agent (service-id#version). + */ + public static final SdkClientOption API_METADATA = new SdkClientOption<>(String.class); + /** * An optional identification value to be appended to the user agent header. The value should be less than 50 characters in * length and is null by default. diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilder.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilder.java index ecfa5a862a47..f85fd14a692b 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilder.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilder.java @@ -15,6 +15,7 @@ package software.amazon.awssdk.core.internal.useragent; +import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.API_METADATA; import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.APP_ID; import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.ENV_METADATA; import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.HTTP; @@ -65,6 +66,7 @@ public static String buildClientUserAgentString(SystemUserAgent systemValues, } appendNonEmptyField(uaString, UA_METADATA, UA_VERSION); + appendNonEmptyField(uaString, API_METADATA, userAgentProperties.getProperty(API_METADATA)); appendNonEmptyField(uaString, OS_METADATA, systemValues.osMetadata()); appendNonEmptyField(uaString, LANG_METADATA, systemValues.langMetadata()); appendAdditionalJvmMetadata(uaString, systemValues); diff --git a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilderTest.java b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilderTest.java index 62c13f9d9cfc..dbf5dbc95cfe 100644 --- a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilderTest.java +++ b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/useragent/SdkUserAgentBuilderTest.java @@ -20,6 +20,7 @@ import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.HTTP; import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.INTERNAL_METADATA_MARKER; import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.IO; +import static software.amazon.awssdk.core.internal.useragent.UserAgentConstant.API_METADATA; import java.util.Arrays; import java.util.Collections; @@ -50,8 +51,9 @@ private static Stream inputValues() { "OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS", "vendor#Amazon.com_Inc.", "en_US", Arrays.asList("Kotlin", "Scala")); - SdkClientUserAgentProperties minimalProperties = sdkProperties(null, null, null, null); - SdkClientUserAgentProperties maximalProperties = sdkProperties( "arbitrary", "async", "Netty", "someAppId"); + SdkClientUserAgentProperties minimalProperties = sdkProperties(null, null, null, null, null); + SdkClientUserAgentProperties maximalProperties = sdkProperties("arbitrary", "async", "Netty", "someAppId", "DynamoDB#2.26.22-SNAPSHOT"); + return Stream.of( Arguments.of("default sysagent, empty requestvalues", @@ -61,33 +63,37 @@ private static Stream inputValues() { Arguments.of("standard sysagent, request values - internalMarker", "aws-sdk-java/2.26.22-SNAPSHOT md/internal ua/2.1 os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala exec-env/lambda", - sdkProperties( "arbitrary", null, null, null), + sdkProperties( "arbitrary", null, null, null, null), maximalSysAgent), Arguments.of("standard sysagent, request values - io", "aws-sdk-java/2.26.22-SNAPSHOT md/io#async ua/2.1 os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala exec-env/lambda", - sdkProperties( null, "async", null, null), + sdkProperties( null, "async", null, null, null), maximalSysAgent), Arguments.of("standard sysagent, request values - http", "aws-sdk-java/2.26.22-SNAPSHOT md/http#Apache ua/2.1 os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala exec-env/lambda", - sdkProperties(null, null, "Apache", null), + sdkProperties(null, null, "Apache", null, null), maximalSysAgent), Arguments.of("standard sysagent, request values - authSource", "aws-sdk-java/2.26.22-SNAPSHOT ua/2.1 os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala " + "exec-env/lambda", - sdkProperties( null, null, null, null), + sdkProperties( null, null, null, null, null), maximalSysAgent), Arguments.of("standard sysagent, request values - appId", "aws-sdk-java/2.26.22-SNAPSHOT ua/2.1 os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala " + "exec-env/lambda app/someAppId", - sdkProperties( null, null, null, "someAppId"), + sdkProperties( null, null, null, "someAppId", null), maximalSysAgent), + Arguments.of("standard sysagent, request values - apiMetadata", + "aws-sdk-java/2.26.22-SNAPSHOT ua/2.1 api/DynamoDB#2.26.22-SNAPSHOT os/Mac_OS_X#14.6.1 lang/java#21.0.2 md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/en_US", + sdkProperties(null, null, null, null, "DynamoDB#2.26.22-SNAPSHOT"), + standardValuesSysAgent), Arguments.of("standard sysagent, request values - maximal", - "aws-sdk-java/2.26.22-SNAPSHOT md/io#async md/http#Netty md/internal ua/2.1 os/Mac_OS_X#14.6.1 " - + "lang/java#21.0.2 " + "aws-sdk-java/2.26.22-SNAPSHOT md/io#async md/http#Netty md/internal ua/2.1 api/DynamoDB#2.26.22-SNAPSHOT" + + " os/Mac_OS_X#14.6.1 lang/java#21.0.2 " + "md/OpenJDK_64-Bit_Server_VM#21.0.2+13-LTS md/vendor#Amazon.com_Inc. md/en_US md/Kotlin md/Scala " + "exec-env/lambda app/someAppId", maximalProperties, @@ -95,7 +101,8 @@ private static Stream inputValues() { ); } - private static SdkClientUserAgentProperties sdkProperties(String internalMarker, String io, String http, String appId) { + private static SdkClientUserAgentProperties sdkProperties(String internalMarker, String io, String http, String appId, + String apiMetadata) { SdkClientUserAgentProperties properties = new SdkClientUserAgentProperties(); if (internalMarker != null) { @@ -114,6 +121,10 @@ private static SdkClientUserAgentProperties sdkProperties(String internalMarker, properties.putProperty(APP_ID, appId); } + if (apiMetadata != null) { + properties.putProperty(API_METADATA, apiMetadata); + } + return properties; } diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml index bb704e5f1914..80e780e8d3f4 100644 --- a/http-client-spi/pom.xml +++ b/http-client-spi/pom.xml @@ -22,7 +22,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT http-client-spi AWS Java SDK :: HTTP Client Interface diff --git a/http-clients/apache-client/pom.xml b/http-clients/apache-client/pom.xml index e48913801d65..3cd584cc26ce 100644 --- a/http-clients/apache-client/pom.xml +++ b/http-clients/apache-client/pom.xml @@ -21,7 +21,7 @@ http-clients software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apache-client diff --git a/http-clients/aws-crt-client/pom.xml b/http-clients/aws-crt-client/pom.xml index f5354f307379..b38c99b516cf 100644 --- a/http-clients/aws-crt-client/pom.xml +++ b/http-clients/aws-crt-client/pom.xml @@ -21,7 +21,7 @@ http-clients software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/http-clients/netty-nio-client/pom.xml b/http-clients/netty-nio-client/pom.xml index 8eaaaceac7c9..ce662a18cc7d 100644 --- a/http-clients/netty-nio-client/pom.xml +++ b/http-clients/netty-nio-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/http-clients/pom.xml b/http-clients/pom.xml index 4c45ec101878..9ccf212922f5 100644 --- a/http-clients/pom.xml +++ b/http-clients/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/http-clients/url-connection-client/pom.xml b/http-clients/url-connection-client/pom.xml index 41d27816ac31..014715153126 100644 --- a/http-clients/url-connection-client/pom.xml +++ b/http-clients/url-connection-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/metric-publishers/cloudwatch-metric-publisher/pom.xml b/metric-publishers/cloudwatch-metric-publisher/pom.xml index 59a5d3ab645b..abe73cfe5c71 100644 --- a/metric-publishers/cloudwatch-metric-publisher/pom.xml +++ b/metric-publishers/cloudwatch-metric-publisher/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk metric-publishers - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudwatch-metric-publisher diff --git a/metric-publishers/emf-metric-logging-publisher/pom.xml b/metric-publishers/emf-metric-logging-publisher/pom.xml index e2ea850ac2c5..92fef00900ac 100644 --- a/metric-publishers/emf-metric-logging-publisher/pom.xml +++ b/metric-publishers/emf-metric-logging-publisher/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk metric-publishers - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT emf-metric-logging-publisher diff --git a/metric-publishers/pom.xml b/metric-publishers/pom.xml index ee5c32d26c6c..4951059afcf6 100644 --- a/metric-publishers/pom.xml +++ b/metric-publishers/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT metric-publishers diff --git a/pom.xml b/pom.xml index 6cca0a50a2f0..3a8d0083e9a6 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pom AWS Java SDK :: Parent The Amazon Web Services SDK for Java provides Java APIs @@ -101,8 +101,8 @@ ${project.version} - 2.31.73 - 2.31.72 + 2.31.75 + 2.31.74 2.15.2 2.15.2 2.17.3 diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml index b6b6032500f8..d548a741a67b 100644 --- a/release-scripts/pom.xml +++ b/release-scripts/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml release-scripts diff --git a/services-custom/dynamodb-enhanced/pom.xml b/services-custom/dynamodb-enhanced/pom.xml index 5fe7ca670fe7..55d7bd8e3f23 100644 --- a/services-custom/dynamodb-enhanced/pom.xml +++ b/services-custom/dynamodb-enhanced/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services-custom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dynamodb-enhanced AWS Java SDK :: DynamoDB :: Enhanced Client diff --git a/services-custom/iam-policy-builder/pom.xml b/services-custom/iam-policy-builder/pom.xml index 84902f757c64..6025b76ac208 100644 --- a/services-custom/iam-policy-builder/pom.xml +++ b/services-custom/iam-policy-builder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml iam-policy-builder diff --git a/services-custom/pom.xml b/services-custom/pom.xml index f433d2d5abbb..82eb5703491f 100644 --- a/services-custom/pom.xml +++ b/services-custom/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT services-custom AWS Java SDK :: Custom Services diff --git a/services-custom/s3-event-notifications/pom.xml b/services-custom/s3-event-notifications/pom.xml index 57ad8eec26ef..f6cdeb11c80a 100644 --- a/services-custom/s3-event-notifications/pom.xml +++ b/services-custom/s3-event-notifications/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml s3-event-notifications diff --git a/services-custom/s3-transfer-manager/pom.xml b/services-custom/s3-transfer-manager/pom.xml index 74e57cf99b49..298f44b9bb0f 100644 --- a/services-custom/s3-transfer-manager/pom.xml +++ b/services-custom/s3-transfer-manager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml s3-transfer-manager diff --git a/services/accessanalyzer/pom.xml b/services/accessanalyzer/pom.xml index 3894539281a3..9ec44c608073 100644 --- a/services/accessanalyzer/pom.xml +++ b/services/accessanalyzer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT accessanalyzer AWS Java SDK :: Services :: AccessAnalyzer diff --git a/services/account/pom.xml b/services/account/pom.xml index 1335dbf0f368..08bf7848437c 100644 --- a/services/account/pom.xml +++ b/services/account/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT account AWS Java SDK :: Services :: Account diff --git a/services/acm/pom.xml b/services/acm/pom.xml index 6ffcfca8467c..d64bff35e82b 100644 --- a/services/acm/pom.xml +++ b/services/acm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT acm AWS Java SDK :: Services :: AWS Certificate Manager diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml index 38ab31df20b2..2bdaccbc66e6 100644 --- a/services/acmpca/pom.xml +++ b/services/acmpca/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT acmpca AWS Java SDK :: Services :: ACM PCA diff --git a/services/aiops/pom.xml b/services/aiops/pom.xml index 1fe40b119d6e..e0200384988c 100644 --- a/services/aiops/pom.xml +++ b/services/aiops/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT aiops AWS Java SDK :: Services :: AI Ops diff --git a/services/amp/pom.xml b/services/amp/pom.xml index efc0b0ca5d18..2d8cf3251eb5 100644 --- a/services/amp/pom.xml +++ b/services/amp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT amp AWS Java SDK :: Services :: Amp diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml index 82fbcf56d048..3bb5137fa490 100644 --- a/services/amplify/pom.xml +++ b/services/amplify/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT amplify AWS Java SDK :: Services :: Amplify diff --git a/services/amplifybackend/pom.xml b/services/amplifybackend/pom.xml index e14373ff74ed..f0c788385ca5 100644 --- a/services/amplifybackend/pom.xml +++ b/services/amplifybackend/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT amplifybackend AWS Java SDK :: Services :: Amplify Backend diff --git a/services/amplifyuibuilder/pom.xml b/services/amplifyuibuilder/pom.xml index fb8baf1e8b71..71d9cb1857df 100644 --- a/services/amplifyuibuilder/pom.xml +++ b/services/amplifyuibuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT amplifyuibuilder AWS Java SDK :: Services :: Amplify UI Builder diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml index 0f7cb232b6f8..f2a5e481fe4c 100644 --- a/services/apigateway/pom.xml +++ b/services/apigateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apigateway AWS Java SDK :: Services :: Amazon API Gateway diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml index de70abd1ed3e..e979576c11ad 100644 --- a/services/apigatewaymanagementapi/pom.xml +++ b/services/apigatewaymanagementapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apigatewaymanagementapi AWS Java SDK :: Services :: ApiGatewayManagementApi diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml index d2461efc7d81..8c65ece3579e 100644 --- a/services/apigatewayv2/pom.xml +++ b/services/apigatewayv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apigatewayv2 AWS Java SDK :: Services :: ApiGatewayV2 diff --git a/services/appconfig/pom.xml b/services/appconfig/pom.xml index d298ed933a49..7243e36ba1bf 100644 --- a/services/appconfig/pom.xml +++ b/services/appconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appconfig AWS Java SDK :: Services :: AppConfig diff --git a/services/appconfigdata/pom.xml b/services/appconfigdata/pom.xml index b6cd37d95a93..b900f5ecde20 100644 --- a/services/appconfigdata/pom.xml +++ b/services/appconfigdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appconfigdata AWS Java SDK :: Services :: App Config Data diff --git a/services/appfabric/pom.xml b/services/appfabric/pom.xml index 8bd9baa3f5f9..319919539b89 100644 --- a/services/appfabric/pom.xml +++ b/services/appfabric/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appfabric AWS Java SDK :: Services :: App Fabric diff --git a/services/appflow/pom.xml b/services/appflow/pom.xml index 79ec107ece41..498cba75199d 100644 --- a/services/appflow/pom.xml +++ b/services/appflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appflow AWS Java SDK :: Services :: Appflow diff --git a/services/appintegrations/pom.xml b/services/appintegrations/pom.xml index 79298d62d49c..63a59964a74d 100644 --- a/services/appintegrations/pom.xml +++ b/services/appintegrations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appintegrations AWS Java SDK :: Services :: App Integrations diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml index b510f112b0ea..981c6a1548ce 100644 --- a/services/applicationautoscaling/pom.xml +++ b/services/applicationautoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT applicationautoscaling AWS Java SDK :: Services :: AWS Application Auto Scaling diff --git a/services/applicationcostprofiler/pom.xml b/services/applicationcostprofiler/pom.xml index b8b003211f0e..9a1b9e1b324d 100644 --- a/services/applicationcostprofiler/pom.xml +++ b/services/applicationcostprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT applicationcostprofiler AWS Java SDK :: Services :: Application Cost Profiler diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml index 5de0bf6ec4e2..f9d78734e54f 100644 --- a/services/applicationdiscovery/pom.xml +++ b/services/applicationdiscovery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT applicationdiscovery AWS Java SDK :: Services :: AWS Application Discovery Service diff --git a/services/applicationinsights/pom.xml b/services/applicationinsights/pom.xml index 4569bffb554a..ac8c0754cda7 100644 --- a/services/applicationinsights/pom.xml +++ b/services/applicationinsights/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT applicationinsights AWS Java SDK :: Services :: Application Insights diff --git a/services/applicationsignals/pom.xml b/services/applicationsignals/pom.xml index 9d7c54d3c5b0..c0bedeb97a3e 100644 --- a/services/applicationsignals/pom.xml +++ b/services/applicationsignals/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT applicationsignals AWS Java SDK :: Services :: Application Signals diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml index e1da39a97d21..78e6e09b4720 100644 --- a/services/appmesh/pom.xml +++ b/services/appmesh/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appmesh AWS Java SDK :: Services :: App Mesh diff --git a/services/apprunner/pom.xml b/services/apprunner/pom.xml index 903e8161cb55..5acc03a862c0 100644 --- a/services/apprunner/pom.xml +++ b/services/apprunner/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apprunner AWS Java SDK :: Services :: App Runner diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml index 8d6f89cbe71b..96469598bc68 100644 --- a/services/appstream/pom.xml +++ b/services/appstream/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appstream AWS Java SDK :: Services :: Amazon AppStream diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml index 8e8a6d00cd15..a8d65197c801 100644 --- a/services/appsync/pom.xml +++ b/services/appsync/pom.xml @@ -21,7 +21,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT appsync diff --git a/services/apptest/pom.xml b/services/apptest/pom.xml index b1da1a2c4e56..d4ddeb21cda4 100644 --- a/services/apptest/pom.xml +++ b/services/apptest/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT apptest AWS Java SDK :: Services :: App Test diff --git a/services/arczonalshift/pom.xml b/services/arczonalshift/pom.xml index a4be286df2c1..6873c078467e 100644 --- a/services/arczonalshift/pom.xml +++ b/services/arczonalshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT arczonalshift AWS Java SDK :: Services :: ARC Zonal Shift diff --git a/services/arczonalshift/src/main/resources/codegen-resources/service-2.json b/services/arczonalshift/src/main/resources/codegen-resources/service-2.json index cfc2ffa374c5..6156d1875361 100644 --- a/services/arczonalshift/src/main/resources/codegen-resources/service-2.json +++ b/services/arczonalshift/src/main/resources/codegen-resources/service-2.json @@ -2,18 +2,37 @@ "version":"2.0", "metadata":{ "apiVersion":"2022-10-30", + "auth":["aws.auth#sigv4"], "endpointPrefix":"arc-zonal-shift", - "jsonVersion":"1.1", "protocol":"rest-json", "protocols":["rest-json"], "serviceFullName":"AWS ARC - Zonal Shift", "serviceId":"ARC Zonal Shift", "signatureVersion":"v4", "signingName":"arc-zonal-shift", - "uid":"arc-zonal-shift-2022-10-30", - "auth":["aws.auth#sigv4"] + "uid":"arc-zonal-shift-2022-10-30" }, "operations":{ + "CancelPracticeRun":{ + "name":"CancelPracticeRun", + "http":{ + "method":"DELETE", + "requestUri":"/practiceruns/{zonalShiftId}", + "responseCode":200 + }, + "input":{"shape":"CancelPracticeRunRequest"}, + "output":{"shape":"CancelPracticeRunResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Cancel an in-progress practice run zonal shift in Amazon Application Recovery Controller.

", + "idempotent":true + }, "CancelZonalShift":{ "name":"CancelZonalShift", "http":{ @@ -28,10 +47,10 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Cancel a zonal shift in Amazon Route 53 Application Recovery Controller. To cancel the zonal shift, specify the zonal shift ID.

A zonal shift can be one that you've started for a resource in your Amazon Web Services account in an Amazon Web Services Region, or it can be a zonal shift started by a practice run with zonal autoshift.

" + "documentation":"

Cancel a zonal shift in Amazon Application Recovery Controller. To cancel the zonal shift, specify the zonal shift ID.

A zonal shift can be one that you've started for a resource in your Amazon Web Services account in an Amazon Web Services Region, or it can be a zonal shift started by a practice run with zonal autoshift.

" }, "CreatePracticeRunConfiguration":{ "name":"CreatePracticeRunConfiguration", @@ -47,10 +66,10 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

A practice run configuration for zonal autoshift is required when you enable zonal autoshift. A practice run configuration includes specifications for blocked dates and blocked time windows, and for Amazon CloudWatch alarms that you create to use with practice runs. The alarms that you specify are an outcome alarm, to monitor application health during practice runs and, optionally, a blocking alarm, to block practice runs from starting.

When a resource has a practice run configuration, ARC starts zonal shifts for the resource weekly, to shift traffic for practice runs. Practice runs help you to ensure that shifting away traffic from an Availability Zone during an autoshift is safe for your application.

For more information, see Considerations when you configure zonal autoshift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

A practice run configuration for zonal autoshift is required when you enable zonal autoshift. A practice run configuration includes specifications for blocked dates and blocked time windows, and for Amazon CloudWatch alarms that you create to use with practice runs. The alarms that you specify are an outcome alarm, to monitor application health during practice runs and, optionally, a blocking alarm, to block practice runs from starting.

When a resource has a practice run configuration, ARC starts zonal shifts for the resource weekly, to shift traffic for practice runs. Practice runs help you to ensure that shifting away traffic from an Availability Zone during an autoshift is safe for your application.

For more information, see Considerations when you configure zonal autoshift in the Amazon Application Recovery Controller Developer Guide.

" }, "DeletePracticeRunConfiguration":{ "name":"DeletePracticeRunConfiguration", @@ -66,8 +85,8 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], "documentation":"

Deletes the practice run configuration for a resource. Before you can delete a practice run configuration for a resource., you must disable zonal autoshift for the resource. Practice runs must be configured for zonal autoshift to be enabled.

", "idempotent":true @@ -101,10 +120,10 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Get information about a resource that's been registered for zonal shifts with Amazon Route 53 Application Recovery Controller in this Amazon Web Services Region. Resources that are registered for zonal shifts are managed resources in ARC. You can start zonal shifts and configure zonal autoshift for managed resources.

" + "documentation":"

Get information about a resource that's been registered for zonal shifts with Amazon Application Recovery Controller in this Amazon Web Services Region. Resources that are registered for zonal shifts are managed resources in ARC. You can start zonal shifts and configure zonal autoshift for managed resources.

" }, "ListAutoshifts":{ "name":"ListAutoshifts", @@ -118,8 +137,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], "documentation":"

Returns the autoshifts for an Amazon Web Services Region. By default, the call returns only ACTIVE autoshifts. Optionally, you can specify the status parameter to return COMPLETED autoshifts.

" }, @@ -135,10 +154,10 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Lists all the resources in your Amazon Web Services account in this Amazon Web Services Region that are managed for zonal shifts in Amazon Route 53 Application Recovery Controller, and information about them. The information includes the zonal autoshift status for the resource, as well as the Amazon Resource Name (ARN), the Availability Zones that each resource is deployed in, and the resource name.

" + "documentation":"

Lists all the resources in your Amazon Web Services account in this Amazon Web Services Region that are managed for zonal shifts in Amazon Application Recovery Controller, and information about them. The information includes the zonal autoshift status for the resource, as well as the Amazon Resource Name (ARN), the Availability Zones that each resource is deployed in, and the resource name.

" }, "ListZonalShifts":{ "name":"ListZonalShifts", @@ -152,10 +171,29 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Lists all active and completed zonal shifts in Amazon Route 53 Application Recovery Controller in your Amazon Web Services account in this Amazon Web Services Region.

" + "documentation":"

Lists all active and completed zonal shifts in Amazon Application Recovery Controller in your Amazon Web Services account in this Amazon Web Services Region. ListZonalShifts returns customer-initiated zonal shifts, as well as practice run zonal shifts that ARC started on your behalf for zonal autoshift.

For more information about listing autoshifts, see \">ListAutoshifts.

" + }, + "StartPracticeRun":{ + "name":"StartPracticeRun", + "http":{ + "method":"POST", + "requestUri":"/practiceruns", + "responseCode":200 + }, + "input":{"shape":"StartPracticeRunRequest"}, + "output":{"shape":"StartPracticeRunResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Start an on-demand practice run zonal shift in Amazon Application Recovery Controller. With zonal autoshift enabled, you can start an on-demand practice run to verify preparedness at any time. Amazon Web Services also runs automated practice runs about weekly when you have enabled zonal autoshift.

For more information, see Considerations when you configure zonal autoshift in the Amazon Application Recovery Controller Developer Guide.

" }, "StartZonalShift":{ "name":"StartZonalShift", @@ -171,10 +209,10 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in an Amazon Web Services Region, to help your application recover immediately, for example, from a developer's bad code deployment or from an Amazon Web Services infrastructure failure in a single Availability Zone. You can start a zonal shift in ARC only for managed resources in your Amazon Web Services account in an Amazon Web Services Region. Resources are automatically registered with ARC by Amazon Web Services services.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

When you start a zonal shift, traffic for the resource is no longer routed to the Availability Zone. The zonal shift is created immediately in ARC. However, it can take a short time, typically up to a few minutes, for existing, in-progress connections in the Availability Zone to complete.

For more information, see Zonal shift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in an Amazon Web Services Region, to help your application recover immediately, for example, from a developer's bad code deployment or from an Amazon Web Services infrastructure failure in a single Availability Zone. You can start a zonal shift in ARC only for managed resources in your Amazon Web Services account in an Amazon Web Services Region. Resources are automatically registered with ARC by Amazon Web Services services.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

When you start a zonal shift, traffic for the resource is no longer routed to the Availability Zone. The zonal shift is created immediately in ARC. However, it can take a short time, typically up to a few minutes, for existing, in-progress connections in the Availability Zone to complete.

For more information, see Zonal shift in the Amazon Application Recovery Controller Developer Guide.

" }, "UpdateAutoshiftObserverNotificationStatus":{ "name":"UpdateAutoshiftObserverNotificationStatus", @@ -188,10 +226,10 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Update the status of autoshift observer notification. Autoshift observer notification enables you to be notified, through Amazon EventBridge, when there is an autoshift event for zonal autoshift.

If the status is ENABLED, ARC includes all autoshift events when you use the EventBridge pattern Autoshift In Progress. When the status is DISABLED, ARC includes only autoshift events for autoshifts when one or more of your resources is included in the autoshift.

For more information, see Notifications for practice runs and autoshifts in the Amazon Route 53 Application Recovery Controller Developer Guide.

", + "documentation":"

Update the status of autoshift observer notification. Autoshift observer notification enables you to be notified, through Amazon EventBridge, when there is an autoshift event for zonal autoshift.

If the status is ENABLED, ARC includes all autoshift events when you use the EventBridge pattern Autoshift In Progress. When the status is DISABLED, ARC includes only autoshift events for autoshifts when one or more of your resources is included in the autoshift.

For more information, see Notifications for practice runs and autoshifts in the Amazon Application Recovery Controller Developer Guide.

", "idempotent":true }, "UpdatePracticeRunConfiguration":{ @@ -208,8 +246,8 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], "documentation":"

Update a practice run configuration to change one or more of the following: add, change, or remove the blocking alarm; change the outcome alarm; or add, change, or remove blocking dates or time windows.

" }, @@ -227,10 +265,10 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

The zonal autoshift configuration for a resource includes the practice run configuration and the status for running autoshifts, zonal autoshift status. When a resource has a practice run configuation, Route 53 ARC starts weekly zonal shifts for the resource, to shift traffic away from an Availability Zone. Weekly practice runs help you to make sure that your application can continue to operate normally with the loss of one Availability Zone.

You can update the zonal autoshift autoshift status to enable or disable zonal autoshift. When zonal autoshift is ENABLED, you authorize Amazon Web Services to shift away resource traffic for an application from an Availability Zone during events, on your behalf, to help reduce time to recovery. Traffic is also shifted away for the required weekly practice runs.

", + "documentation":"

The zonal autoshift configuration for a resource includes the practice run configuration and the status for running autoshifts, zonal autoshift status. When a resource has a practice run configuation, ARC starts weekly zonal shifts for the resource, to shift traffic away from an Availability Zone. Weekly practice runs help you to make sure that your application can continue to operate normally with the loss of one Availability Zone.

You can update the zonal autoshift autoshift status to enable or disable zonal autoshift. When zonal autoshift is ENABLED, you authorize Amazon Web Services to shift away resource traffic for an application from an Availability Zone during events, on your behalf, to help reduce time to recovery. Traffic is also shifted away for the required weekly practice runs.

", "idempotent":true }, "UpdateZonalShift":{ @@ -247,10 +285,10 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Update an active zonal shift in Amazon Route 53 Application Recovery Controller in your Amazon Web Services account. You can update a zonal shift to set a new expiration, or edit or replace the comment for the zonal shift.

" + "documentation":"

Update an active zonal shift in Amazon Application Recovery Controller in your Amazon Web Services account. You can update a zonal shift to set a new expiration, or edit or replace the comment for the zonal shift.

" } }, "shapes":{ @@ -302,7 +340,7 @@ "members":{ "appliedStatus":{ "shape":"AutoshiftAppliedStatus", - "documentation":"

The appliedStatus field specifies which application traffic shift is in effect for a resource when there is more than one active traffic shift. There can be more than one application traffic shift in progress at the same time - that is, practice run zonal shifts, customer-initiated zonal shifts, or an autoshift. The appliedStatus field for a shift that is in progress for a resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift or autoshift that is currently in effect for the resource has an appliedStatus set to APPLIED.

The overall principle for precedence is that zonal shifts that you start as a customer take precedence autoshifts, which take precedence over practice runs. That is, customer-initiated zonal shifts > autoshifts > practice run zonal shifts.

For more information, see How zonal autoshift and practice runs work in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

The appliedStatus field specifies which application traffic shift is in effect for a resource when there is more than one active traffic shift. There can be more than one application traffic shift in progress at the same time - that is, practice run zonal shifts, customer-initiated zonal shifts, or an autoshift. The appliedStatus field for a shift that is in progress for a resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift or autoshift that is currently in effect for the resource has an appliedStatus set to APPLIED.

The overall principle for precedence is that zonal shifts that you start as a customer take precedence autoshifts, which take precedence over practice runs. That is, customer-initiated zonal shifts > autoshifts > practice run zonal shifts.

For more information, see How zonal autoshift and practice runs work in the Amazon Application Recovery Controller Developer Guide.

" }, "awayFrom":{ "shape":"AvailabilityZone", @@ -313,7 +351,7 @@ "documentation":"

The time (UTC) when the autoshift started.

" } }, - "documentation":"

A complex structure that lists an autoshift that is currently active for a managed resource and information about the autoshift.

For more information, see How zonal autoshift and practice runs work in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

A complex structure that lists an autoshift that is currently active for a managed resource and information about the autoshift.

For more information, see How zonal autoshift and practice runs work in the Amazon Application Recovery Controller Developer Guide.

" }, "AutoshiftObserverNotificationStatus":{ "type":"string", @@ -351,7 +389,7 @@ "documentation":"

The status for an autoshift.

" } }, - "documentation":"

Information about an autoshift. Amazon Web Services starts an autoshift to temporarily move traffic for a resource away from an Availability Zone in an Amazon Web Services Region when Amazon Web Services determines that there's an issue in the Availability Zone that could potentially affect customers. You can configure zonal autoshift in ARC for managed resources in your Amazon Web Services account in a Region. Supported Amazon Web Services resources are automatically registered with ARC.

Autoshifts are temporary. When the Availability Zone recovers, Amazon Web Services ends the autoshift, and traffic for the resource is no longer directed to the other Availability Zones in the Region.

" + "documentation":"

Information about an autoshift. Amazon Web Services starts an autoshift to temporarily move traffic for a resource away from an Availability Zone in an Amazon Web Services Region when Amazon Web Services determines that there's an issue in the Availability Zone that could potentially affect customers. You can configure zonal autoshift in ARC for managed resources in your Amazon Web Services account in a Region. Supported Amazon Web Services resources are automatically registered with ARC.

Autoshifts are temporary. When the Availability Zone recovers, Amazon Web Services ends the autoshift, and traffic for the resource is no longer directed to the other Availability Zones in the Region.

You can stop an autoshift for a resource by disabling zonal autoshift.

" }, "AutoshiftsInResource":{ "type":"list", @@ -370,7 +408,7 @@ "type":"string", "max":10, "min":10, - "pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" + "pattern":"[0-9]{4}-[0-9]{2}-[0-9]{2}" }, "BlockedDates":{ "type":"list", @@ -382,7 +420,7 @@ "type":"string", "max":19, "min":19, - "pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$" + "pattern":"(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}" }, "BlockedWindows":{ "type":"list", @@ -390,6 +428,60 @@ "max":15, "min":0 }, + "CancelPracticeRunRequest":{ + "type":"structure", + "required":["zonalShiftId"], + "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a practice run zonal shift in Amazon Application Recovery Controller that you want to cancel.

", + "location":"uri", + "locationName":"zonalShiftId" + } + } + }, + "CancelPracticeRunResponse":{ + "type":"structure", + "required":[ + "zonalShiftId", + "resourceIdentifier", + "awayFrom", + "expiryTime", + "startTime", + "status", + "comment" + ], + "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of the practice run zonal shift in Amazon Application Recovery Controller that was canceled.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that you canceled a practice run zonal shift for. The identifier is the Amazon Resource Name (ARN) for the resource.

" + }, + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone (for example, use1-az1) that traffic was moved away from for a resource that you specified for the practice run.

" + }, + "expiryTime":{ + "shape":"ExpiryTime", + "documentation":"

The expiry time (expiration time) for an on-demand practice run zonal shift is 30 minutes from the time when you start the practice run, unless you cancel it before that time. However, be aware that the expiryTime field for practice run zonal shifts always has a value of 1 minute.

" + }, + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift starts.

" + }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for the practice run that you canceled (expected status is CANCELED).

The Status for a practice run zonal shift can have one of the following values:

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

The initial comment that you entered about the practice run. Be aware that this comment can be overwritten by Amazon Web Services if the automatic check for balanced capacity fails. For more information, see Capacity checks for practice runs in the Amazon Application Recovery Controller Developer Guide.

" + } + } + }, "CancelZonalShiftRequest":{ "type":"structure", "required":["zonalShiftId"], @@ -435,26 +527,30 @@ "PracticeConfigurationAlreadyExists", "AutoShiftEnabled", "PracticeConfigurationDoesNotExist", - "ZonalAutoshiftActive" + "ZonalAutoshiftActive", + "PracticeOutcomeAlarmsRed", + "PracticeBlockingAlarmsRed", + "PracticeInBlockedDates", + "PracticeInBlockedWindows" ] }, "ControlCondition":{ "type":"structure", "required":[ - "alarmIdentifier", - "type" + "type", + "alarmIdentifier" ], "members":{ - "alarmIdentifier":{ - "shape":"MetricIdentifier", - "documentation":"

The Amazon Resource Name (ARN) for an Amazon CloudWatch alarm that you specify as a control condition for a practice run.

" - }, "type":{ "shape":"ControlConditionType", "documentation":"

The type of alarm specified for a practice run. You can only specify Amazon CloudWatch alarms for practice runs, so the only valid value is CLOUDWATCH.

" + }, + "alarmIdentifier":{ + "shape":"MetricIdentifier", + "documentation":"

The Amazon Resource Name (ARN) for an Amazon CloudWatch alarm that you specify as a control condition for a practice run.

" } }, - "documentation":"

A control condition is an alarm that you specify for a practice run. When you configure practice runs with zonal autoshift for a resource, you specify Amazon CloudWatch alarms, which you create in CloudWatch to use with the practice run. The alarms that you specify are an outcome alarm, to monitor application health during practice runs and, optionally, a blocking alarm, to block practice runs from starting or to interrupt a practice run in progress.

Control condition alarms do not apply for autoshifts.

For more information, see Considerations when you configure zonal autoshift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

A control condition is an alarm that you specify for a practice run. When you configure practice runs with zonal autoshift for a resource, you specify Amazon CloudWatch alarms, which you create in CloudWatch to use with the practice run. The alarms that you specify are an outcome alarm, to monitor application health during practice runs and, optionally, a blocking alarm, to block practice runs from starting or to interrupt a practice run in progress.

Control condition alarms do not apply for autoshifts.

For more information, see Considerations when you configure zonal autoshift in the Amazon Application Recovery Controller Developer Guide.

" }, "ControlConditionType":{ "type":"string", @@ -469,18 +565,22 @@ "CreatePracticeRunConfigurationRequest":{ "type":"structure", "required":[ - "outcomeAlarms", - "resourceIdentifier" + "resourceIdentifier", + "outcomeAlarms" ], "members":{ - "blockedDates":{ - "shape":"BlockedDates", - "documentation":"

Optionally, you can block ARC from starting practice runs for a resource on specific calendar dates.

The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Separate multiple blocked dates with spaces.

For example, if you have an application update scheduled to launch on May 1, 2024, and you don't want practice runs to shift traffic away at that time, you could set a blocked date for 2024-05-01.

" + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier of the resource that Amazon Web Services shifts traffic for with a practice run zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

" }, "blockedWindows":{ "shape":"BlockedWindows", "documentation":"

Optionally, you can block ARC from starting practice runs for specific windows of days and times.

The format for blocked windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Also, be aware of potential time adjustments that might be required for daylight saving time differences. Separate multiple blocked windows with spaces.

For example, say you run business report summaries three days a week. For this scenario, you might set the following recurring days and times as blocked windows, for example: MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30.

" }, + "blockedDates":{ + "shape":"BlockedDates", + "documentation":"

Optionally, you can block ARC from starting practice runs for a resource on specific calendar dates.

The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Separate multiple blocked dates with spaces.

For example, if you have an application update scheduled to launch on May 1, 2024, and you don't want practice runs to shift traffic away at that time, you could set a blocked date for 2024-05-01.

" + }, "blockingAlarms":{ "shape":"ControlConditions", "documentation":"

An Amazon CloudWatch alarm that you can specify for zonal autoshift practice runs. This alarm blocks ARC from starting practice run zonal shifts, and ends a practice run that's in progress, when the alarm is in an ALARM state.

" @@ -488,10 +588,6 @@ "outcomeAlarms":{ "shape":"ControlConditions", "documentation":"

The outcome alarm for practice runs is a required Amazon CloudWatch alarm that you specify that ends a practice run when the alarm is in an ALARM state.

Configure the alarm to monitor the health of your application when traffic is shifted away from an Availability Zone during each practice run. You should configure the alarm to go into an ALARM state if your application is impacted by the zonal shift, and you want to stop the zonal shift, to let traffic for the resource return to the Availability Zone.

" - }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier of the resource that Amazon Web Services shifts traffic for with a practice run zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, supported resources are Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" } } }, @@ -500,8 +596,8 @@ "required":[ "arn", "name", - "practiceRunConfiguration", - "zonalAutoshiftStatus" + "zonalAutoshiftStatus", + "practiceRunConfiguration" ], "members":{ "arn":{ @@ -512,13 +608,13 @@ "shape":"ResourceName", "documentation":"

The name of the resource that you configured the practice run for.

" }, - "practiceRunConfiguration":{ - "shape":"PracticeRunConfiguration", - "documentation":"

A practice run configuration for a resource. Configurations include the outcome alarm that you specify for practice runs, and, optionally, a blocking alarm and blocking dates and windows.

" - }, "zonalAutoshiftStatus":{ "shape":"ZonalAutoshiftStatus", "documentation":"

The status for zonal autoshift for a resource. When you specify ENABLED for the autoshift status, Amazon Web Services shifts traffic away from shifts away application resource traffic from an Availability Zone, on your behalf, when internal telemetry indicates that there is an Availability Zone impairment that could potentially impact customers.

When you enable zonal autoshift, you must also configure practice runs for the resource.

" + }, + "practiceRunConfiguration":{ + "shape":"PracticeRunConfiguration", + "documentation":"

A practice run configuration for a resource. Configurations include the outcome alarm that you specify for practice runs, and, optionally, a blocking alarm and blocking dates and windows.

" } } }, @@ -560,13 +656,12 @@ "type":"string", "max":5, "min":2, - "pattern":"^([1-9][0-9]*)(m|h)$" + "pattern":"([1-9][0-9]*)(m|h)" }, "ExpiryTime":{"type":"timestamp"}, "GetAutoshiftObserverNotificationStatusRequest":{ "type":"structure", - "members":{ - } + "members":{} }, "GetAutoshiftObserverNotificationStatusResponse":{ "type":"structure", @@ -584,7 +679,7 @@ "members":{ "resourceIdentifier":{ "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, supported resources are Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

", + "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

", "location":"uri", "locationName":"resourceIdentifier" } @@ -597,22 +692,26 @@ "zonalShifts" ], "members":{ + "arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) for the resource.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the resource.

" + }, "appliedWeights":{ "shape":"AppliedWeights", "documentation":"

A collection of key-value pairs that indicate whether resources are active in Availability Zones or not. The key name is the Availability Zone where the resource is deployed. The value is 1 or 0.

" }, - "arn":{ - "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) for the resource.

" + "zonalShifts":{ + "shape":"ZonalShiftsInResource", + "documentation":"

The zonal shifts that are currently active for a resource.

" }, "autoshifts":{ "shape":"AutoshiftsInResource", "documentation":"

An array of the autoshifts that are active for the resource.

" }, - "name":{ - "shape":"ResourceName", - "documentation":"

The name of the resource.

" - }, "practiceRunConfiguration":{ "shape":"PracticeRunConfiguration", "documentation":"

The practice run configuration for zonal autoshift that's associated with the resource.

" @@ -620,10 +719,6 @@ "zonalAutoshiftStatus":{ "shape":"ZonalAutoshiftStatus", "documentation":"

The status for zonal autoshift for a resource. When the autoshift status is ENABLED, Amazon Web Services shifts traffic for a resource away from an Availability Zone, on your behalf, when Amazon Web Services determines that there's an issue in the Availability Zone that could potentially affect customers.

" - }, - "zonalShifts":{ - "shape":"ZonalShiftsInResource", - "documentation":"

The zonal shifts that are currently active for a resource.

" } } }, @@ -640,12 +735,6 @@ "ListAutoshiftsRequest":{ "type":"structure", "members":{ - "maxResults":{ - "shape":"MaxResults", - "documentation":"

The number of objects that you want to return with this call.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

", @@ -657,6 +746,12 @@ "documentation":"

The status of the autoshift.

", "location":"querystring", "locationName":"status" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The number of objects that you want to return with this call.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -676,17 +771,17 @@ "ListManagedResourcesRequest":{ "type":"structure", "members":{ - "maxResults":{ - "shape":"MaxResults", - "documentation":"

The number of objects that you want to return with this call.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

", "location":"querystring", "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The number of objects that you want to return with this call.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -707,29 +802,29 @@ "ListZonalShiftsRequest":{ "type":"structure", "members":{ - "maxResults":{ - "shape":"MaxResults", - "documentation":"

The number of objects that you want to return with this call.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

", "location":"querystring", "locationName":"nextToken" }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and is active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

", + "location":"querystring", + "locationName":"status" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The number of objects that you want to return with this call.

", + "location":"querystring", + "locationName":"maxResults" + }, "resourceIdentifier":{ "shape":"ResourceIdentifier", "documentation":"

The identifier for the resource that you want to list zonal shifts for. The identifier is the Amazon Resource Name (ARN) for the resource.

", "location":"querystring", "locationName":"resourceIdentifier" - }, - "status":{ - "shape":"ZonalShiftStatus", - "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

", - "location":"querystring", - "locationName":"status" } } }, @@ -754,40 +849,40 @@ "type":"structure", "required":["availabilityZones"], "members":{ - "appliedWeights":{ - "shape":"AppliedWeights", - "documentation":"

A collection of key-value pairs that indicate whether resources are active in Availability Zones or not. The key name is the Availability Zone where the resource is deployed. The value is 1 or 0.

" - }, "arn":{ "shape":"ResourceArn", "documentation":"

The Amazon Resource Name (ARN) for the managed resource.

" }, - "autoshifts":{ - "shape":"AutoshiftsInResource", - "documentation":"

An array of the autoshifts that have been completed for a resource.

" + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the managed resource.

" }, "availabilityZones":{ "shape":"AvailabilityZones", "documentation":"

The Availability Zones that a resource is deployed in.

" }, - "name":{ - "shape":"ResourceName", - "documentation":"

The name of the managed resource.

" + "appliedWeights":{ + "shape":"AppliedWeights", + "documentation":"

A collection of key-value pairs that indicate whether resources are active in Availability Zones or not. The key name is the Availability Zone where the resource is deployed. The value is 1 or 0.

" }, - "practiceRunStatus":{ - "shape":"ZonalAutoshiftStatus", - "documentation":"

This status tracks whether a practice run configuration exists for a resource. When you configure a practice run for a resource so that a practice run configuration exists, ARC sets this value to ENABLED. If a you have not configured a practice run for the resource, or delete a practice run configuration, ARC sets the value to DISABLED.

ARC updates this status; you can't set a practice run status to ENABLED or DISABLED.

" + "zonalShifts":{ + "shape":"ZonalShiftsInResource", + "documentation":"

An array of the zonal shifts for a resource.

" + }, + "autoshifts":{ + "shape":"AutoshiftsInResource", + "documentation":"

An array of the autoshifts that have been completed for a resource.

" }, "zonalAutoshiftStatus":{ "shape":"ZonalAutoshiftStatus", "documentation":"

The status of autoshift for a resource. When you configure zonal autoshift for a resource, you can set the value of the status to ENABLED or DISABLED.

" }, - "zonalShifts":{ - "shape":"ZonalShiftsInResource", - "documentation":"

An array of the zonal shifts for a resource.

" + "practiceRunStatus":{ + "shape":"ZonalAutoshiftStatus", + "documentation":"

This status tracks whether a practice run configuration exists for a resource. When you configure a practice run for a resource so that a practice run configuration exists, ARC sets this value to ENABLED. If a you have not configured a practice run for the resource, or delete a practice run configuration, ARC sets the value to DISABLED.

ARC updates this status; you can't set a practice run status to ENABLED or DISABLED.

" } }, - "documentation":"

A complex structure for a managed resource in an Amazon Web Services account with information about zonal shifts and autoshifts.

A managed resource is a load balancer that has been registered with ARC by Elastic Load Balancing. You can start a zonal shift in ARC for a managed resource to temporarily move traffic for the resource away from an Availability Zone in an Amazon Web Services Region. You can also configure zonal autoshift for a managed resource.

At this time, managed resources are Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + "documentation":"

A complex structure for a managed resource in an Amazon Web Services account with information about zonal shifts and autoshifts.

You can start a zonal shift in ARC for a managed resource to temporarily move traffic for the resource away from an Availability Zone in an Amazon Web Services Region. You can also configure zonal autoshift for a managed resource.

At this time, managed resources are Amazon EC2 Auto Scaling groups, Amazon Elastic Kubernetes Service, Network Load Balancers, and Application Load Balancer.

" }, "MaxResults":{ "type":"integer", @@ -799,20 +894,12 @@ "type":"string", "max":1024, "min":8, - "pattern":"^.*$" + "pattern":".*" }, "PracticeRunConfiguration":{ "type":"structure", "required":["outcomeAlarms"], "members":{ - "blockedDates":{ - "shape":"BlockedDates", - "documentation":"

An array of one or more dates that you can specify when Amazon Web Services does not start practice runs for a resource.

Specify blocked dates, in UTC, in the format YYYY-MM-DD, separated by spaces.

" - }, - "blockedWindows":{ - "shape":"BlockedWindows", - "documentation":"

An array of one or more windows of days and times that you can block ARC from starting practice runs for a resource.

Specify the blocked windows in UTC, using the format DAY:HH:MM-DAY:HH:MM, separated by spaces. For example, MON:18:30-MON:19:30 TUE:18:30-TUE:19:30.

" - }, "blockingAlarms":{ "shape":"ControlConditions", "documentation":"

The blocking alarm for practice runs is an optional alarm that you can specify that blocks practice runs when the alarm is in an ALARM state.

" @@ -820,6 +907,14 @@ "outcomeAlarms":{ "shape":"ControlConditions", "documentation":"

The outcome alarm for practice runs is an alarm that you specify that ends a practice run when the alarm is in an ALARM state.

" + }, + "blockedWindows":{ + "shape":"BlockedWindows", + "documentation":"

An array of one or more windows of days and times that you can block ARC from starting practice runs for a resource.

Specify the blocked windows in UTC, using the format DAY:HH:MM-DAY:HH:MM, separated by spaces. For example, MON:18:30-MON:19:30 TUE:18:30-TUE:19:30.

" + }, + "blockedDates":{ + "shape":"BlockedDates", + "documentation":"

An array of one or more dates that you can specify when Amazon Web Services does not start practice runs for a resource.

Specify blocked dates, in UTC, in the format YYYY-MM-DD, separated by spaces.

" } }, "documentation":"

A practice run configuration for a resource includes the Amazon CloudWatch alarms that you've specified for a practice run, as well as any blocked dates or blocked windows for the practice run. When a resource has a practice run configuration, ARC shifts traffic for the resource weekly for practice runs.

Practice runs are required for zonal autoshift. The zonal shifts that ARC starts for practice runs help you to ensure that shifting away traffic from an Availability Zone during an autoshift is safe for your application.

You can update or delete a practice run configuration. Before you delete a practice run configuration, you must disable zonal autoshift for the resource. A practice run configuration is required when zonal autoshift is enabled.

" @@ -830,14 +925,15 @@ "FAILED", "INTERRUPTED", "PENDING", - "SUCCEEDED" + "SUCCEEDED", + "CAPACITY_CHECK_FAILED" ] }, "ResourceArn":{ "type":"string", "max":1024, "min":8, - "pattern":"^arn:.*$" + "pattern":"arn:.*" }, "ResourceIdentifier":{ "type":"string", @@ -871,31 +967,95 @@ "ZONAL_AUTOSHIFT" ] }, + "StartPracticeRunRequest":{ + "type":"structure", + "required":[ + "resourceIdentifier", + "awayFrom", + "comment" + ], + "members":{ + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that you want to start a practice run zonal shift for. The identifier is the Amazon Resource Name (ARN) for the resource.

" + }, + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone (for example, use1-az1) that traffic is shifted away from for the resource that you specify for the practice run.

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

The initial comment that you enter about the practice run. Be aware that this comment can be overwritten by Amazon Web Services if the automatic check for balanced capacity fails. For more information, see Capacity checks for practice runs in the Amazon Application Recovery Controller Developer Guide.

" + } + } + }, + "StartPracticeRunResponse":{ + "type":"structure", + "required":[ + "zonalShiftId", + "resourceIdentifier", + "awayFrom", + "expiryTime", + "startTime", + "status", + "comment" + ], + "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a practice run zonal shift.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that you want to shift traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

" + }, + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone (for example, use1-az1) that traffic is shifted away from for the resource that you specify for the practice run.

" + }, + "expiryTime":{ + "shape":"ExpiryTime", + "documentation":"

The expiry time (expiration time) for an on-demand practice run zonal shift is 30 minutes from the time when you start the practice run, unless you cancel it before that time. However, be aware that the expiryTime field for practice run zonal shifts always has a value of 1 minute.

" + }, + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift starts.

" + }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for the practice run (expected status is ACTIVE).

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

The initial comment that you enter about the practice run. Be aware that this comment can be overwritten by Amazon Web Services if the automatic check for balanced capacity fails. For more information, see Capacity checks for practice runs in the Amazon Application Recovery Controller Developer Guide.

" + } + } + }, "StartTime":{"type":"timestamp"}, "StartZonalShiftRequest":{ "type":"structure", "required":[ + "resourceIdentifier", "awayFrom", - "comment", "expiresIn", - "resourceIdentifier" + "comment" ], "members":{ + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

" + }, "awayFrom":{ "shape":"AvailabilityZone", "documentation":"

The Availability Zone (for example, use1-az1) that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the Amazon Web Services Region.

" }, - "comment":{ - "shape":"ZonalShiftComment", - "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" - }, "expiresIn":{ "shape":"ExpiresIn", "documentation":"

The length of time that you want a zonal shift to be active, which ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).

If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.

To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:

  • A lowercase letter m: To specify that the value is in minutes.

  • A lowercase letter h: To specify that the value is in hours.

For example: 20h means the zonal shift expires in 20 hours. 120m means the zonal shift expires in 120 minutes (2 hours).

" }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, supported resources are Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" } } }, @@ -936,14 +1096,20 @@ "type":"structure", "required":["resourceIdentifier"], "members":{ - "blockedDates":{ - "shape":"BlockedDates", - "documentation":"

Add, change, or remove blocked dates for a practice run in zonal autoshift.

Optionally, you can block practice runs for specific calendar dates. The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Separate multiple blocked dates with spaces.

For example, if you have an application update scheduled to launch on May 1, 2024, and you don't want practice runs to shift traffic away at that time, you could set a blocked date for 2024-05-01.

" + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that you want to update the practice run configuration for. The identifier is the Amazon Resource Name (ARN) for the resource.

", + "location":"uri", + "locationName":"resourceIdentifier" }, "blockedWindows":{ "shape":"BlockedWindows", "documentation":"

Add, change, or remove windows of days and times for when you can, optionally, block ARC from starting a practice run for a resource.

The format for blocked windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Also, be aware of potential time adjustments that might be required for daylight saving time differences. Separate multiple blocked windows with spaces.

For example, say you run business report summaries three days a week. For this scenario, you might set the following recurring days and times as blocked windows, for example: MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30.

" }, + "blockedDates":{ + "shape":"BlockedDates", + "documentation":"

Add, change, or remove blocked dates for a practice run in zonal autoshift.

Optionally, you can block practice runs for specific calendar dates. The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Separate multiple blocked dates with spaces.

For example, if you have an application update scheduled to launch on May 1, 2024, and you don't want practice runs to shift traffic away at that time, you could set a blocked date for 2024-05-01.

" + }, "blockingAlarms":{ "shape":"ControlConditions", "documentation":"

Add, change, or remove the Amazon CloudWatch alarm that you optionally specify as the blocking alarm for practice runs.

" @@ -951,12 +1117,6 @@ "outcomeAlarms":{ "shape":"ControlConditions", "documentation":"

Specify a new the Amazon CloudWatch alarm as the outcome alarm for practice runs.

" - }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource that you want to update the practice run configuration for. The identifier is the Amazon Resource Name (ARN) for the resource.

", - "location":"uri", - "locationName":"resourceIdentifier" } } }, @@ -965,8 +1125,8 @@ "required":[ "arn", "name", - "practiceRunConfiguration", - "zonalAutoshiftStatus" + "zonalAutoshiftStatus", + "practiceRunConfiguration" ], "members":{ "arn":{ @@ -977,13 +1137,13 @@ "shape":"ResourceName", "documentation":"

The name of the resource that you updated the practice run for.

" }, - "practiceRunConfiguration":{ - "shape":"PracticeRunConfiguration", - "documentation":"

The practice run configuration that was updated.

" - }, "zonalAutoshiftStatus":{ "shape":"ZonalAutoshiftStatus", "documentation":"

The zonal autoshift status for the resource that you updated the practice run for.

" + }, + "practiceRunConfiguration":{ + "shape":"PracticeRunConfiguration", + "documentation":"

The practice run configuration that was updated.

" } } }, @@ -1027,6 +1187,12 @@ "type":"structure", "required":["zonalShiftId"], "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

", + "location":"uri", + "locationName":"zonalShiftId" + }, "comment":{ "shape":"ZonalShiftComment", "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" @@ -1034,12 +1200,6 @@ "expiresIn":{ "shape":"ExpiresIn", "documentation":"

The length of time that you want a zonal shift to be active, which ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).

If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.

To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:

  • A lowercase letter m: To specify that the value is in minutes.

  • A lowercase letter h: To specify that the value is in hours.

For example: 20h means the zonal shift expires in 20 hours. 120m means the zonal shift expires in 120 minutes (2 hours).

" - }, - "zonalShiftId":{ - "shape":"ZonalShiftId", - "documentation":"

The identifier of a zonal shift.

", - "location":"uri", - "locationName":"zonalShiftId" } } }, @@ -1077,7 +1237,8 @@ "InvalidConditionType", "InvalidPracticeBlocker", "FISExperimentUpdateNotAllowed", - "AutoshiftUpdateNotAllowed" + "AutoshiftUpdateNotAllowed", + "UnsupportedPracticeCancelShiftType" ] }, "Weight":{ @@ -1096,42 +1257,42 @@ "ZonalShift":{ "type":"structure", "required":[ + "zonalShiftId", + "resourceIdentifier", "awayFrom", - "comment", "expiryTime", - "resourceIdentifier", "startTime", "status", - "zonalShiftId" + "comment" ], "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

" + }, "awayFrom":{ "shape":"AvailabilityZone", "documentation":"

The Availability Zone (for example, use1-az1) that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the Amazon Web Services Region.

" }, - "comment":{ - "shape":"ZonalShiftComment", - "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" - }, "expiryTime":{ "shape":"ExpiryTime", "documentation":"

The expiry time (expiration time) for a customer-initiated zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which ARC converts to an expiry time (expiration time). You can cancel a zonal shift when you're ready to restore traffic to the Availability Zone, or just wait for it to expire. Or you can update the zonal shift to specify another length of time to expire in.

" }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource that Amazon Web Services shifts traffic for. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, supported resources are Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" - }, "startTime":{ "shape":"StartTime", "documentation":"

The time (UTC) when the zonal shift starts.

" }, "status":{ "shape":"ZonalShiftStatus", - "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and is active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" }, - "zonalShiftId":{ - "shape":"ZonalShiftId", - "documentation":"

The identifier of a zonal shift.

" + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" } } }, @@ -1144,55 +1305,55 @@ "type":"string", "max":36, "min":6, - "pattern":"^[A-Za-z0-9-]+$" + "pattern":"[A-Za-z0-9-]+" }, "ZonalShiftInResource":{ "type":"structure", "required":[ "appliedStatus", + "zonalShiftId", + "resourceIdentifier", "awayFrom", - "comment", "expiryTime", - "resourceIdentifier", "startTime", - "zonalShiftId" + "comment" ], "members":{ "appliedStatus":{ "shape":"AppliedStatus", - "documentation":"

The appliedStatus field specifies which application traffic shift is in effect for a resource when there is more than one active traffic shift. There can be more than one application traffic shift in progress at the same time - that is, practice run zonal shifts, customer-initiated zonal shifts, or an autoshift. The appliedStatus field for a shift that is in progress for a resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift or autoshift that is currently in effect for the resource has an appliedStatus set to APPLIED.

The overall principle for precedence is that zonal shifts that you start as a customer take precedence autoshifts, which take precedence over practice runs. That is, customer-initiated zonal shifts > autoshifts > practice run zonal shifts.

For more information, see How zonal autoshift and practice runs work in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

The appliedStatus field specifies which application traffic shift is in effect for a resource when there is more than one active traffic shift. There can be more than one application traffic shift in progress at the same time - that is, practice run zonal shifts, customer-initiated zonal shifts, or an autoshift. The appliedStatus field for a shift that is in progress for a resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift or autoshift that is currently in effect for the resource has an appliedStatus set to APPLIED.

The overall principle for precedence is that zonal shifts that you start as a customer take precedence autoshifts, which take precedence over practice runs. That is, customer-initiated zonal shifts > autoshifts > practice run zonal shifts.

For more information, see How zonal autoshift and practice runs work in the Amazon Application Recovery Controller Developer Guide.

" + }, + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

" }, "awayFrom":{ "shape":"AvailabilityZone", "documentation":"

The Availability Zone (for example, use1-az1) that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the Amazon Web Services Region.

" }, - "comment":{ - "shape":"ZonalShiftComment", - "documentation":"

A comment that you enter for a customer-initiated zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" - }, "expiryTime":{ "shape":"ExpiryTime", "documentation":"

The expiry time (expiration time) for a customer-initiated zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which ARC converts to an expiry time (expiration time). You can cancel a zonal shift when you're ready to restore traffic to the Availability Zone, or just wait for it to expire. Or you can update the zonal shift to specify another length of time to expire in.

" }, - "practiceRunOutcome":{ - "shape":"PracticeRunOutcome", - "documentation":"

The outcome, or end state, returned for a practice run. The following values can be returned:

  • PENDING: Outcome value when a practice run is in progress.

  • SUCCEEDED: Outcome value when the outcome alarm specified for the practice run configuration does not go into an ALARM state during the practice run, and the practice run was not interrupted before it completed the expected 30 minute zonal shift.

  • INTERRUPTED: Outcome value when the practice run was stopped before the expected 30 minute zonal shift duration, or there was another problem with the practice run that created an inconclusive outcome.

  • FAILED: Outcome value when the outcome alarm specified for the practice run configuration goes into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

For more information about practice run outcomes, see Considerations when you configure zonal autoshift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift starts.

" }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter for a customer-initiated zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" }, "shiftType":{ "shape":"ShiftType", "documentation":"

Defines the zonal shift type.

" }, - "startTime":{ - "shape":"StartTime", - "documentation":"

The time (UTC) when the zonal shift starts.

" - }, - "zonalShiftId":{ - "shape":"ZonalShiftId", - "documentation":"

The identifier of a zonal shift.

" + "practiceRunOutcome":{ + "shape":"PracticeRunOutcome", + "documentation":"

The outcome, or end state, returned for a practice run. The following values can be returned:

  • PENDING: Outcome value when a practice run is in progress.

  • SUCCEEDED: Outcome value when the outcome alarm specified for the practice run configuration does not go into an ALARM state during the practice run, and the practice run was not interrupted before it completed the expected 30 minute zonal shift.

  • INTERRUPTED: Outcome value when the practice run was stopped before the expected 30 minute zonal shift duration, or there was another problem with the practice run that created an inconclusive outcome.

  • FAILED: Outcome value when the outcome alarm specified for the practice run configuration goes into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

  • CAPACITY_CHECK_FAILED: The check for balanced capacity across Availability Zones for your load balancing and Auto Scaling group resources failed.

For more information about practice run outcomes, see Considerations when you configure zonal autoshift in the Amazon Application Recovery Controller Developer Guide.

" } }, "documentation":"

A complex structure that lists the zonal shifts for a managed resource and their statuses for the resource.

" @@ -1212,58 +1373,58 @@ "ZonalShiftSummary":{ "type":"structure", "required":[ + "zonalShiftId", + "resourceIdentifier", "awayFrom", - "comment", "expiryTime", - "resourceIdentifier", "startTime", "status", - "zonalShiftId" + "comment" ], "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

Amazon Application Recovery Controller currently supports enabling the following resources for zonal shift and zonal autoshift:

" + }, "awayFrom":{ "shape":"AvailabilityZone", "documentation":"

The Availability Zone (for example, use1-az1) that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the Amazon Web Services Region.

" }, - "comment":{ - "shape":"ZonalShiftComment", - "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" - }, "expiryTime":{ "shape":"ExpiryTime", "documentation":"

The expiry time (expiration time) for a customer-initiated zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which ARC converts to an expiry time (expiration time). You can cancel a zonal shift when you're ready to restore traffic to the Availability Zone, or just wait for it to expire. Or you can update the zonal shift to specify another length of time to expire in.

" }, - "practiceRunOutcome":{ - "shape":"PracticeRunOutcome", - "documentation":"

The outcome, or end state, of a practice run. The following values can be returned:

  • PENDING: Outcome value when the practice run is in progress.

  • SUCCEEDED: Outcome value when the outcome alarm specified for the practice run configuration does not go into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

  • INTERRUPTED: Outcome value when the practice run did not run for the expected 30 minutes or there was another problem with the practice run that created an inconclusive outcome.

  • FAILED: Outcome value when the outcome alarm specified for the practice run configuration goes into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

For more information about practice run outcomes, see Considerations when you configure zonal autoshift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" - }, - "resourceIdentifier":{ - "shape":"ResourceIdentifier", - "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" - }, - "shiftType":{ - "shape":"ShiftType", - "documentation":"

Defines the zonal shift type.

" - }, "startTime":{ "shape":"StartTime", "documentation":"

The time (UTC) when the zonal shift starts.

" }, "status":{ "shape":"ZonalShiftStatus", - "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift has been started and is active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" }, - "zonalShiftId":{ - "shape":"ZonalShiftId", - "documentation":"

The identifier of a zonal shift.

" + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" + }, + "shiftType":{ + "shape":"ShiftType", + "documentation":"

Defines the zonal shift type.

" + }, + "practiceRunOutcome":{ + "shape":"PracticeRunOutcome", + "documentation":"

The outcome, or end state, of a practice run. The following values can be returned:

  • PENDING: Outcome value when the practice run is in progress.

  • SUCCEEDED: Outcome value when the outcome alarm specified for the practice run configuration does not go into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

  • INTERRUPTED: Outcome value when the practice run did not run for the expected 30 minutes or there was another problem with the practice run that created an inconclusive outcome.

  • FAILED: Outcome value when the outcome alarm specified for the practice run configuration goes into an ALARM state during the practice run, and the practice run was not interrupted before it completed.

  • CAPACITY_CHECK_FAILED: The check for balanced capacity across Availability Zones for your load balancing and Auto Scaling group resources failed.

For more information about practice run outcomes, see Considerations when you configure zonal autoshift in the Amazon Application Recovery Controller Developer Guide.

" } }, - "documentation":"

Lists information about zonal shifts in Amazon Route 53 Application Recovery Controller, including zonal shifts that you start yourself and zonal shifts that ARC starts on your behalf for practice runs with zonal autoshift.

Zonal shifts are temporary, including customer-initiated zonal shifts and the zonal autoshift practice run zonal shifts that ARC starts weekly, on your behalf. A zonal shift that a customer starts can be active for up to three days (72 hours). A practice run zonal shift has a 30 minute duration.

" + "documentation":"

Lists information about zonal shifts in Amazon Application Recovery Controller, including zonal shifts that you start yourself and zonal shifts that ARC starts on your behalf for practice runs with zonal autoshift.

Zonal shifts are temporary, including customer-initiated zonal shifts and the zonal autoshift practice run zonal shifts that ARC starts weekly, on your behalf. A zonal shift that a customer starts can be active for up to three days (72 hours). A practice run zonal shift has a 30 minute duration.

" }, "ZonalShiftsInResource":{ "type":"list", "member":{"shape":"ZonalShiftInResource"} } }, - "documentation":"

Welcome to the API Reference Guide for zonal shift and zonal autoshift in Amazon Route 53 Application Recovery Controller (ARC).

You can start a zonal shift to move traffic for a load balancer resource away from an Availability Zone to help your application recover quickly from an impairment in an Availability Zone. For example, you can recover your application from a developer's bad code deployment or from an Amazon Web Services infrastructure failure in a single Availability Zone.

You can also configure zonal autoshift for supported load balancer resources. Zonal autoshift is a capability in ARC where you authorize Amazon Web Services to shift away application resource traffic from an Availability Zone during events, on your behalf, to help reduce your time to recovery. Amazon Web Services starts an autoshift when internal telemetry indicates that there is an Availability Zone impairment that could potentially impact customers.

To help make sure that zonal autoshift is safe for your application, you must also configure practice runs when you enable zonal autoshift for a resource. Practice runs start weekly zonal shifts for a resource, to shift traffic for the resource away from an Availability Zone. Practice runs help you to make sure, on a regular basis, that you have enough capacity in all the Availability Zones in an Amazon Web Services Region for your application to continue to operate normally when traffic for a resource is shifted away from one Availability Zone.

Before you configure practice runs or enable zonal autoshift, we strongly recommend that you prescale your application resource capacity in all Availability Zones in the Region where your application resources are deployed. You should not rely on scaling on demand when an autoshift or practice run starts. Zonal autoshift, including practice runs, works independently, and does not wait for auto scaling actions to complete. Relying on auto scaling, instead of pre-scaling, can result in loss of availability.

If you use auto scaling to handle regular cycles of traffic, we strongly recommend that you configure the minimum capacity of your auto scaling to continue operating normally with the loss of an Availability Zone.

Be aware that ARC does not inspect the health of individual resources. Amazon Web Services only starts an autoshift when Amazon Web Services telemetry detects that there is an Availability Zone impairment that could potentially impact customers. In some cases, resources might be shifted away that are not experiencing impact.

For more information about using zonal shift and zonal autoshift, see the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "documentation":"

Welcome to the API Reference Guide for zonal shift and zonal autoshift in Amazon Application Recovery Controller (ARC).

You can start a zonal shift to move traffic for a load balancer resource away from an Availability Zone to help your application recover quickly from an impairment in an Availability Zone. For example, you can recover your application from a developer's bad code deployment or from an Amazon Web Services infrastructure failure in a single Availability Zone.

You can also configure zonal autoshift for supported load balancer resources. Zonal autoshift is a capability in ARC where you authorize Amazon Web Services to shift away application resource traffic from an Availability Zone during events, on your behalf, to help reduce your time to recovery. Amazon Web Services starts an autoshift when internal telemetry indicates that there is an Availability Zone impairment that could potentially impact customers.

For more information about using zonal shift and zonal autoshift, see the Amazon Application Recovery Controller Developer Guide.

" } diff --git a/services/arczonalshift/src/main/resources/codegen-resources/waiters-2.json b/services/arczonalshift/src/main/resources/codegen-resources/waiters-2.json new file mode 100644 index 000000000000..13f60ee66be6 --- /dev/null +++ b/services/arczonalshift/src/main/resources/codegen-resources/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/services/artifact/pom.xml b/services/artifact/pom.xml index 157bf10c896f..05fe60a7680b 100644 --- a/services/artifact/pom.xml +++ b/services/artifact/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT artifact AWS Java SDK :: Services :: Artifact diff --git a/services/athena/pom.xml b/services/athena/pom.xml index 6e01175fd93a..9d53f198a351 100644 --- a/services/athena/pom.xml +++ b/services/athena/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT athena AWS Java SDK :: Services :: Amazon Athena diff --git a/services/auditmanager/pom.xml b/services/auditmanager/pom.xml index 3e56835890a3..e8af51457ee7 100644 --- a/services/auditmanager/pom.xml +++ b/services/auditmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT auditmanager AWS Java SDK :: Services :: Audit Manager diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml index 91b963a63818..61591d2752e0 100644 --- a/services/autoscaling/pom.xml +++ b/services/autoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT autoscaling AWS Java SDK :: Services :: Auto Scaling diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml index c759a0e6a433..0613afac3023 100644 --- a/services/autoscalingplans/pom.xml +++ b/services/autoscalingplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT autoscalingplans AWS Java SDK :: Services :: Auto Scaling Plans diff --git a/services/b2bi/pom.xml b/services/b2bi/pom.xml index 07731342c563..cf468ee949df 100644 --- a/services/b2bi/pom.xml +++ b/services/b2bi/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT b2bi AWS Java SDK :: Services :: B2 Bi diff --git a/services/b2bi/src/main/resources/codegen-resources/service-2.json b/services/b2bi/src/main/resources/codegen-resources/service-2.json index 3a8386c71f1f..1cb33248e688 100644 --- a/services/b2bi/src/main/resources/codegen-resources/service-2.json +++ b/services/b2bi/src/main/resources/codegen-resources/service-2.json @@ -25,8 +25,8 @@ "input":{"shape":"CreateCapabilityRequest"}, "output":{"shape":"CreateCapabilityResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, @@ -45,11 +45,11 @@ "input":{"shape":"CreatePartnershipRequest"}, "output":{"shape":"CreatePartnershipResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -65,11 +65,11 @@ "input":{"shape":"CreateProfileRequest"}, "output":{"shape":"CreateProfileResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -101,11 +101,11 @@ "input":{"shape":"CreateTransformerRequest"}, "output":{"shape":"CreateTransformerResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -120,8 +120,8 @@ }, "input":{"shape":"DeleteCapabilityRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, @@ -138,11 +138,11 @@ }, "input":{"shape":"DeletePartnershipRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Deletes the specified partnership. A partnership represents the connection between you and your trading partner. It ties together a profile and one or more trading capabilities.

", @@ -159,8 +159,8 @@ {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Deletes the specified profile. A profile is the mechanism used to create the concept of a private network.

", @@ -174,11 +174,11 @@ }, "input":{"shape":"DeleteTransformerRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Deletes the specified transformer. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file.

", @@ -198,7 +198,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Takes sample input and output documents and uses Amazon Bedrock to generate a mapping automatically. Depending on the accuracy and other factors, you can then edit the mapping for your needs.

Before you can use the AI-assisted feature for Amazon Web Services B2B Data Interchange you must enable models in Amazon Bedrock. For details, see AI-assisted template mapping prerequisites in the Amazon Web Services B2B Data Interchange User guide.

", + "documentation":"

Takes sample input and output documents and uses Amazon Bedrock to generate a mapping automatically. Depending on the accuracy and other factors, you can then edit the mapping for your needs.

Before you can use the AI-assisted feature for Amazon Web Services B2B Data Interchange you must enable models in Amazon Bedrock. For details, see AI-assisted template mapping prerequisites in the Amazon Web Services B2B Data Interchange User guide.

To generate a mapping, perform the following steps:

  1. Start with an X12 EDI document to use as the input.

  2. Call TestMapping using your EDI document.

  3. Use the output from the TestMapping operation as either input or output for your GenerateMapping call, along with your sample file.

", "idempotent":true }, "GetCapability":{ @@ -229,8 +229,8 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Retrieves the details for a partnership, based on the partner and profile IDs specified. A partnership represents the connection between you and your trading partner. It ties together a profile and one or more trading capabilities.

" @@ -246,8 +246,8 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Retrieves the details for the profile specified by the profile ID. A profile is the mechanism used to create the concept of a private network.

" @@ -263,8 +263,8 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Retrieves the details for the transformer specified by the transformer ID. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file.

" @@ -284,7 +284,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns the details of the transformer run, based on the Transformer job ID.

" + "documentation":"

Returns the details of the transformer run, based on the Transformer job ID.

If 30 days have elapsed since your transformer job was started, the system deletes it. So, if you run GetTransformerJob and supply a transformerId and transformerJobId for a job that was started more than 30 days previously, you receive a 404 response.

" }, "ListCapabilities":{ "name":"ListCapabilities", @@ -313,8 +313,8 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Lists the partnerships associated with your Amazon Web Services account for your current or specified region. A partnership represents the connection between you and your trading partner. It ties together a profile and one or more trading capabilities.

" @@ -375,14 +375,14 @@ "input":{"shape":"StartTransformerJobRequest"}, "output":{"shape":"StartTransformerJobResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Runs a job, using a transformer, to parse input EDI (electronic data interchange) file into the output structures used by Amazon Web Services B2B Data Interchange.

If you only want to transform EDI (electronic data interchange) documents, you don't need to create profiles, partnerships or capabilities. Just create and configure a transformer, and then run the StartTransformerJob API to process your files.

", + "documentation":"

Runs a job, using a transformer, to parse input EDI (electronic data interchange) file into the output structures used by Amazon Web Services B2B Data Interchange.

If you only want to transform EDI (electronic data interchange) documents, you don't need to create profiles, partnerships or capabilities. Just create and configure a transformer, and then run the StartTransformerJob API to process your files.

The system stores transformer jobs for 30 days. During that period, you can run GetTransformerJob and supply its transformerId and transformerJobId to return details of the job.

", "idempotent":true }, "TagResource":{ @@ -394,8 +394,8 @@ "input":{"shape":"TagResourceRequest"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], "documentation":"

Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Resources are capability, partnership, profile, transformers and other entities.

There is no response returned from this call.

" @@ -478,8 +478,8 @@ "input":{"shape":"UpdateCapabilityRequest"}, "output":{"shape":"UpdateCapabilityResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, @@ -498,11 +498,11 @@ "input":{"shape":"UpdatePartnershipRequest"}, "output":{"shape":"UpdatePartnershipResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -518,11 +518,11 @@ "input":{"shape":"UpdateProfileRequest"}, "output":{"shape":"UpdateProfileResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -538,11 +538,11 @@ "input":{"shape":"UpdateTransformerRequest"}, "output":{"shape":"UpdateTransformerResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], @@ -560,6 +560,16 @@ "documentation":"

You do not have sufficient access to perform this action.

", "exception":true }, + "AdvancedOptions":{ + "type":"structure", + "members":{ + "x12":{ + "shape":"X12AdvancedOptions", + "documentation":"

A structure that contains X12-specific advanced options, such as split options for processing X12 EDI files.

" + } + }, + "documentation":"

A structure that contains advanced options for EDI processing. Currently, only X12 advanced options are supported.

" + }, "AmazonResourceName":{ "type":"string", "max":1011, @@ -614,6 +624,10 @@ "outboundEdi":{ "shape":"OutboundEdiOptions", "documentation":"

A structure that contains the outbound EDI options.

" + }, + "inboundEdi":{ + "shape":"InboundEdiOptions", + "documentation":"

A structure that contains the inbound EDI options for the capability.

" } }, "documentation":"

Contains the details for an Outbound EDI capability.

" @@ -1285,11 +1299,11 @@ "members":{ "inputFileContent":{ "shape":"GenerateMappingInputFileContent", - "documentation":"

Provide the contents of a sample X12 EDI file (for inbound EDI) or JSON/XML file (for outbound EDI) to use as a starting point for the mapping.

" + "documentation":"

Provide the contents of a sample X12 EDI file, either in JSON or XML format, to use as a starting point for the mapping.

" }, "outputFileContent":{ "shape":"GenerateMappingOutputFileContent", - "documentation":"

Provide the contents of a sample X12 EDI file (for outbound EDI) or JSON/XML file (for inbound EDI) to use as a target for the mapping.

" + "documentation":"

Provide the contents of a sample X12 EDI file, either in JSON or XML format, to use as a target for the mapping.

" }, "mappingType":{ "shape":"MappingType", @@ -1618,6 +1632,16 @@ } } }, + "InboundEdiOptions":{ + "type":"structure", + "members":{ + "x12":{ + "shape":"X12InboundEdiOptions", + "documentation":"

A structure that contains X12-specific options for processing inbound X12 EDI files.

" + } + }, + "documentation":"

Contains options for processing inbound EDI files. These options allow for customizing how incoming EDI documents are processed.

" + }, "InputConversion":{ "type":"structure", "required":["fromFormat"], @@ -1629,6 +1653,10 @@ "formatOptions":{ "shape":"FormatOptions", "documentation":"

A structure that contains the formatting options for an inbound transformer.

" + }, + "advancedOptions":{ + "shape":"AdvancedOptions", + "documentation":"

Specifies advanced options for the input conversion process. These options provide additional control over how EDI files are processed during transformation.

" } }, "documentation":"

Contains the input formatting options for an inbound transformer (takes an X12-formatted EDI document as input and converts it to JSON or XML.

" @@ -1678,6 +1706,19 @@ "type":"list", "member":{"shape":"SampleDocumentKeys"} }, + "LineLength":{ + "type":"integer", + "box":true, + "min":1 + }, + "LineTerminator":{ + "type":"string", + "enum":[ + "CRLF", + "LF", + "CR" + ] + }, "ListCapabilitiesRequest":{ "type":"structure", "members":{ @@ -1904,6 +1945,10 @@ "max":2048, "min":1 }, + "ParsedSplitFileContentsList":{ + "type":"list", + "member":{"shape":"String"} + }, "PartnerName":{ "type":"string", "max":254, @@ -2162,6 +2207,24 @@ } } }, + "StartingFunctionalGroupControlNumber":{ + "type":"integer", + "box":true, + "max":999999999, + "min":1 + }, + "StartingInterchangeControlNumber":{ + "type":"integer", + "box":true, + "max":999999999, + "min":1 + }, + "StartingTransactionSetControlNumber":{ + "type":"integer", + "box":true, + "max":999999999, + "min":1 + }, "String":{"type":"string"}, "Tag":{ "type":"structure", @@ -2315,6 +2378,10 @@ "ediType":{ "shape":"EdiType", "documentation":"

Specifies the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents.

" + }, + "advancedOptions":{ + "shape":"AdvancedOptions", + "documentation":"

Specifies advanced options for parsing the input EDI file. These options allow for more granular control over the parsing process, including split options for X12 files.

" } } }, @@ -2325,6 +2392,10 @@ "parsedFileContent":{ "shape":"String", "documentation":"

Returns the contents of the input file being tested, parsed according to the specified EDI (electronic data interchange) type.

" + }, + "parsedSplitFileContents":{ + "shape":"ParsedSplitFileContentsList", + "documentation":"

Returns an array of parsed file contents when the input file is split according to the specified split options. Each element in the array represents a separate split file's parsed content.

" } } }, @@ -2849,12 +2920,67 @@ "type":"list", "member":{"shape":"String"} }, + "WrapFormat":{ + "type":"string", + "enum":[ + "SEGMENT", + "ONE_LINE", + "LINE_LENGTH" + ] + }, + "WrapOptions":{ + "type":"structure", + "required":["wrapBy"], + "members":{ + "wrapBy":{ + "shape":"WrapFormat", + "documentation":"

Specifies the method used for wrapping lines in the EDI output. Valid values:

  • SEGMENT: Wraps by segment.

  • ONE_LINE: Indicates that the entire content is on a single line.

    When you specify ONE_LINE, do not provide either the line length nor the line terminator value.

  • LINE_LENGTH: Wraps by character count, as specified by lineLength value.

" + }, + "lineTerminator":{ + "shape":"LineTerminator", + "documentation":"

Specifies the character sequence used to terminate lines when wrapping. Valid values:

  • CRLF: carriage return and line feed

  • LF: line feed)

  • CR: carriage return

" + }, + "lineLength":{ + "shape":"LineLength", + "documentation":"

Specifies the maximum length of a line before wrapping occurs. This value is used when wrapBy is set to LINE_LENGTH.

" + } + }, + "documentation":"

Contains options for wrapping (line folding) in X12 EDI files. Wrapping controls how long lines are handled in the EDI output.

" + }, + "X12AcknowledgmentOptions":{ + "type":"structure", + "required":[ + "functionalAcknowledgment", + "technicalAcknowledgment" + ], + "members":{ + "functionalAcknowledgment":{ + "shape":"X12FunctionalAcknowledgment", + "documentation":"

Specifies whether functional acknowledgments (997/999) should be generated for incoming X12 transactions. Valid values are DO_NOT_GENERATE, GENERATE_ALL_SEGMENTS and GENERATE_WITHOUT_TRANSACTION_SET_RESPONSE_LOOP.

If you choose GENERATE_WITHOUT_TRANSACTION_SET_RESPONSE_LOOP, Amazon Web Services B2B Data Interchange skips the AK2_Loop when generating an acknowledgment document.

" + }, + "technicalAcknowledgment":{ + "shape":"X12TechnicalAcknowledgment", + "documentation":"

Specifies whether technical acknowledgments (TA1) should be generated for incoming X12 interchanges. Valid values are DO_NOT_GENERATE and GENERATE_ALL_SEGMENTS and.

" + } + }, + "documentation":"

Contains options for configuring X12 acknowledgments. These options control how functional and technical acknowledgments are handled.

" + }, "X12AcknowledgmentRequestedCode":{ "type":"string", "max":1, "min":1, "pattern":"[a-zA-Z0-9]*" }, + "X12AdvancedOptions":{ + "type":"structure", + "members":{ + "splitOptions":{ + "shape":"X12SplitOptions", + "documentation":"

Specifies options for splitting X12 EDI files. These options control how large X12 files are divided into smaller, more manageable units.

" + } + }, + "documentation":"

Contains advanced options specific to X12 EDI processing, such as splitting large X12 files into smaller units.

" + }, "X12ApplicationReceiverCode":{ "type":"string", "max":15, @@ -2873,6 +2999,24 @@ "min":1, "pattern":"[!&'()*+,\\-./:;?=%@\\[\\]_{}|<>~^`\"]" }, + "X12ControlNumbers":{ + "type":"structure", + "members":{ + "startingInterchangeControlNumber":{ + "shape":"StartingInterchangeControlNumber", + "documentation":"

Specifies the starting interchange control number (ISA13) to use for X12 EDI generation. This number is incremented for each new interchange. For the ISA (interchange) envelope, Amazon Web Services B2B Data Interchange generates an interchange control number that is unique for the ISA05 and ISA06 (sender) & ISA07 and ISA08 (receiver) combination.

" + }, + "startingFunctionalGroupControlNumber":{ + "shape":"StartingFunctionalGroupControlNumber", + "documentation":"

Specifies the starting functional group control number (GS06) to use for X12 EDI generation. This number is incremented for each new functional group. For the GS (functional group) envelope, Amazon Web Services B2B Data Interchange generates a functional group control number that is unique to the sender ID, receiver ID, and functional identifier code combination.

" + }, + "startingTransactionSetControlNumber":{ + "shape":"StartingTransactionSetControlNumber", + "documentation":"

Specifies the starting transaction set control number (ST02) to use for X12 EDI generation. This number is incremented for each new transaction set.

" + } + }, + "documentation":"

Contains configuration for X12 control numbers used in X12 EDI generation. Control numbers are used to uniquely identify interchanges, functional groups, and transaction sets.

" + }, "X12DataElementSeparator":{ "type":"string", "max":1, @@ -2917,10 +3061,19 @@ "common":{ "shape":"X12OutboundEdiHeaders", "documentation":"

A container for the X12 outbound EDI headers.

" - } + }, + "wrapOptions":{"shape":"WrapOptions"} }, "documentation":"

A wrapper structure for an X12 definition object.

the X12 envelope ensures the integrity of the data and the efficiency of the information exchange. The X12 message structure has hierarchical levels. From highest to the lowest, they are:

  • Interchange Envelope

  • Functional Group

  • Transaction Set

" }, + "X12FunctionalAcknowledgment":{ + "type":"string", + "enum":[ + "DO_NOT_GENERATE", + "GENERATE_ALL_SEGMENTS", + "GENERATE_WITHOUT_TRANSACTION_SET_RESPONSE_LOOP" + ] + }, "X12FunctionalGroupHeaders":{ "type":"structure", "members":{ @@ -2939,12 +3092,31 @@ }, "documentation":"

Part of the X12 message structure. These are the functional group headers for the X12 EDI object.

" }, + "X12GS05TimeFormat":{ + "type":"string", + "documentation":"

Specifies the time format in the GS05 element (time) of the functional group header. The following formats use 24-hour clock time:

  • HHMM - Hours and minutes

  • HHMMSS - Hours, minutes, and seconds

  • HHMMSSDD - Hours, minutes, seconds, and decimal seconds

Where:

  • HH - Hours (00-23)

  • MM - Minutes (00-59)

  • SS - Seconds (00-59)

  • DD - Hundredths of seconds (00-99)

", + "enum":[ + "HHMM", + "HHMMSS", + "HHMMSSDD" + ] + }, "X12IdQualifier":{ "type":"string", "max":2, "min":2, "pattern":"[a-zA-Z0-9]*" }, + "X12InboundEdiOptions":{ + "type":"structure", + "members":{ + "acknowledgmentOptions":{ + "shape":"X12AcknowledgmentOptions", + "documentation":"

Specifies acknowledgment options for inbound X12 EDI files. These options control how functional and technical acknowledgments are handled.

" + } + }, + "documentation":"

Contains options specific to processing inbound X12 EDI files.

" + }, "X12InterchangeControlHeaders":{ "type":"structure", "members":{ @@ -2997,7 +3169,12 @@ "validateEdi":{ "shape":"X12ValidateEdi", "documentation":"

Specifies whether or not to validate the EDI for this X12 object: TRUE or FALSE.

" - } + }, + "controlNumbers":{ + "shape":"X12ControlNumbers", + "documentation":"

Specifies control number configuration for outbound X12 EDI headers. These settings determine the starting values for interchange, functional group, and transaction set control numbers.

" + }, + "gs05TimeFormat":{"shape":"X12GS05TimeFormat"} }, "documentation":"

A structure containing the details for an outbound EDI object.

" }, @@ -3030,6 +3207,31 @@ "min":15, "pattern":"[a-zA-Z0-9 ]*" }, + "X12SplitBy":{ + "type":"string", + "enum":[ + "NONE", + "TRANSACTION" + ] + }, + "X12SplitOptions":{ + "type":"structure", + "required":["splitBy"], + "members":{ + "splitBy":{ + "shape":"X12SplitBy", + "documentation":"

Specifies the method used to split X12 EDI files. Valid values include TRANSACTION (split by individual transaction sets), or NONE (no splitting).

" + } + }, + "documentation":"

Contains options for splitting X12 EDI files into smaller units. This is useful for processing large EDI files more efficiently.

" + }, + "X12TechnicalAcknowledgment":{ + "type":"string", + "enum":[ + "DO_NOT_GENERATE", + "GENERATE_ALL_SEGMENTS" + ] + }, "X12TransactionSet":{ "type":"string", "enum":[ diff --git a/services/b2bi/src/main/resources/codegen-resources/waiters-2.json b/services/b2bi/src/main/resources/codegen-resources/waiters-2.json new file mode 100644 index 000000000000..35d86981d1c0 --- /dev/null +++ b/services/b2bi/src/main/resources/codegen-resources/waiters-2.json @@ -0,0 +1,21 @@ +{ + "version" : 2, + "waiters" : { + "TransformerJobSucceeded" : { + "delay" : 10, + "maxAttempts" : 12, + "operation" : "GetTransformerJob", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "succeeded" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "failed" + } ] + } + } +} \ No newline at end of file diff --git a/services/backup/pom.xml b/services/backup/pom.xml index 7cd79339397c..27a34e03bcff 100644 --- a/services/backup/pom.xml +++ b/services/backup/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT backup AWS Java SDK :: Services :: Backup diff --git a/services/backupgateway/pom.xml b/services/backupgateway/pom.xml index b73cd18e11f2..ab2039d0c89e 100644 --- a/services/backupgateway/pom.xml +++ b/services/backupgateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT backupgateway AWS Java SDK :: Services :: Backup Gateway diff --git a/services/backupsearch/pom.xml b/services/backupsearch/pom.xml index 332782489bdb..ca942b97fbcc 100644 --- a/services/backupsearch/pom.xml +++ b/services/backupsearch/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT backupsearch AWS Java SDK :: Services :: Backup Search diff --git a/services/batch/pom.xml b/services/batch/pom.xml index fdcdb83a6ad9..f1299b4fdf91 100644 --- a/services/batch/pom.xml +++ b/services/batch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT batch AWS Java SDK :: Services :: AWS Batch diff --git a/services/bcmdataexports/pom.xml b/services/bcmdataexports/pom.xml index 3e4cdccb7289..5337dd069563 100644 --- a/services/bcmdataexports/pom.xml +++ b/services/bcmdataexports/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bcmdataexports AWS Java SDK :: Services :: BCM Data Exports diff --git a/services/bcmpricingcalculator/pom.xml b/services/bcmpricingcalculator/pom.xml index 0b872a861cb4..d75d6a09cba8 100644 --- a/services/bcmpricingcalculator/pom.xml +++ b/services/bcmpricingcalculator/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bcmpricingcalculator AWS Java SDK :: Services :: BCM Pricing Calculator diff --git a/services/bedrock/pom.xml b/services/bedrock/pom.xml index 6abe088a644a..e95bdc24f73e 100644 --- a/services/bedrock/pom.xml +++ b/services/bedrock/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrock AWS Java SDK :: Services :: Bedrock diff --git a/services/bedrock/src/main/resources/codegen-resources/customization.config b/services/bedrock/src/main/resources/codegen-resources/customization.config index e824e95e8fbd..42aa381cf2ea 100644 --- a/services/bedrock/src/main/resources/codegen-resources/customization.config +++ b/services/bedrock/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "enableGenerateCompiledEndpointRules": true + "enableGenerateCompiledEndpointRules": true, + "enableEnvironmentBearerToken": true } diff --git a/services/bedrock/src/main/resources/codegen-resources/service-2.json b/services/bedrock/src/main/resources/codegen-resources/service-2.json index 4ff416574604..4282efe6e6af 100644 --- a/services/bedrock/src/main/resources/codegen-resources/service-2.json +++ b/services/bedrock/src/main/resources/codegen-resources/service-2.json @@ -2,7 +2,10 @@ "version":"2.0", "metadata":{ "apiVersion":"2023-04-20", - "auth":["aws.auth#sigv4"], + "auth":[ + "aws.auth#sigv4", + "smithy.api#httpBearerAuth" + ], "endpointPrefix":"bedrock", "protocol":"rest-json", "protocols":["rest-json"], @@ -1325,6 +1328,15 @@ "max":2048, "min":0 }, + "AttributeType":{ + "type":"string", + "enum":[ + "STRING", + "NUMBER", + "BOOLEAN", + "STRING_LIST" + ] + }, "AuthorizationStatus":{ "type":"string", "enum":[ @@ -1498,6 +1510,12 @@ "min":0, "pattern":"[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}|)" }, + "BedrockRerankingModelArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/(.*))?" + }, "Boolean":{ "type":"boolean", "box":true @@ -3228,6 +3246,29 @@ }, "documentation":"

The configuration of the external source wrapper object in the retrieveAndGenerate function.

" }, + "FieldForReranking":{ + "type":"structure", + "required":["fieldName"], + "members":{ + "fieldName":{ + "shape":"FieldForRerankingFieldNameString", + "documentation":"

The name of the metadata field to be used during the reranking process.

" + } + }, + "documentation":"

Specifies a field to be used during the reranking process in a Knowledge Base vector search. This structure identifies metadata fields that should be considered when reordering search results to improve relevance.

" + }, + "FieldForRerankingFieldNameString":{ + "type":"string", + "max":2000, + "min":1 + }, + "FieldsForReranking":{ + "type":"list", + "member":{"shape":"FieldForReranking"}, + "max":100, + "min":1, + "sensitive":true + }, "FilterAttribute":{ "type":"structure", "required":[ @@ -5687,6 +5728,24 @@ "min":1, "sensitive":true }, + "ImplicitFilterConfiguration":{ + "type":"structure", + "required":[ + "metadataAttributes", + "modelArn" + ], + "members":{ + "metadataAttributes":{ + "shape":"MetadataAttributeSchemaList", + "documentation":"

A list of metadata attribute schemas that define the structure and properties of metadata fields used for implicit filtering. Each attribute defines a key, type, and optional description.

" + }, + "modelArn":{ + "shape":"BedrockModelArn", + "documentation":"

The Amazon Resource Name (ARN) of the foundation model used for implicit filtering. This model processes the query to extract relevant filtering criteria.

" + } + }, + "documentation":"

Configuration for implicit filtering in Knowledge Base vector searches. Implicit filtering allows you to automatically filter search results based on metadata attributes without requiring explicit filter expressions in each query.

" + }, "ImportedModelArn":{ "type":"string", "max":1011, @@ -6058,6 +6117,14 @@ "filter":{ "shape":"RetrievalFilter", "documentation":"

Specifies the filters to use on the metadata fields in the knowledge base data sources before returning results.

" + }, + "implicitFilterConfiguration":{ + "shape":"ImplicitFilterConfiguration", + "documentation":"

Configuration for implicit filtering in Knowledge Base vector searches. This allows the system to automatically apply filters based on the query context without requiring explicit filter expressions.

" + }, + "rerankingConfiguration":{ + "shape":"VectorSearchRerankingConfiguration", + "documentation":"

Configuration for reranking search results in Knowledge Base vector searches. Reranking improves search relevance by reordering initial vector search results using more sophisticated relevance models.

" } }, "documentation":"

The configuration details for returning the results from the knowledge base vector search.

" @@ -7024,6 +7091,63 @@ "min":0, "sensitive":true }, + "MetadataAttributeSchema":{ + "type":"structure", + "required":[ + "key", + "type", + "description" + ], + "members":{ + "key":{ + "shape":"MetadataAttributeSchemaKeyString", + "documentation":"

The unique identifier for the metadata attribute. This key is used to reference the attribute in filter expressions and reranking configurations.

" + }, + "type":{ + "shape":"AttributeType", + "documentation":"

The data type of the metadata attribute. The type determines how the attribute can be used in filter expressions and reranking.

" + }, + "description":{ + "shape":"MetadataAttributeSchemaDescriptionString", + "documentation":"

An optional description of the metadata attribute that provides additional context about its purpose and usage.

" + } + }, + "documentation":"

Defines the schema for a metadata attribute used in Knowledge Base vector searches. Metadata attributes provide additional context for documents and can be used for filtering and reranking search results.

", + "sensitive":true + }, + "MetadataAttributeSchemaDescriptionString":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\s\\S]+" + }, + "MetadataAttributeSchemaKeyString":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\s\\S]+" + }, + "MetadataAttributeSchemaList":{ + "type":"list", + "member":{"shape":"MetadataAttributeSchema"}, + "max":25, + "min":1 + }, + "MetadataConfigurationForReranking":{ + "type":"structure", + "required":["selectionMode"], + "members":{ + "selectionMode":{ + "shape":"RerankingMetadataSelectionMode", + "documentation":"

The mode for selecting which metadata fields to include in the reranking process. Valid values are ALL (use all available metadata fields) or SELECTIVE (use only specified fields).

" + }, + "selectiveModeConfiguration":{ + "shape":"RerankingMetadataSelectiveModeConfiguration", + "documentation":"

Configuration for selective mode, which allows you to explicitly include or exclude specific metadata fields during reranking. This is only used when selectionMode is set to SELECTIVE.

" + } + }, + "documentation":"

Configuration for how metadata should be used during the reranking process in Knowledge Base vector searches. This determines which metadata fields are included or excluded when reordering search results.

" + }, "MetricFloat":{ "type":"float", "box":true @@ -8071,6 +8195,28 @@ "min":0, "pattern":"[a-zA-Z0-9\\s._:/=+$@-]{0,256}" }, + "RerankingMetadataSelectionMode":{ + "type":"string", + "enum":[ + "SELECTIVE", + "ALL" + ] + }, + "RerankingMetadataSelectiveModeConfiguration":{ + "type":"structure", + "members":{ + "fieldsToInclude":{ + "shape":"FieldsForReranking", + "documentation":"

A list of metadata field names to explicitly include in the reranking process. Only these fields will be considered when reordering search results. This parameter cannot be used together with fieldsToExclude.

" + }, + "fieldsToExclude":{ + "shape":"FieldsForReranking", + "documentation":"

A list of metadata field names to explicitly exclude from the reranking process. All metadata fields except these will be considered when reordering search results. This parameter cannot be used together with fieldsToInclude.

" + } + }, + "documentation":"

Configuration for selectively including or excluding metadata fields during the reranking process. This allows you to control which metadata attributes are considered when reordering search results.

", + "union":true + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -8938,6 +9084,65 @@ }, "documentation":"

Describes the validity terms.

" }, + "VectorSearchBedrockRerankingConfiguration":{ + "type":"structure", + "required":["modelConfiguration"], + "members":{ + "modelConfiguration":{ + "shape":"VectorSearchBedrockRerankingModelConfiguration", + "documentation":"

Configuration for the Amazon Bedrock foundation model used for reranking. This includes the model ARN and any additional request fields required by the model.

" + }, + "numberOfRerankedResults":{ + "shape":"VectorSearchBedrockRerankingConfigurationNumberOfRerankedResultsInteger", + "documentation":"

The maximum number of results to rerank. This limits how many of the initial vector search results will be processed by the reranking model. A smaller number improves performance but may exclude potentially relevant results.

" + }, + "metadataConfiguration":{ + "shape":"MetadataConfigurationForReranking", + "documentation":"

Configuration for how document metadata should be used during the reranking process. This determines which metadata fields are included when reordering search results.

" + } + }, + "documentation":"

Configuration for using Amazon Bedrock foundation models to rerank Knowledge Base vector search results. This enables more sophisticated relevance ranking using large language models.

" + }, + "VectorSearchBedrockRerankingConfigurationNumberOfRerankedResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "VectorSearchBedrockRerankingModelConfiguration":{ + "type":"structure", + "required":["modelArn"], + "members":{ + "modelArn":{ + "shape":"BedrockRerankingModelArn", + "documentation":"

The Amazon Resource Name (ARN) of the foundation model to use for reranking. This model processes the query and search results to determine a more relevant ordering.

" + }, + "additionalModelRequestFields":{ + "shape":"AdditionalModelRequestFields", + "documentation":"

A list of additional fields to include in the model request during reranking. These fields provide extra context or configuration options specific to the selected foundation model.

" + } + }, + "documentation":"

Configuration for the Amazon Bedrock foundation model used for reranking vector search results. This specifies which model to use and any additional parameters required by the model.

" + }, + "VectorSearchRerankingConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{ + "shape":"VectorSearchRerankingConfigurationType", + "documentation":"

The type of reranking to apply to vector search results. Currently, the only supported value is BEDROCK, which uses Amazon Bedrock foundation models for reranking.

" + }, + "bedrockRerankingConfiguration":{ + "shape":"VectorSearchBedrockRerankingConfiguration", + "documentation":"

Configuration for using Amazon Bedrock foundation models to rerank search results. This is required when the reranking type is set to BEDROCK.

" + } + }, + "documentation":"

Configuration for reranking vector search results to improve relevance. Reranking applies additional relevance models to reorder the initial vector search results based on more sophisticated criteria.

" + }, + "VectorSearchRerankingConfigurationType":{ + "type":"string", + "enum":["BEDROCK_RERANKING_MODEL"] + }, "VpcConfig":{ "type":"structure", "required":[ diff --git a/services/bedrockagent/pom.xml b/services/bedrockagent/pom.xml index e49ead76a7a2..bf4c859fe183 100644 --- a/services/bedrockagent/pom.xml +++ b/services/bedrockagent/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrockagent AWS Java SDK :: Services :: Bedrock Agent diff --git a/services/bedrockagentruntime/pom.xml b/services/bedrockagentruntime/pom.xml index 091784237806..0a5264aa552f 100644 --- a/services/bedrockagentruntime/pom.xml +++ b/services/bedrockagentruntime/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrockagentruntime AWS Java SDK :: Services :: Bedrock Agent Runtime diff --git a/services/bedrockdataautomation/pom.xml b/services/bedrockdataautomation/pom.xml index e29ac4d5b327..f6b89102f03a 100644 --- a/services/bedrockdataautomation/pom.xml +++ b/services/bedrockdataautomation/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrockdataautomation AWS Java SDK :: Services :: Bedrock Data Automation diff --git a/services/bedrockdataautomationruntime/pom.xml b/services/bedrockdataautomationruntime/pom.xml index 6796b63200b0..3b7de00ee73c 100644 --- a/services/bedrockdataautomationruntime/pom.xml +++ b/services/bedrockdataautomationruntime/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrockdataautomationruntime AWS Java SDK :: Services :: Bedrock Data Automation Runtime diff --git a/services/bedrockruntime/pom.xml b/services/bedrockruntime/pom.xml index 412d27d7b0e5..64c8b74be456 100644 --- a/services/bedrockruntime/pom.xml +++ b/services/bedrockruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT bedrockruntime AWS Java SDK :: Services :: Bedrock Runtime diff --git a/services/bedrockruntime/src/main/resources/codegen-resources/customization.config b/services/bedrockruntime/src/main/resources/codegen-resources/customization.config index e824e95e8fbd..42aa381cf2ea 100644 --- a/services/bedrockruntime/src/main/resources/codegen-resources/customization.config +++ b/services/bedrockruntime/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "enableGenerateCompiledEndpointRules": true + "enableGenerateCompiledEndpointRules": true, + "enableEnvironmentBearerToken": true } diff --git a/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json b/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json index d38e1adb49af..42c931b1a59d 100644 --- a/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json +++ b/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json @@ -2,7 +2,10 @@ "version":"2.0", "metadata":{ "apiVersion":"2023-09-30", - "auth":["aws.auth#sigv4"], + "auth":[ + "aws.auth#sigv4", + "smithy.api#httpBearerAuth" + ], "endpointPrefix":"bedrock-runtime", "protocol":"rest-json", "protocolSettings":{"h2":"optional"}, @@ -468,6 +471,134 @@ "type":"string", "enum":["default"] }, + "Citation":{ + "type":"structure", + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title or identifier of the source document being cited.

" + }, + "sourceContent":{ + "shape":"CitationSourceContentList", + "documentation":"

The specific content from the source document that was referenced or cited in the generated response.

" + }, + "location":{ + "shape":"CitationLocation", + "documentation":"

The precise location within the source document where the cited content can be found, including character positions, page numbers, or chunk identifiers.

" + } + }, + "documentation":"

Contains information about a citation that references a specific source document. Citations provide traceability between the model's generated response and the source documents that informed that response.

" + }, + "CitationGeneratedContent":{ + "type":"structure", + "members":{ + "text":{ + "shape":"String", + "documentation":"

The text content that was generated by the model and is supported by the associated citation.

" + } + }, + "documentation":"

Contains the generated text content that corresponds to or is supported by a citation from a source document.

", + "union":true + }, + "CitationGeneratedContentList":{ + "type":"list", + "member":{"shape":"CitationGeneratedContent"} + }, + "CitationLocation":{ + "type":"structure", + "members":{ + "documentChar":{ + "shape":"DocumentCharLocation", + "documentation":"

The character-level location within the document where the cited content is found.

" + }, + "documentPage":{ + "shape":"DocumentPageLocation", + "documentation":"

The page-level location within the document where the cited content is found.

" + }, + "documentChunk":{ + "shape":"DocumentChunkLocation", + "documentation":"

The chunk-level location within the document where the cited content is found, typically used for documents that have been segmented into logical chunks.

" + } + }, + "documentation":"

Specifies the precise location within a source document where cited content can be found. This can include character-level positions, page numbers, or document chunks depending on the document type and indexing method.

", + "union":true + }, + "CitationSourceContent":{ + "type":"structure", + "members":{ + "text":{ + "shape":"String", + "documentation":"

The text content from the source document that is being cited.

" + } + }, + "documentation":"

Contains the actual text content from a source document that is being cited or referenced in the model's response.

", + "union":true + }, + "CitationSourceContentDelta":{ + "type":"structure", + "members":{ + "text":{ + "shape":"String", + "documentation":"

An incremental update to the text content from the source document that is being cited.

" + } + }, + "documentation":"

Contains incremental updates to the source content text during streaming responses, allowing clients to build up the cited content progressively.

" + }, + "CitationSourceContentList":{ + "type":"list", + "member":{"shape":"CitationSourceContent"} + }, + "CitationSourceContentListDelta":{ + "type":"list", + "member":{"shape":"CitationSourceContentDelta"} + }, + "Citations":{ + "type":"list", + "member":{"shape":"Citation"} + }, + "CitationsConfig":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether document citations should be included in the model's response. When set to true, the model can generate citations that reference the source documents used to inform the response.

" + } + }, + "documentation":"

Configuration settings for enabling and controlling document citations in Converse API responses. When enabled, the model can include citation information that links generated content back to specific source documents.

" + }, + "CitationsContentBlock":{ + "type":"structure", + "members":{ + "content":{ + "shape":"CitationGeneratedContentList", + "documentation":"

The generated content that is supported by the associated citations.

" + }, + "citations":{ + "shape":"Citations", + "documentation":"

An array of citations that reference the source documents used to generate the associated content.

" + } + }, + "documentation":"

A content block that contains both generated text and associated citation information. This block type is returned when document citations are enabled, providing traceability between the generated content and the source documents that informed the response.

" + }, + "CitationsDelta":{ + "type":"structure", + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title or identifier of the source document being cited.

" + }, + "sourceContent":{ + "shape":"CitationSourceContentListDelta", + "documentation":"

The specific content from the source document that was referenced or cited in the generated response.

" + }, + "location":{ + "shape":"CitationLocation", + "documentation":"

Specifies the precise location within a source document where cited content can be found. This can include character-level positions, page numbers, or document chunks depending on the document type and indexing method.

" + } + }, + "documentation":"

Contains incremental updates to citation information during streaming responses. This allows clients to build up citation data progressively as the response is generated.

" + }, "ConflictException":{ "type":"structure", "members":{ @@ -509,7 +640,7 @@ }, "guardContent":{ "shape":"GuardrailConverseContentBlock", - "documentation":"

Contains the content to assess with the guardrail. If you don't specify guardContent in a call to the Converse API, the guardrail (if passed in the Converse API) assesses the entire message.

For more information, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide.

 </p> 
" + "documentation":"

Contains the content to assess with the guardrail. If you don't specify guardContent in a call to the Converse API, the guardrail (if passed in the Converse API) assesses the entire message.

For more information, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide.

" }, "cachePoint":{ "shape":"CachePointBlock", @@ -518,6 +649,10 @@ "reasoningContent":{ "shape":"ReasoningContentBlock", "documentation":"

Contains content regarding the reasoning that is carried out by the model. Reasoning refers to a Chain of Thought (CoT) that the model generates to enhance the accuracy of its final response.

" + }, + "citationsContent":{ + "shape":"CitationsContentBlock", + "documentation":"

A content block that contains both generated text and associated citation information, providing traceability between the response and source documents.

" } }, "documentation":"

A block of content for a message that you pass to, or receive from, a model with the Converse or ConverseStream API operations.

", @@ -537,6 +672,10 @@ "reasoningContent":{ "shape":"ReasoningContentBlockDelta", "documentation":"

Contains content regarding the reasoning that is carried out by the model. Reasoning refers to a Chain of Thought (CoT) that the model generates to enhance the accuracy of its final response.

" + }, + "citation":{ + "shape":"CitationsDelta", + "documentation":"

Incremental citation information that is streamed as part of the response generation process.

" } }, "documentation":"

A block of content in a streaming response.

", @@ -943,7 +1082,6 @@ "DocumentBlock":{ "type":"structure", "required":[ - "format", "name", "source" ], @@ -959,6 +1097,14 @@ "source":{ "shape":"DocumentSource", "documentation":"

Contains the content of the document.

" + }, + "context":{ + "shape":"String", + "documentation":"

Contextual information about how the document should be processed or interpreted by the model when generating citations.

" + }, + "citations":{ + "shape":"CitationsConfig", + "documentation":"

Configuration settings that control how citations should be generated for this specific document.

" } }, "documentation":"

A document to include in a message.

" @@ -968,6 +1114,87 @@ "max":200, "min":1 }, + "DocumentCharLocation":{ + "type":"structure", + "members":{ + "documentIndex":{ + "shape":"DocumentCharLocationDocumentIndexInteger", + "documentation":"

The index of the document within the array of documents provided in the request.

" + }, + "start":{ + "shape":"DocumentCharLocationStartInteger", + "documentation":"

The starting character position of the cited content within the document.

" + }, + "end":{ + "shape":"DocumentCharLocationEndInteger", + "documentation":"

The ending character position of the cited content within the document.

" + } + }, + "documentation":"

Specifies a character-level location within a document, providing precise positioning information for cited content using start and end character indices.

" + }, + "DocumentCharLocationDocumentIndexInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentCharLocationEndInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentCharLocationStartInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentChunkLocation":{ + "type":"structure", + "members":{ + "documentIndex":{ + "shape":"DocumentChunkLocationDocumentIndexInteger", + "documentation":"

The index of the document within the array of documents provided in the request.

" + }, + "start":{ + "shape":"DocumentChunkLocationStartInteger", + "documentation":"

The starting chunk identifier or index of the cited content within the document.

" + }, + "end":{ + "shape":"DocumentChunkLocationEndInteger", + "documentation":"

The ending chunk identifier or index of the cited content within the document.

" + } + }, + "documentation":"

Specifies a chunk-level location within a document, providing positioning information for cited content using logical document segments or chunks.

" + }, + "DocumentChunkLocationDocumentIndexInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentChunkLocationEndInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentChunkLocationStartInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentContentBlock":{ + "type":"structure", + "members":{ + "text":{ + "shape":"String", + "documentation":"

The text content of the document.

" + } + }, + "documentation":"

Contains the actual content of a document that can be processed by the model and potentially cited in the response.

", + "union":true + }, + "DocumentContentBlocks":{ + "type":"list", + "member":{"shape":"DocumentContentBlock"} + }, "DocumentFormat":{ "type":"string", "enum":[ @@ -982,6 +1209,39 @@ "md" ] }, + "DocumentPageLocation":{ + "type":"structure", + "members":{ + "documentIndex":{ + "shape":"DocumentPageLocationDocumentIndexInteger", + "documentation":"

The index of the document within the array of documents provided in the request.

" + }, + "start":{ + "shape":"DocumentPageLocationStartInteger", + "documentation":"

The starting page number of the cited content within the document.

" + }, + "end":{ + "shape":"DocumentPageLocationEndInteger", + "documentation":"

The ending page number of the cited content within the document.

" + } + }, + "documentation":"

Specifies a page-level location within a document, providing positioning information for cited content using page numbers.

" + }, + "DocumentPageLocationDocumentIndexInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentPageLocationEndInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DocumentPageLocationStartInteger":{ + "type":"integer", + "box":true, + "min":0 + }, "DocumentSource":{ "type":"structure", "members":{ @@ -992,6 +1252,14 @@ "s3Location":{ "shape":"S3Location", "documentation":"

The location of a document object in an Amazon S3 bucket. To see which models support S3 uploads, see Supported models and features for Converse.

" + }, + "text":{ + "shape":"String", + "documentation":"

The text content of the document source.

" + }, + "content":{ + "shape":"DocumentContentBlocks", + "documentation":"

The structured content of the document source, which may include various content blocks such as text, images, or other document elements.

" } }, "documentation":"

Contains the content of a document.

", @@ -2102,7 +2370,7 @@ }, "modelId":{ "shape":"InvokeModelIdentifier", - "documentation":"

The unique identifier of the model to invoke to run inference.

The modelId to provide depends on the type of model or throughput that you use:

", + "documentation":"

The unique identifier of the model to invoke to run inference.

The modelId to provide depends on the type of model or throughput that you use:

", "location":"uri", "locationName":"modelId" }, @@ -2258,7 +2526,7 @@ }, "modelId":{ "shape":"InvokeModelIdentifier", - "documentation":"

The unique identifier of the model to invoke to run inference.

The modelId to provide depends on the type of model or throughput that you use:

", + "documentation":"

The unique identifier of the model to invoke to run inference.

The modelId to provide depends on the type of model or throughput that you use:

", "location":"uri", "locationName":"modelId" }, diff --git a/services/billing/pom.xml b/services/billing/pom.xml index b7546e324bfc..7db1a153478a 100644 --- a/services/billing/pom.xml +++ b/services/billing/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT billing AWS Java SDK :: Services :: Billing diff --git a/services/billingconductor/pom.xml b/services/billingconductor/pom.xml index feac979b5864..ef21d4439e9f 100644 --- a/services/billingconductor/pom.xml +++ b/services/billingconductor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT billingconductor AWS Java SDK :: Services :: Billingconductor diff --git a/services/braket/pom.xml b/services/braket/pom.xml index d4cedfe1d144..ceb39a6c813a 100644 --- a/services/braket/pom.xml +++ b/services/braket/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT braket AWS Java SDK :: Services :: Braket diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml index 1e75bd863d49..49284bc63f02 100644 --- a/services/budgets/pom.xml +++ b/services/budgets/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT budgets AWS Java SDK :: Services :: AWS Budgets diff --git a/services/chatbot/pom.xml b/services/chatbot/pom.xml index 1ce4cef6fa28..bd30162cefc0 100644 --- a/services/chatbot/pom.xml +++ b/services/chatbot/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chatbot AWS Java SDK :: Services :: Chatbot diff --git a/services/chime/pom.xml b/services/chime/pom.xml index b714e4e69bba..f0a325ac72ef 100644 --- a/services/chime/pom.xml +++ b/services/chime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chime AWS Java SDK :: Services :: Chime diff --git a/services/chimesdkidentity/pom.xml b/services/chimesdkidentity/pom.xml index d98367e294cf..317649190033 100644 --- a/services/chimesdkidentity/pom.xml +++ b/services/chimesdkidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chimesdkidentity AWS Java SDK :: Services :: Chime SDK Identity diff --git a/services/chimesdkmediapipelines/pom.xml b/services/chimesdkmediapipelines/pom.xml index 145a47eccb31..7873d08b1ab9 100644 --- a/services/chimesdkmediapipelines/pom.xml +++ b/services/chimesdkmediapipelines/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chimesdkmediapipelines AWS Java SDK :: Services :: Chime SDK Media Pipelines diff --git a/services/chimesdkmeetings/pom.xml b/services/chimesdkmeetings/pom.xml index e8dee76eef1c..026de720cc79 100644 --- a/services/chimesdkmeetings/pom.xml +++ b/services/chimesdkmeetings/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chimesdkmeetings AWS Java SDK :: Services :: Chime SDK Meetings diff --git a/services/chimesdkmessaging/pom.xml b/services/chimesdkmessaging/pom.xml index 421fc05c38a3..48c797841497 100644 --- a/services/chimesdkmessaging/pom.xml +++ b/services/chimesdkmessaging/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chimesdkmessaging AWS Java SDK :: Services :: Chime SDK Messaging diff --git a/services/chimesdkvoice/pom.xml b/services/chimesdkvoice/pom.xml index 160d4ffdd994..3f47d58fc20d 100644 --- a/services/chimesdkvoice/pom.xml +++ b/services/chimesdkvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT chimesdkvoice AWS Java SDK :: Services :: Chime SDK Voice diff --git a/services/cleanrooms/pom.xml b/services/cleanrooms/pom.xml index 6adf0b9d2ebc..619ecee3c3e3 100644 --- a/services/cleanrooms/pom.xml +++ b/services/cleanrooms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cleanrooms AWS Java SDK :: Services :: Clean Rooms diff --git a/services/cleanroomsml/pom.xml b/services/cleanroomsml/pom.xml index 794693a1f9f6..da25c402d05e 100644 --- a/services/cleanroomsml/pom.xml +++ b/services/cleanroomsml/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cleanroomsml AWS Java SDK :: Services :: Clean Rooms ML diff --git a/services/cleanroomsml/src/main/resources/codegen-resources/paginators-1.json b/services/cleanroomsml/src/main/resources/codegen-resources/paginators-1.json index 4e90779d1908..dc9278dd214e 100644 --- a/services/cleanroomsml/src/main/resources/codegen-resources/paginators-1.json +++ b/services/cleanroomsml/src/main/resources/codegen-resources/paginators-1.json @@ -78,6 +78,12 @@ "limit_key": "maxResults", "result_key": "trainedModelInferenceJobs" }, + "ListTrainedModelVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "trainedModels" + }, "ListTrainedModels": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/cleanroomsml/src/main/resources/codegen-resources/service-2.json b/services/cleanroomsml/src/main/resources/codegen-resources/service-2.json index d9804c45da72..90a06c3fb1d4 100644 --- a/services/cleanroomsml/src/main/resources/codegen-resources/service-2.json +++ b/services/cleanroomsml/src/main/resources/codegen-resources/service-2.json @@ -22,10 +22,11 @@ }, "input":{"shape":"CancelTrainedModelRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Submits a request to cancel the trained model job.

", "idempotent":true @@ -39,10 +40,11 @@ }, "input":{"shape":"CancelTrainedModelInferenceJobRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Submits a request to cancel a trained model inference job.

", "idempotent":true @@ -57,8 +59,8 @@ "input":{"shape":"CreateAudienceModelRequest"}, "output":{"shape":"CreateAudienceModelResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ServiceQuotaExceededException"} @@ -76,8 +78,8 @@ "input":{"shape":"CreateConfiguredAudienceModelRequest"}, "output":{"shape":"CreateConfiguredAudienceModelResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ServiceQuotaExceededException"} @@ -95,8 +97,8 @@ "input":{"shape":"CreateConfiguredModelAlgorithmRequest"}, "output":{"shape":"CreateConfiguredModelAlgorithmResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ServiceQuotaExceededException"} ], @@ -113,10 +115,11 @@ "input":{"shape":"CreateConfiguredModelAlgorithmAssociationRequest"}, "output":{"shape":"CreateConfiguredModelAlgorithmAssociationResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Associates a configured model algorithm to a collaboration for use by any member of the collaboration.

", @@ -132,10 +135,11 @@ "input":{"shape":"CreateMLInputChannelRequest"}, "output":{"shape":"CreateMLInputChannelResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Provides the information to create an ML input channel. An ML input channel is the result of a query that can be used for ML modeling.

", @@ -151,10 +155,12 @@ "input":{"shape":"CreateTrainedModelRequest"}, "output":{"shape":"CreateTrainedModelResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"}, {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a trained model from an associated configured model algorithm using data from any member of the collaboration.

", @@ -170,8 +176,8 @@ "input":{"shape":"CreateTrainingDatasetRequest"}, "output":{"shape":"CreateTrainingDatasetResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"} ], "documentation":"

Defines the information necessary to create a training dataset. In Clean Rooms ML, the TrainingDataset is metadata that points to a Glue table, which is read only during AudienceModel creation.

", @@ -186,8 +192,8 @@ }, "input":{"shape":"DeleteAudienceGenerationJobRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -203,8 +209,8 @@ }, "input":{"shape":"DeleteAudienceModelRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -220,8 +226,8 @@ }, "input":{"shape":"DeleteConfiguredAudienceModelRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -253,8 +259,8 @@ }, "input":{"shape":"DeleteConfiguredModelAlgorithmRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -270,10 +276,11 @@ }, "input":{"shape":"DeleteConfiguredModelAlgorithmAssociationRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a configured model algorithm association.

", "idempotent":true @@ -289,7 +296,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a ML modeling configuration.

", "idempotent":true @@ -303,10 +311,11 @@ }, "input":{"shape":"DeleteMLInputChannelDataRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Provides the information necessary to delete an ML input channel.

", "idempotent":true @@ -320,12 +329,13 @@ }, "input":{"shape":"DeleteTrainedModelOutputRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], - "documentation":"

Deletes the output of a trained model.

", + "documentation":"

Deletes the model artifacts stored by the service.

", "idempotent":true }, "DeleteTrainingDataset":{ @@ -337,8 +347,8 @@ }, "input":{"shape":"DeleteTrainingDatasetRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -389,7 +399,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about the configured model algorithm association in a collaboration.

" }, @@ -405,7 +416,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a specific ML input channel in a collaboration.

" }, @@ -421,7 +433,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a trained model in a collaboration.

" }, @@ -485,7 +498,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a configured model algorithm association.

" }, @@ -501,7 +515,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a specific ML configuration.

" }, @@ -517,7 +532,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about an ML input channel.

" }, @@ -533,7 +549,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a trained model.

" }, @@ -549,7 +566,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns information about a trained model inference job.

" }, @@ -625,7 +643,8 @@ "output":{"shape":"ListCollaborationConfiguredModelAlgorithmAssociationsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of the configured model algorithm associations in a collaboration.

" }, @@ -640,7 +659,8 @@ "output":{"shape":"ListCollaborationMLInputChannelsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of the ML input channels in a collaboration.

" }, @@ -655,7 +675,8 @@ "output":{"shape":"ListCollaborationTrainedModelExportJobsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of the export jobs for a trained model in a collaboration.

" }, @@ -670,7 +691,8 @@ "output":{"shape":"ListCollaborationTrainedModelInferenceJobsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of trained model inference jobs in a specified collaboration.

" }, @@ -685,7 +707,8 @@ "output":{"shape":"ListCollaborationTrainedModelsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of the trained models in a collaboration.

" }, @@ -715,7 +738,8 @@ "output":{"shape":"ListConfiguredModelAlgorithmAssociationsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of configured model algorithm associations.

" }, @@ -745,7 +769,8 @@ "output":{"shape":"ListMLInputChannelsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of ML input channels.

" }, @@ -776,10 +801,28 @@ "output":{"shape":"ListTrainedModelInferenceJobsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of trained model inference jobs that match the request parameters.

" }, + "ListTrainedModelVersions":{ + "name":"ListTrainedModelVersions", + "http":{ + "method":"GET", + "requestUri":"/memberships/{membershipIdentifier}/trained-models/{trainedModelArn}/versions", + "responseCode":200 + }, + "input":{"shape":"ListTrainedModelVersionsRequest"}, + "output":{"shape":"ListTrainedModelVersionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a list of trained model versions for a specified trained model. This operation allows you to view all versions of a trained model, including information about their status and creation details. You can use this to track the evolution of your trained models and select specific versions for inference or further training.

" + }, "ListTrainedModels":{ "name":"ListTrainedModels", "http":{ @@ -791,7 +834,8 @@ "output":{"shape":"ListTrainedModelsResponse"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Returns a list of trained models.

" }, @@ -837,7 +881,8 @@ "input":{"shape":"PutMLConfigurationRequest"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Assigns information about an ML configuration.

", "idempotent":true @@ -851,8 +896,8 @@ }, "input":{"shape":"StartAudienceExportJobRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ServiceQuotaExceededException"} @@ -870,10 +915,11 @@ "input":{"shape":"StartAudienceGenerationJobRequest"}, "output":{"shape":"StartAudienceGenerationJobResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Information necessary to start the audience generation job.

", @@ -888,10 +934,11 @@ }, "input":{"shape":"StartTrainedModelExportJobRequest"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Provides the information necessary to start a trained model export job.

", "idempotent":true @@ -906,10 +953,11 @@ "input":{"shape":"StartTrainedModelInferenceJobRequest"}, "output":{"shape":"StartTrainedModelInferenceJobResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Defines the information necessary to begin a trained model inference job.

", @@ -958,8 +1006,8 @@ "input":{"shape":"UpdateConfiguredAudienceModelRequest"}, "output":{"shape":"UpdateConfiguredAudienceModelResponse"}, "errors":[ - {"shape":"ConflictException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], @@ -1348,6 +1396,12 @@ "documentation":"

The Amazon Resource Name (ARN) of the trained model job that you want to cancel.

", "location":"uri", "locationName":"trainedModelArn" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to cancel. This parameter allows you to specify which version of the trained model you want to cancel when multiple versions exist.

If versionIdentifier is not specified, the base model will be cancelled.

", + "location":"querystring", + "locationName":"versionIdentifier" } } }, @@ -1522,6 +1576,10 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model that is being exported.

" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model that was exported in this job.

" + }, "membershipIdentifier":{ "shape":"UUID", "documentation":"

The membership ID of the member that created the trained model export job.

" @@ -1568,6 +1626,10 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model that is used for the trained model inference job.

" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model that was used for inference in this job.

" + }, "collaborationIdentifier":{ "shape":"UUID", "documentation":"

The collaboration ID of the collaboration that contains the trained model inference job.

" @@ -1653,6 +1715,14 @@ "shape":"NameString", "documentation":"

The name of the trained model.

" }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of this trained model version.

" + }, + "incrementalTrainingDataChannels":{ + "shape":"IncrementalTrainingDataChannelsOutput", + "documentation":"

Information about the incremental training data channels used to create this version of the trained model.

" + }, "description":{ "shape":"ResourceDescription", "documentation":"

The description of the trained model.

" @@ -1817,7 +1887,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:(membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/)?configured-model-algorithm-association/[-a-zA-Z0-9_/.]+" + "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/configured-model-algorithm-association/[-a-zA-Z0-9_/.]+" }, "ConfiguredModelAlgorithmAssociationList":{ "type":"list", @@ -1937,7 +2007,7 @@ "members":{ "imageUri":{ "shape":"AlgorithmImage", - "documentation":"

The registry path of the docker image that contains the algorithm. Clean Rooms ML supports both registry/repository[:tag] and registry/repositry[@digest] image path formats. For more information about using images in Clean Rooms ML, see the Sagemaker API reference.

" + "documentation":"

The registry path of the docker image that contains the algorithm. Clean Rooms ML currently only supports the registry/repository[:tag] image path format. For more information about using images in Clean Rooms ML, see the Sagemaker API reference.

" }, "entrypoint":{ "shape":"ContainerEntrypoint", @@ -2271,9 +2341,17 @@ "shape":"StoppingCondition", "documentation":"

The criteria that is used to stop model training.

" }, + "incrementalTrainingDataChannels":{ + "shape":"IncrementalTrainingDataChannels", + "documentation":"

Specifies the incremental training data channels for the trained model.

Incremental training allows you to create a new trained model with updates without retraining from scratch. You can specify up to one incremental training data channel that references a previously trained model and its version.

Limit: Maximum of 20 channels total (including both incrementalTrainingDataChannels and dataChannels).

" + }, "dataChannels":{ "shape":"ModelTrainingDataChannels", - "documentation":"

Defines the data channels that are used as input for the trained model request.

" + "documentation":"

Defines the data channels that are used as input for the trained model request.

Limit: Maximum of 20 channels total (including both dataChannels and incrementalTrainingDataChannels).

" + }, + "trainingInputMode":{ + "shape":"TrainingInputMode", + "documentation":"

The input mode for accessing the training data. This parameter determines how the training data is made available to the training algorithm. Valid values are:

  • File - The training data is downloaded to the training instance and made available as files.

  • FastFile - The training data is streamed directly from Amazon S3 to the training algorithm, providing faster access for large datasets.

  • Pipe - The training data is streamed to the training algorithm using named pipes, which can improve performance for certain algorithms.

" }, "description":{ "shape":"ResourceDescription", @@ -2296,6 +2374,10 @@ "trainedModelArn":{ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model.

" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The unique version identifier assigned to the newly created trained model. This identifier can be used to reference this specific version of the trained model in subsequent operations such as inference jobs or incremental training.

The initial version identifier for the base version of the trained model is \"NULL\".

" } } }, @@ -2538,6 +2620,12 @@ "documentation":"

The membership ID of the member that is deleting the trained model output.

", "location":"uri", "locationName":"membershipIdentifier" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to delete. If not specified, the operation will delete the base version of the trained model. When specified, only the particular version will be deleted.

", + "location":"querystring", + "locationName":"versionIdentifier" } } }, @@ -2934,6 +3022,12 @@ "documentation":"

The collaboration ID that contains the trained model that you want to return information about.

", "location":"uri", "locationName":"collaborationIdentifier" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to retrieve. If not specified, the operation returns information about the latest version of the trained model.

", + "location":"querystring", + "locationName":"versionIdentifier" } } }, @@ -2963,6 +3057,14 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model.

" }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model. This unique identifier distinguishes this version from other versions of the same trained model.

" + }, + "incrementalTrainingDataChannels":{ + "shape":"IncrementalTrainingDataChannelsOutput", + "documentation":"

Information about the incremental training data channels used to create this version of the trained model. This includes details about the base model that was used for incremental training and the channel configuration.

" + }, "name":{ "shape":"NameString", "documentation":"

The name of the trained model.

" @@ -2984,6 +3086,10 @@ "shape":"ResourceConfig", "documentation":"

The EC2 resource configuration that was used to train this model.

" }, + "trainingInputMode":{ + "shape":"TrainingInputMode", + "documentation":"

The input mode that was used for accessing the training data when this trained model was created. This indicates how the training data was made available to the training algorithm.

" + }, "stoppingCondition":{ "shape":"StoppingCondition", "documentation":"

The stopping condition that determined when model training ended.

" @@ -3514,6 +3620,10 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) for the trained model that was used for the trained model inference job.

" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model used for this inference job. This identifies the specific version of the trained model that was used to generate the inference results.

" + }, "resourceConfig":{ "shape":"InferenceResourceConfig", "documentation":"

The resource configuration information for the trained model inference job.

" @@ -3591,6 +3701,12 @@ "documentation":"

The membership ID of the member that created the trained model that you are interested in.

", "location":"uri", "locationName":"membershipIdentifier" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to retrieve. If not specified, the operation returns information about the latest version of the trained model.

", + "location":"querystring", + "locationName":"versionIdentifier" } } }, @@ -3620,6 +3736,14 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model.

" }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model. This unique identifier distinguishes this version from other versions of the same trained model.

" + }, + "incrementalTrainingDataChannels":{ + "shape":"IncrementalTrainingDataChannelsOutput", + "documentation":"

Information about the incremental training data channels used to create this version of the trained model. This includes details about the base model that was used for incremental training and the channel configuration.

" + }, "name":{ "shape":"NameString", "documentation":"

The name of the trained model.

" @@ -3641,6 +3765,10 @@ "shape":"ResourceConfig", "documentation":"

The EC2 resource configuration that was used to create the trained model.

" }, + "trainingInputMode":{ + "shape":"TrainingInputMode", + "documentation":"

The input mode that was used for accessing the training data when this trained model was created. This indicates how the training data was made available to the training algorithm.

" + }, "stoppingCondition":{ "shape":"StoppingCondition", "documentation":"

The stopping condition that was used to terminate model training.

" @@ -3822,13 +3950,69 @@ "min":20, "pattern":"arn:aws[-a-z]*:iam::[0-9]{12}:role/.+" }, + "IncrementalTrainingDataChannel":{ + "type":"structure", + "required":[ + "trainedModelArn", + "channelName" + ], + "members":{ + "trainedModelArn":{ + "shape":"TrainedModelArn", + "documentation":"

The Amazon Resource Name (ARN) of the base trained model to use for incremental training. This model serves as the starting point for the incremental training process.

" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the base trained model to use for incremental training. If not specified, the latest version of the trained model is used.

" + }, + "channelName":{ + "shape":"ModelTrainingDataChannelName", + "documentation":"

The name of the incremental training data channel. This name is used to identify the channel during the training process and must be unique within the training job.

" + } + }, + "documentation":"

Defines an incremental training data channel that references a previously trained model. Incremental training allows you to update an existing trained model with new data, building upon the knowledge from a base model rather than training from scratch. This can significantly reduce training time and computational costs while improving model performance with additional data.

" + }, + "IncrementalTrainingDataChannelOutput":{ + "type":"structure", + "required":[ + "channelName", + "modelName" + ], + "members":{ + "channelName":{ + "shape":"ModelTrainingDataChannelName", + "documentation":"

The name of the incremental training data channel that was used.

" + }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model that was used for incremental training.

" + }, + "modelName":{ + "shape":"NameString", + "documentation":"

The name of the base trained model that was used for incremental training.

" + } + }, + "documentation":"

Contains information about an incremental training data channel that was used to create a trained model. This structure provides details about the base model and channel configuration used during incremental training.

" + }, + "IncrementalTrainingDataChannels":{ + "type":"list", + "member":{"shape":"IncrementalTrainingDataChannel"}, + "max":1, + "min":1 + }, + "IncrementalTrainingDataChannelsOutput":{ + "type":"list", + "member":{"shape":"IncrementalTrainingDataChannelOutput"}, + "max":1, + "min":1 + }, "InferenceContainerConfig":{ "type":"structure", "required":["imageUri"], "members":{ "imageUri":{ "shape":"AlgorithmImage", - "documentation":"

The registry path of the docker image that contains the inference algorithm. Clean Rooms ML supports both registry/repository[:tag] and registry/repositry[@digest] image path formats. For more information about using images in Clean Rooms ML, see the Sagemaker API reference.

" + "documentation":"

The registry path of the docker image that contains the inference algorithm. Clean Rooms ML currently only supports the registry/repository[:tag] image path format. For more information about using images in Clean Rooms ML, see the Sagemaker API reference.

" } }, "documentation":"

Provides configuration information for the inference container.

" @@ -4039,7 +4223,7 @@ }, "roleArn":{ "shape":"IamRoleArn", - "documentation":"

The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the dataSource field the input channel.

Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an AccessDeniedException error.

" + "documentation":"

The Amazon Resource Name (ARN) of the role used to run the query specified in the dataSource field of the input channel.

Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an AccessDeniedException error.

" } }, "documentation":"

Provides information about the data source that is used to create an ML input channel.

" @@ -4146,6 +4330,17 @@ "ml.r5.24xlarge" ] }, + "InternalServiceException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

An internal service error occurred. Retry your request. If the problem persists, contact AWS Support.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, "KmsKeyArn":{ "type":"string", "max":2048, @@ -4369,6 +4564,12 @@ "documentation":"

The Amazon Resource Name (ARN) of the trained model that was used to create the export jobs that you are interested in.

", "location":"uri", "locationName":"trainedModelArn" + }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to filter export jobs by. When specified, only export jobs for this specific version of the trained model are returned.

", + "location":"querystring", + "locationName":"trainedModelVersionIdentifier" } } }, @@ -4413,6 +4614,12 @@ "documentation":"

The Amazon Resource Name (ARN) of the trained model that was used to create the trained model inference jobs that you are interested in.

", "location":"querystring", "locationName":"trainedModelArn" + }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to filter inference jobs by. When specified, only inference jobs that used this specific version of the trained model are returned.

", + "location":"querystring", + "locationName":"trainedModelVersionIdentifier" } } }, @@ -4655,6 +4862,12 @@ "documentation":"

The Amazon Resource Name (ARN) of a trained model that was used to create the trained model inference jobs that you are interested in.

", "location":"querystring", "locationName":"trainedModelArn" + }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to filter inference jobs by. When specified, only inference jobs that used this specific version of the trained model are returned.

", + "location":"querystring", + "locationName":"trainedModelVersionIdentifier" } } }, @@ -4672,6 +4885,59 @@ } } }, + "ListTrainedModelVersionsRequest":{ + "type":"structure", + "required":[ + "membershipIdentifier", + "trainedModelArn" + ], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token from a previous ListTrainedModelVersions request. Use this token to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of trained model versions to return in a single page. The default value is 10, and the maximum value is 100.

", + "location":"querystring", + "locationName":"maxResults" + }, + "membershipIdentifier":{ + "shape":"UUID", + "documentation":"

The membership identifier for the collaboration that contains the trained model.

", + "location":"uri", + "locationName":"membershipIdentifier" + }, + "trainedModelArn":{ + "shape":"TrainedModelArn", + "documentation":"

The Amazon Resource Name (ARN) of the trained model for which to list versions.

", + "location":"uri", + "locationName":"trainedModelArn" + }, + "status":{ + "shape":"TrainedModelStatus", + "documentation":"

Filter the results to only include trained model versions with the specified status. Valid values include CREATE_PENDING, CREATE_IN_PROGRESS, ACTIVE, CREATE_FAILED, and others.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListTrainedModelVersionsResponse":{ + "type":"structure", + "required":["trainedModels"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token to use in a subsequent ListTrainedModelVersions request to retrieve the next page of results. This value is null when there are no more results to return.

" + }, + "trainedModels":{ + "shape":"TrainedModelList", + "documentation":"

A list of trained model versions that match the specified criteria. Each entry contains summary information about a trained model version, including its version identifier, status, and creation details.

" + } + } + }, "ListTrainedModelsRequest":{ "type":"structure", "required":["membershipIdentifier"], @@ -4971,6 +5237,10 @@ "channelName":{ "shape":"ModelTrainingDataChannelName", "documentation":"

The name of the training data channel.

" + }, + "s3DataDistributionType":{ + "shape":"S3DataDistributionType", + "documentation":"

Specifies how the training data stored in Amazon S3 should be distributed to training instances. This parameter controls the data distribution strategy for the training job:

  • FullyReplicated - The entire dataset is replicated on each training instance. This is suitable for smaller datasets and algorithms that require access to the complete dataset.

  • ShardedByS3Key - The dataset is distributed across training instances based on Amazon S3 key names. This is suitable for larger datasets and distributed training scenarios where each instance processes a subset of the data.

" } }, "documentation":"

Information about the model training data channel. A training data channel is a named data source that the training algorithms can consume.

" @@ -5205,7 +5475,7 @@ "ResourceConfigInstanceCountInteger":{ "type":"integer", "box":true, - "max":1, + "max":5, "min":1 }, "ResourceConfigVolumeSizeInGBInteger":{ @@ -5249,6 +5519,13 @@ }, "documentation":"

Provides information about an Amazon S3 bucket and path.

" }, + "S3DataDistributionType":{ + "type":"string", + "enum":[ + "FullyReplicated", + "ShardedByS3Key" + ] + }, "S3Path":{ "type":"string", "max":1285, @@ -5259,7 +5536,15 @@ "type":"structure", "required":["message"], "members":{ - "message":{"shape":"String"} + "message":{"shape":"String"}, + "quotaName":{ + "shape":"String", + "documentation":"

The name of the service quota limit that was exceeded

" + }, + "quotaValue":{ + "shape":"ServiceQuotaExceededExceptionQuotaValueDouble", + "documentation":"

The current limit on the service quota that was exceeded

" + } }, "documentation":"

You have exceeded your service quota.

", "error":{ @@ -5268,6 +5553,12 @@ }, "exception":true }, + "ServiceQuotaExceededExceptionQuotaValueDouble":{ + "type":"double", + "box":true, + "max":100000, + "min":0 + }, "SharedAudienceMetrics":{ "type":"string", "enum":[ @@ -5365,6 +5656,10 @@ "location":"uri", "locationName":"trainedModelArn" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to export. This specifies which version of the trained model should be exported to the specified destination.

" + }, "membershipIdentifier":{ "shape":"UUID", "documentation":"

The membership ID of the member that is receiving the exported trained model artifacts.

", @@ -5406,6 +5701,10 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model that is used for this trained model inference job.

" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model to use for inference. This specifies which version of the trained model should be used to generate predictions on the input data.

" + }, "configuredModelAlgorithmAssociationArn":{ "shape":"ConfiguredModelAlgorithmAssociationArn", "documentation":"

The Amazon Resource Name (ARN) of the configured model algorithm association that is used for this trained model inference job.

" @@ -5547,13 +5846,54 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:(membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/(configured-model-algorithm-association|trained-model|trained-model-inference-job|ml-input-channel)|training-dataset|audience-model|configured-audience-model|audience-generation-job|configured-model-algorithm|configured-model-algorithm-association|trained-model|trained-model-inference-job)/[-a-zA-Z0-9_/.]+" + "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:((membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/(configured-model-algorithm-association|trained-model|trained-model-inference-job|ml-input-channel))|training-dataset|audience-model|configured-audience-model|audience-generation-job|configured-model-algorithm)/[-a-zA-Z0-9_/.]+" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true }, "TrainedModelArn":{ "type":"string", "max":2048, "min":20, - "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:(membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/)?trained-model/[-a-zA-Z0-9_/.]+" + "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/trained-model/[-a-zA-Z0-9_/.]+" + }, + "TrainedModelArtifactMaxSize":{ + "type":"structure", + "required":[ + "unit", + "value" + ], + "members":{ + "unit":{ + "shape":"TrainedModelArtifactMaxSizeUnitType", + "documentation":"

The unit of measurement for the maximum artifact size. Valid values include common storage units such as bytes, kilobytes, megabytes, gigabytes, and terabytes.

" + }, + "value":{ + "shape":"TrainedModelArtifactMaxSizeValue", + "documentation":"

The numerical value for the maximum artifact size limit. This value is interpreted according to the specified unit.

" + } + }, + "documentation":"

Specifies the maximum size limit for trained model artifacts. This configuration helps control storage costs and ensures that trained models don't exceed specified size constraints. The size limit applies to the total size of all artifacts produced by the training job.

" + }, + "TrainedModelArtifactMaxSizeUnitType":{ + "type":"string", + "enum":["GB"] + }, + "TrainedModelArtifactMaxSizeValue":{ + "type":"double", + "box":true, + "max":10.0, + "min":0.01 }, "TrainedModelExportFileType":{ "type":"string", @@ -5655,7 +5995,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:(membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/)?trained-model-inference-job/[-a-zA-Z0-9_/.]+" + "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/trained-model-inference-job/[-a-zA-Z0-9_/.]+" }, "TrainedModelInferenceJobList":{ "type":"list", @@ -5704,6 +6044,10 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model that is used for the trained model inference job.

" }, + "trainedModelVersionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of the trained model that was used for inference in this job.

" + }, "collaborationIdentifier":{ "shape":"UUID", "documentation":"

The collaboration ID of the collaboration that contains the trained model inference job.

" @@ -5790,7 +6134,7 @@ "TrainedModelInferenceMaxOutputSizeValue":{ "type":"double", "box":true, - "max":10.0, + "max":50.0, "min":0.01 }, "TrainedModelList":{ @@ -5838,6 +6182,14 @@ "shape":"TrainedModelArn", "documentation":"

The Amazon Resource Name (ARN) of the trained model.

" }, + "versionIdentifier":{ + "shape":"UUID", + "documentation":"

The version identifier of this trained model version.

" + }, + "incrementalTrainingDataChannels":{ + "shape":"IncrementalTrainingDataChannelsOutput", + "documentation":"

Information about the incremental training data channels used to create this version of the trained model.

" + }, "name":{ "shape":"NameString", "documentation":"

The name of the trained model.

" @@ -5875,6 +6227,10 @@ "containerMetrics":{ "shape":"MetricsConfigurationPolicy", "documentation":"

The container for the metrics of the trained model.

" + }, + "maxArtifactSize":{ + "shape":"TrainedModelArtifactMaxSize", + "documentation":"

The maximum size limit for trained model artifacts as defined in the configuration policy. This setting helps enforce consistent size limits across trained models in the collaboration.

" } }, "documentation":"

The configuration policy for the trained models.

" @@ -5930,6 +6286,14 @@ }, "documentation":"

Provides information about the training dataset.

" }, + "TrainingInputMode":{ + "type":"string", + "enum":[ + "File", + "FastFile", + "Pipe" + ] + }, "UUID":{ "type":"string", "max":36, diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml index 6e9d365cb3fe..56c7c7dfe540 100644 --- a/services/cloud9/pom.xml +++ b/services/cloud9/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 cloud9 diff --git a/services/cloudcontrol/pom.xml b/services/cloudcontrol/pom.xml index 472d8d2579e2..abdf73cdfea3 100644 --- a/services/cloudcontrol/pom.xml +++ b/services/cloudcontrol/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudcontrol AWS Java SDK :: Services :: Cloud Control diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml index 4e779ab806d2..bb4ccac3cf45 100644 --- a/services/clouddirectory/pom.xml +++ b/services/clouddirectory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT clouddirectory AWS Java SDK :: Services :: Amazon CloudDirectory diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml index ad1eff01ef89..a4f30e58daf9 100644 --- a/services/cloudformation/pom.xml +++ b/services/cloudformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudformation AWS Java SDK :: Services :: AWS CloudFormation diff --git a/services/cloudformation/src/main/resources/codegen-resources/service-2.json b/services/cloudformation/src/main/resources/codegen-resources/service-2.json index 97cb5c3a4c59..bf0bd11f3ee3 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudformation/src/main/resources/codegen-resources/service-2.json @@ -167,7 +167,7 @@ {"shape":"InvalidOperationException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack instance refers to a stack in a specific account and Region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions.

" + "documentation":"

Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack instance refers to a stack in a specific account and Region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions.

The maximum number of organizational unit (OUs) supported by a CreateStackInstances operation is 50.

If you need more than 50, consider the following options:

  • Batch processing: If you don't want to expose your OU hierarchy, split up the operations into multiple calls with less than 50 OUs each.

  • Parent OU strategy: If you don't mind exposing the OU hierarchy, target a parent OU that contains all desired child OUs.

" }, "CreateStackRefactor":{ "name":"CreateStackRefactor", @@ -294,7 +294,7 @@ {"shape":"StaleRequestException"}, {"shape":"InvalidOperationException"} ], - "documentation":"

Deletes stack instances for the specified accounts, in the specified Amazon Web Services Regions.

" + "documentation":"

Deletes stack instances for the specified accounts, in the specified Amazon Web Services Regions.

The maximum number of organizational unit (OUs) supported by a DeleteStackInstances operation is 50.

If you need more than 50, consider the following options:

  • Batch processing: If you don't want to expose your OU hierarchy, split up the operations into multiple calls with less than 50 OUs each.

  • Parent OU strategy: If you don't mind exposing the OU hierarchy, target a parent OU that contains all desired child OUs.

" }, "DeleteStackSet":{ "name":"DeleteStackSet", @@ -554,7 +554,7 @@ "errors":[ {"shape":"StackSetNotFoundException"} ], - "documentation":"

Returns the description of the specified StackSet.

" + "documentation":"

Returns the description of the specified StackSet.

This API provides strongly consistent reads meaning it will always return the most up-to-date data.

" }, "DescribeStackSetOperation":{ "name":"DescribeStackSetOperation", @@ -571,7 +571,7 @@ {"shape":"StackSetNotFoundException"}, {"shape":"OperationNotFoundException"} ], - "documentation":"

Returns the description of the specified StackSet operation.

" + "documentation":"

Returns the description of the specified StackSet operation.

This API provides strongly consistent reads meaning it will always return the most up-to-date data.

" }, "DescribeStacks":{ "name":"DescribeStacks", @@ -1008,7 +1008,7 @@ {"shape":"StackSetNotFoundException"}, {"shape":"OperationNotFoundException"} ], - "documentation":"

Returns summary information about the results of a stack set operation.

" + "documentation":"

Returns summary information about the results of a stack set operation.

This API provides eventually consistent reads meaning it may take some time but will eventually return the most up-to-date data.

" }, "ListStackSetOperations":{ "name":"ListStackSetOperations", @@ -1024,7 +1024,7 @@ "errors":[ {"shape":"StackSetNotFoundException"} ], - "documentation":"

Returns summary information about operations performed on a stack set.

" + "documentation":"

Returns summary information about operations performed on a stack set.

This API provides eventually consistent reads meaning it may take some time but will eventually return the most up-to-date data.

" }, "ListStackSets":{ "name":"ListStackSets", @@ -1037,7 +1037,7 @@ "shape":"ListStackSetsOutput", "resultWrapper":"ListStackSetsResult" }, - "documentation":"

Returns summary information about stack sets that are associated with the user.

  • [Self-managed permissions] If you set the CallAs parameter to SELF while signed in to your Amazon Web Services account, ListStackSets returns all self-managed stack sets in your Amazon Web Services account.

  • [Service-managed permissions] If you set the CallAs parameter to SELF while signed in to the organization's management account, ListStackSets returns all stack sets in the management account.

  • [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN while signed in to your member account, ListStackSets returns all stack sets with service-managed permissions in the management account.

" + "documentation":"

Returns summary information about stack sets that are associated with the user.

This API provides strongly consistent reads meaning it will always return the most up-to-date data.

  • [Self-managed permissions] If you set the CallAs parameter to SELF while signed in to your Amazon Web Services account, ListStackSets returns all self-managed stack sets in your Amazon Web Services account.

  • [Service-managed permissions] If you set the CallAs parameter to SELF while signed in to the organization's management account, ListStackSets returns all stack sets in the management account.

  • [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN while signed in to your member account, ListStackSets returns all stack sets with service-managed permissions in the management account.

" }, "ListStacks":{ "name":"ListStacks", @@ -1349,7 +1349,7 @@ {"shape":"StaleRequestException"}, {"shape":"InvalidOperationException"} ], - "documentation":"

Updates the parameter values for stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack instance refers to a stack in a specific account and Region.

You can only update stack instances in Amazon Web Services Regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances.

During stack set updates, any parameters overridden for a stack instance aren't updated, but retain their overridden value.

You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances.

" + "documentation":"

Updates the parameter values for stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack instance refers to a stack in a specific account and Region.

You can only update stack instances in Amazon Web Services Regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances.

During stack set updates, any parameters overridden for a stack instance aren't updated, but retain their overridden value.

You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances.

The maximum number of organizational unit (OUs) supported by a UpdateStackInstances operation is 50.

If you need more than 50, consider the following options:

  • Batch processing: If you don't want to expose your OU hierarchy, split up the operations into multiple calls with less than 50 OUs each.

  • Parent OU strategy: If you don't mind exposing the OU hierarchy, target a parent OU that contains all desired child OUs.

" }, "UpdateStackSet":{ "name":"UpdateStackSet", @@ -1370,7 +1370,7 @@ {"shape":"InvalidOperationException"}, {"shape":"StackInstanceNotFoundException"} ], - "documentation":"

Updates the stack set and associated stack instances in the specified accounts and Amazon Web Services Regions.

Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set.

" + "documentation":"

Updates the stack set and associated stack instances in the specified accounts and Amazon Web Services Regions.

Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set.

The maximum number of organizational unit (OUs) supported by a UpdateStackSet operation is 50.

If you need more than 50, consider the following options:

  • Batch processing: If you don't want to expose your OU hierarchy, split up the operations into multiple calls with less than 50 OUs each.

  • Parent OU strategy: If you don't mind exposing the OU hierarchy, target a parent OU that contains all desired child OUs.

" }, "UpdateTerminationProtection":{ "name":"UpdateTerminationProtection", @@ -2010,7 +2010,7 @@ }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of the file that contains the revised template. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation generates the change set by comparing this template with the stack that you specified. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only TemplateBody or TemplateURL.

" + "documentation":"

The URL of the file that contains the revised template. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation generates the change set by comparing this template with the stack that you specified. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

Conditional: You must specify only TemplateBody or TemplateURL.

" }, "UsePreviousTemplate":{ "shape":"UsePreviousTemplate", @@ -2022,7 +2022,7 @@ }, "Capabilities":{ "shape":"Capabilities", - "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no effect.

    If you want to create a stack from a stack template that contains macros and nested stacks, you must create or update the stack directly from the template using the CreateStack or UpdateStack action, and specifying this capability.

    For more information about macros, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" + "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no effect.

    If you want to create a stack from a stack template that contains macros and nested stacks, you must create or update the stack directly from the template using the CreateStack or UpdateStack action, and specifying this capability.

    For more information about macros, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" }, "ResourceTypes":{ "shape":"ResourceTypes", @@ -2074,7 +2074,7 @@ }, "ImportExistingResources":{ "shape":"ImportExistingResources", - "documentation":"

Indicates if the change set imports resources that already exist.

This parameter can only import resources that have custom names in templates. For more information, see name type in the CloudFormation User Guide. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead. For more information, see Import Amazon Web Services resources into a CloudFormation stack with a resource import in the CloudFormation User Guide.

" + "documentation":"

Indicates if the change set auto-imports resources that already exist. For more information, see Import Amazon Web Services resources into a CloudFormation stack automatically in the CloudFormation User Guide.

This parameter can only import resources that have custom names in templates. For more information, see name type in the CloudFormation User Guide. To import resources that do not accept custom names, such as EC2 instances, use the ResourcesToImport parameter instead.

" } }, "documentation":"

The input for the CreateChangeSet action.

" @@ -2134,11 +2134,11 @@ }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" + "documentation":"

Structure that contains the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify either TemplateBody or TemplateURL, but not both.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file containing the template body. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" }, "Parameters":{ "shape":"Parameters", @@ -2162,7 +2162,7 @@ }, "Capabilities":{ "shape":"Capabilities", - "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    If you want to create a stack from a stack template that contains macros and nested stacks, you must create the stack directly from the template using this capability.

    You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs.

    Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified.

    For more information, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" + "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    If you want to create a stack from a stack template that contains macros and nested stacks, you must create the stack directly from the template using this capability.

    You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs.

    Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified.

    For more information, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" }, "ResourceTypes":{ "shape":"ResourceTypes", @@ -2178,11 +2178,11 @@ }, "StackPolicyBody":{ "shape":"StackPolicyBody", - "documentation":"

Structure containing the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" + "documentation":"

Structure that contains the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" }, "StackPolicyURL":{ "shape":"StackPolicyURL", - "documentation":"

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" + "documentation":"

Location of a file that contains the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" }, "Tags":{ "shape":"Tags", @@ -2310,11 +2310,11 @@ }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" + "documentation":"

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. S3 static website URLs are not supported.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" }, "StackId":{ "shape":"StackId", @@ -2326,7 +2326,7 @@ }, "Capabilities":{ "shape":"Capabilities", - "documentation":"

In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for CloudFormation to create the stack set and related stack instances.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If your stack set template references one or more macros, you must create the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To create the stack set directly, you must acknowledge this capability. For more information, see Perform custom processing on CloudFormation templates with template macros.

    Stack sets with service-managed permissions don't currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail.

" + "documentation":"

In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for CloudFormation to create the stack set and related stack instances.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If your stack set template references one or more macros, you must create the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To create the stack set directly, you must acknowledge this capability. For more information, see Perform custom processing on CloudFormation templates with template macros.

    Stack sets with service-managed permissions don't currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail.

" }, "Tags":{ "shape":"Tags", @@ -2789,7 +2789,7 @@ }, "ImportExistingResources":{ "shape":"ImportExistingResources", - "documentation":"

Indicates if the change set imports resources that already exist.

This parameter can only import resources that have custom names in templates. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead.

" + "documentation":"

Indicates if the change set imports resources that already exist.

This parameter can only import resources that have custom names in templates. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead.

" } }, "documentation":"

The output for the DescribeChangeSet action.

" @@ -2985,7 +2985,7 @@ }, "StackDriftStatus":{ "shape":"StackDriftStatus", - "documentation":"

Status of the stack's actual configuration compared to its expected configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: This value is reserved for future use.

" + "documentation":"

Status of the stack's actual configuration compared to its expected configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: CloudFormation could not run drift detection for a resource in the stack. See the DetectionStatusReason for details.

" }, "DetectionStatus":{ "shape":"StackDriftDetectionStatus", @@ -3121,7 +3121,7 @@ }, "StackResourceDriftStatusFilters":{ "shape":"StackResourceDriftStatusFilters", - "documentation":"

The resource drift status values to use as filters for the resource drift results returned.

  • DELETED: The resource differs from its expected template configuration in that the resource has been deleted.

  • MODIFIED: One or more resource properties differ from their expected template values.

  • IN_SYNC: The resource's actual configuration matches its expected template configuration.

  • NOT_CHECKED: CloudFormation doesn't currently return this value.

" + "documentation":"

The resource drift status values to use as filters for the resource drift results returned.

  • DELETED: The resource differs from its expected template configuration in that the resource has been deleted.

  • MODIFIED: One or more resource properties differ from their expected template values.

  • IN_SYNC: The resource's actual configuration matches its expected template configuration.

  • NOT_CHECKED: CloudFormation doesn't currently return this value.

  • UNKNOWN: CloudFormation could not run drift detection for the resource.

" }, "NextToken":{ "shape":"NextToken", @@ -3170,7 +3170,7 @@ "members":{ "StackResourceDetail":{ "shape":"StackResourceDetail", - "documentation":"

A StackResourceDetail structure containing the description of the specified resource in the specified stack.

" + "documentation":"

A StackResourceDetail structure that contains the description of the specified resource in the specified stack.

" } }, "documentation":"

The output for a DescribeStackResource action.

" @@ -3583,11 +3583,11 @@ "members":{ "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used.

" + "documentation":"

Structure that contains the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" }, "Parameters":{ "shape":"Parameters", @@ -3811,7 +3811,7 @@ "members":{ "StackPolicyBody":{ "shape":"StackPolicyBody", - "documentation":"

Structure containing the stack policy body. (For more information, see Prevent updates to stack resources in the CloudFormation User Guide.)

" + "documentation":"

Structure that contains the stack policy body. (For more information, see Prevent updates to stack resources in the CloudFormation User Guide.)

" } }, "documentation":"

The output for the GetStackPolicy action.

" @@ -3839,7 +3839,7 @@ "members":{ "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body.

CloudFormation returns the same template that was used when the stack was created.

" + "documentation":"

Structure that contains the template body.

CloudFormation returns the same template that was used when the stack was created.

" }, "StagesAvailable":{ "shape":"StageList", @@ -3853,11 +3853,11 @@ "members":{ "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

" + "documentation":"

Structure that contains the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file containing the template body. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

" }, "StackName":{ "shape":"StackNameOrId", @@ -3919,7 +3919,7 @@ }, "Warnings":{ "shape":"Warnings", - "documentation":"

An object containing any warnings returned.

" + "documentation":"

An object that contains any warnings returned.

" } }, "documentation":"

The output for the GetTemplateSummary action.

" @@ -4841,7 +4841,7 @@ "members":{ "StackSummaries":{ "shape":"StackSummaries", - "documentation":"

A list of StackSummary structures containing information about the specified stacks.

" + "documentation":"

A list of StackSummary structures that contains information about the specified stacks.

" }, "NextToken":{ "shape":"NextToken", @@ -5053,11 +5053,11 @@ "members":{ "TypeHierarchy":{ "shape":"TypeHierarchy", - "documentation":"

A concatenated list of the module type or types containing the resource. Module types are listed starting with the inner-most nested module, and separated by /.

In the following example, the resource was created from a module of type AWS::First::Example::MODULE, that's nested inside a parent module of type AWS::Second::Example::MODULE.

AWS::First::Example::MODULE/AWS::Second::Example::MODULE

" + "documentation":"

A concatenated list of the module type or types that contains the resource. Module types are listed starting with the inner-most nested module, and separated by /.

In the following example, the resource was created from a module of type AWS::First::Example::MODULE, that's nested inside a parent module of type AWS::Second::Example::MODULE.

AWS::First::Example::MODULE/AWS::Second::Example::MODULE

" }, "LogicalIdHierarchy":{ "shape":"LogicalIdHierarchy", - "documentation":"

A concatenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by /.

In the following example, the resource was created from a module, moduleA, that's nested inside a parent module, moduleB.

moduleA/moduleB

For more information, see Reference module resources in CloudFormation templates in the CloudFormation User Guide.

" + "documentation":"

A concatenated list of the logical IDs of the module or modules that contains the resource. Modules are listed starting with the inner-most nested module, and separated by /.

In the following example, the resource was created from a module, moduleA, that's nested inside a parent module, moduleB.

moduleA/moduleB

For more information, see Reference module resources in CloudFormation templates in the CloudFormation User Guide.

" } }, "documentation":"

Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.

For more information about modules, see Create reusable resource configurations that can be included across templates with CloudFormation modules in the CloudFormation User Guide.

" @@ -5562,7 +5562,7 @@ }, "SchemaHandlerPackage":{ "shape":"S3Url", - "documentation":"

A URL to the S3 bucket containing the extension project package that contains the necessary files for the extension you want to register.

For information about generating a schema handler package for the extension you want to register, see submit in the CloudFormation Command Line Interface (CLI) User Guide.

The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs to have GetObject permissions for the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the Identity and Access Management User Guide.

" + "documentation":"

A URL to the S3 bucket that contains the extension project package that contains the necessary files for the extension you want to register.

For information about generating a schema handler package for the extension you want to register, see submit in the CloudFormation Command Line Interface (CLI) User Guide.

The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs to have GetObject permissions for the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the Identity and Access Management User Guide.

" }, "LoggingConfig":{ "shape":"LoggingConfig", @@ -5723,11 +5723,11 @@ }, "BeforeContext":{ "shape":"BeforeContext", - "documentation":"

An encoded JSON string containing the context of the resource before the change is executed.

" + "documentation":"

An encoded JSON string that contains the context of the resource before the change is executed.

" }, "AfterContext":{ "shape":"AfterContext", - "documentation":"

An encoded JSON string containing the context of the resource after the change is executed.

" + "documentation":"

An encoded JSON string that contains the context of the resource after the change is executed.

" } }, "documentation":"

The ResourceChange structure describes the resource and the action that CloudFormation will perform on it if you execute this change set.

" @@ -6184,7 +6184,7 @@ "documentation":"

The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources.

The default is 0 minutes.

If you specify a monitoring period but don't specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.

" } }, - "documentation":"

Structure containing the rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

Rollback triggers enable you to have CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. For more information, see Roll back your CloudFormation stack on alarm breach with rollback triggers.

" + "documentation":"

Structure that contains the rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

Rollback triggers enable you to have CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. For more information, see Roll back your CloudFormation stack on alarm breach with rollback triggers.

" }, "RollbackStackInput":{ "type":"structure", @@ -6230,7 +6230,7 @@ }, "Type":{ "shape":"Type", - "documentation":"

The resource type of the rollback trigger. Specify either AWS::CloudWatch::Alarm or AWS::CloudWatch::CompositeAlarm resource types.

" + "documentation":"

The resource type of the rollback trigger. Specify either AWS::CloudWatch::Alarm or AWS::CloudWatch::CompositeAlarm resource types.

" } }, "documentation":"

A rollback trigger CloudFormation monitors during creation and updating of stacks. If any of the alarms you specify goes to ALARM state during the stack operation or within the specified monitoring period afterwards, CloudFormation rolls back the entire stack operation.

" @@ -6332,11 +6332,11 @@ }, "StackPolicyBody":{ "shape":"StackPolicyBody", - "documentation":"

Structure containing the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" + "documentation":"

Structure that contains the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" }, "StackPolicyURL":{ "shape":"StackPolicyURL", - "documentation":"

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an Amazon S3 bucket in the same Amazon Web Services Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" + "documentation":"

Location of a file that contains the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an Amazon S3 bucket in the same Amazon Web Services Region as the stack. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

" } }, "documentation":"

The input for the SetStackPolicy action.

" @@ -6515,11 +6515,11 @@ }, "ParentId":{ "shape":"StackId", - "documentation":"

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Embed stacks within other stacks using nested stacks in the CloudFormation User Guide.

" + "documentation":"

For nested stacks, the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Nested stacks in the CloudFormation User Guide.

" }, "RootId":{ "shape":"StackId", - "documentation":"

For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs.

For more information, see Embed stacks within other stacks using nested stacks in the CloudFormation User Guide.

" + "documentation":"

For nested stacks, the stack ID of the top-level stack to which the nested stack ultimately belongs.

For more information, see Nested stacks in the CloudFormation User Guide.

" }, "DriftInformation":{ "shape":"StackDriftInformation", @@ -6582,7 +6582,7 @@ "members":{ "StackDriftStatus":{ "shape":"StackDriftStatus", - "documentation":"

Status of the stack's actual configuration compared to its expected template configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: This value is reserved for future use.

" + "documentation":"

Status of the stack's actual configuration compared to its expected template configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: CloudFormation could not run drift detection for a resource in the stack.

" }, "LastCheckTimestamp":{ "shape":"Timestamp", @@ -6597,7 +6597,7 @@ "members":{ "StackDriftStatus":{ "shape":"StackDriftStatus", - "documentation":"

Status of the stack's actual configuration compared to its expected template configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: This value is reserved for future use.

" + "documentation":"

Status of the stack's actual configuration compared to its expected template configuration.

  • DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted.

  • NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected template configuration.

  • IN_SYNC: The stack's actual configuration matches its expected template configuration.

  • UNKNOWN: CloudFormation could not run drift detection for a resource in the stack.

" }, "LastCheckTimestamp":{ "shape":"Timestamp", @@ -6690,7 +6690,7 @@ }, "DetailedStatus":{ "shape":"DetailedStatus", - "documentation":"

An optional field containing information about the detailed status of the stack event.

  • VALIDATION_FAILED - template validation failed because of invalid properties in the template. The ResourceStatusReason field shows what properties are defined incorrectly.

" + "documentation":"

An optional field that contains information about the detailed status of the stack event.

  • VALIDATION_FAILED - template validation failed because of invalid properties in the template. The ResourceStatusReason field shows what properties are defined incorrectly.

" } }, "documentation":"

The StackEvent data type.

" @@ -7287,11 +7287,11 @@ }, "ExpectedProperties":{ "shape":"Properties", - "documentation":"

A JSON structure containing the expected property values of the stack resource, as defined in the stack template and any values specified as template parameters.

For resources whose StackResourceDriftStatus is DELETED, this structure will not be present.

" + "documentation":"

A JSON structure that contains the expected property values of the stack resource, as defined in the stack template and any values specified as template parameters.

For resources whose StackResourceDriftStatus is DELETED, this structure will not be present.

" }, "ActualProperties":{ "shape":"Properties", - "documentation":"

A JSON structure containing the actual property values of the stack resource.

For resources whose StackResourceDriftStatus is DELETED, this structure will not be present.

" + "documentation":"

A JSON structure that contains the actual property values of the stack resource.

For resources whose StackResourceDriftStatus is DELETED, this structure will not be present.

" }, "PropertyDifferences":{ "shape":"PropertyDifferences", @@ -7299,7 +7299,7 @@ }, "StackResourceDriftStatus":{ "shape":"StackResourceDriftStatus", - "documentation":"

Status of the resource's actual configuration compared to its expected configuration.

  • DELETED: The resource differs from its expected template configuration because the resource has been deleted.

  • MODIFIED: One or more resource properties differ from their expected values (as defined in the stack template and any values specified as template parameters).

  • IN_SYNC: The resource's actual configuration matches its expected template configuration.

  • NOT_CHECKED: CloudFormation does not currently return this value.

" + "documentation":"

Status of the resource's actual configuration compared to its expected configuration.

  • DELETED: The resource differs from its expected template configuration because the resource has been deleted.

  • MODIFIED: One or more resource properties differ from their expected values (as defined in the stack template and any values specified as template parameters).

  • IN_SYNC: The resource's actual configuration matches its expected template configuration.

  • NOT_CHECKED: CloudFormation does not currently return this value.

  • UNKNOWN: CloudFormation could not run drift detection for the resource. See the DriftStatusReason for details.

" }, "Timestamp":{ "shape":"Timestamp", @@ -7308,6 +7308,10 @@ "ModuleInfo":{ "shape":"ModuleInfo", "documentation":"

Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.

" + }, + "DriftStatusReason":{ + "shape":"StackResourceDriftStatusReason", + "documentation":"

The reason for the drift status.

" } }, "documentation":"

Contains the drift information for a resource that has been checked for drift. This includes actual and expected property values for resources in which CloudFormation has detected drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information, see Detect unmanaged configuration changes to stacks and resources with drift detection.

Resources that don't currently support drift detection can't be checked. For a list of resources that support drift detection, see Resource type support for imports and drift detection.

Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection.

" @@ -7348,7 +7352,8 @@ "IN_SYNC", "MODIFIED", "DELETED", - "NOT_CHECKED" + "NOT_CHECKED", + "UNKNOWN" ] }, "StackResourceDriftStatusFilters":{ @@ -7357,6 +7362,7 @@ "max":4, "min":1 }, + "StackResourceDriftStatusReason":{"type":"string"}, "StackResourceDrifts":{ "type":"list", "member":{"shape":"StackResourceDrift"} @@ -7674,19 +7680,19 @@ }, "FailureToleranceCount":{ "shape":"FailureToleranceCount", - "documentation":"

The number of accounts, per Region, for which this operation can fail before CloudFormation stops the operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent Regions.

Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage (but not both).

By default, 0 is specified.

" + "documentation":"

The number of accounts, per Region, for which this operation can fail before CloudFormation stops the operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent Regions.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.

" }, "FailureTolerancePercentage":{ "shape":"FailureTolerancePercentage", - "documentation":"

The percentage of accounts, per Region, for which this stack operation can fail before CloudFormation stops the operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent Regions.

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number.

Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.

" + "documentation":"

The percentage of accounts, per Region, for which this stack operation can fail before CloudFormation stops the operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent Regions.

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.

" }, "MaxConcurrentCount":{ "shape":"MaxConcurrentCount", - "documentation":"

The maximum number of accounts in which to perform this operation at one time. This can depend on the value of FailureToleranceCount depending on your ConcurrencyMode. MaxConcurrentCount is at most one more than the FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.

" + "documentation":"

The maximum number of accounts in which to perform this operation at one time. This can depend on the value of FailureToleranceCount depending on your ConcurrencyMode. MaxConcurrentCount is at most one more than the FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.

" }, "MaxConcurrentPercentage":{ "shape":"MaxConcurrentPercentage", - "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.

" + "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.

" }, "ConcurrencyMode":{ "shape":"ConcurrencyMode", @@ -7935,11 +7941,11 @@ }, "ParentId":{ "shape":"StackId", - "documentation":"

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Embed stacks within other stacks using nested stacks in the CloudFormation User Guide.

" + "documentation":"

For nested stacks, the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Nested stacks in the CloudFormation User Guide.

" }, "RootId":{ "shape":"StackId", - "documentation":"

For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs.

For more information, see Embed stacks within other stacks using nested stacks in the CloudFormation User Guide.

" + "documentation":"

For nested stacks, the stack ID of the top-level stack to which the nested stack ultimately belongs.

For more information, see Nested stacks in the CloudFormation User Guide.

" }, "DriftInformation":{ "shape":"StackDriftInformationSummary", @@ -8040,7 +8046,7 @@ }, "Value":{ "shape":"TagValue", - "documentation":"

Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.

" + "documentation":"

Required. A string that contains the value for this tag. You can specify a maximum of 256 characters for a tag value.

" } }, "documentation":"

The Tag type enables you to specify a key-value pair that can be used to store information about an CloudFormation stack.

" @@ -8604,11 +8610,11 @@ }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

" + "documentation":"

Structure that contains the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

" }, "UsePreviousTemplate":{ "shape":"UsePreviousTemplate", @@ -8616,11 +8622,11 @@ }, "StackPolicyDuringUpdateBody":{ "shape":"StackPolicyDuringUpdateBody", - "documentation":"

Structure containing the temporary overriding stack policy body. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you don't specify a stack policy, the current policy that is associated with the stack will be used.

" + "documentation":"

Structure that contains the temporary overriding stack policy body. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you don't specify a stack policy, the current policy that is associated with the stack will be used.

" }, "StackPolicyDuringUpdateURL":{ "shape":"StackPolicyDuringUpdateURL", - "documentation":"

Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you don't specify a stack policy, the current policy that is associated with the stack will be used.

" + "documentation":"

Location of a file that contains the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you don't specify a stack policy, the current policy that is associated with the stack will be used.

" }, "Parameters":{ "shape":"Parameters", @@ -8628,7 +8634,7 @@ }, "Capabilities":{ "shape":"Capabilities", - "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability.

    You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs.

    Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified.

    For more information, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" + "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability.

    You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs.

    Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified.

    For more information, see Perform custom processing on CloudFormation templates with template macros.

Only one of the Capabilities and ResourceType parameters can be specified.

" }, "ResourceTypes":{ "shape":"ResourceTypes", @@ -8644,11 +8650,11 @@ }, "StackPolicyBody":{ "shape":"StackPolicyBody", - "documentation":"

Structure containing a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you don't specify a stack policy, the current policy that is associated with the stack is unchanged.

" + "documentation":"

Structure that contains a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you don't specify a stack policy, the current policy that is associated with the stack is unchanged.

" }, "StackPolicyURL":{ "shape":"StackPolicyURL", - "documentation":"

Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you don't specify a stack policy, the current policy that is associated with the stack is unchanged.

" + "documentation":"

Location of a file that contains the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. URLs from S3 static websites are not supported.

You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you don't specify a stack policy, the current policy that is associated with the stack is unchanged.

" }, "NotificationARNs":{ "shape":"NotificationARNs", @@ -8752,7 +8758,7 @@ }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. S3 static website URLs are not supported.

Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true.

" }, "UsePreviousTemplate":{ "shape":"UsePreviousTemplate", @@ -8764,7 +8770,7 @@ }, "Capabilities":{ "shape":"Capabilities", - "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack set and its associated stack instances.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If your stack set template references one or more macros, you must update the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To update the stack set directly, you must acknowledge this capability. For more information, see Perform custom processing on CloudFormation templates with template macros.

    Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail.

" + "documentation":"

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack set and its associated stack instances.

  • CAPABILITY_IAM and CAPABILITY_NAMED_IAM

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities.

    The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    • If you have IAM resources, you can specify either capability.

    • If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.

    • If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities error.

    If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

    For more information, see Acknowledging IAM resources in CloudFormation templates.

  • CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If your stack set template references one or more macros, you must update the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To update the stack set directly, you must acknowledge this capability. For more information, see Perform custom processing on CloudFormation templates with template macros.

    Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail.

" }, "Tags":{ "shape":"Tags", @@ -8860,11 +8866,11 @@ "members":{ "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" + "documentation":"

Structure that contains the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" }, "TemplateURL":{ "shape":"TemplateURL", - "documentation":"

The URL of a file containing the template body. The URL must point to a template (max size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" + "documentation":"

The URL of a file that contains the template body. The URL must point to a template (max size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" } }, "documentation":"

The input for ValidateTemplate action.

" diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml index d4559ceaf96b..f39c340f3465 100644 --- a/services/cloudfront/pom.xml +++ b/services/cloudfront/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudfront AWS Java SDK :: Services :: Amazon CloudFront diff --git a/services/cloudfrontkeyvaluestore/pom.xml b/services/cloudfrontkeyvaluestore/pom.xml index 62c2e1ca02b2..1b1f769ed0b4 100644 --- a/services/cloudfrontkeyvaluestore/pom.xml +++ b/services/cloudfrontkeyvaluestore/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudfrontkeyvaluestore AWS Java SDK :: Services :: Cloud Front Key Value Store diff --git a/services/cloudhsm/pom.xml b/services/cloudhsm/pom.xml index be15aaf379d1..dbb76f898888 100644 --- a/services/cloudhsm/pom.xml +++ b/services/cloudhsm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudhsm AWS Java SDK :: Services :: AWS CloudHSM diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml index 54e80158db42..9f6eda9b9d3c 100644 --- a/services/cloudhsmv2/pom.xml +++ b/services/cloudhsmv2/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 cloudhsmv2 diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml index 67b0b594a5b7..d8f88d7866dc 100644 --- a/services/cloudsearch/pom.xml +++ b/services/cloudsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudsearch AWS Java SDK :: Services :: Amazon CloudSearch diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml index 326c5011ac5a..4b347da1a932 100644 --- a/services/cloudsearchdomain/pom.xml +++ b/services/cloudsearchdomain/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudsearchdomain AWS Java SDK :: Services :: Amazon CloudSearch Domain diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml index f9b3cf132d9a..9af1b838d888 100644 --- a/services/cloudtrail/pom.xml +++ b/services/cloudtrail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudtrail AWS Java SDK :: Services :: AWS CloudTrail diff --git a/services/cloudtraildata/pom.xml b/services/cloudtraildata/pom.xml index 75ef7c3f54ec..0e20f30729ea 100644 --- a/services/cloudtraildata/pom.xml +++ b/services/cloudtraildata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudtraildata AWS Java SDK :: Services :: Cloud Trail Data diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml index 65705cb99185..cbb47f1874b4 100644 --- a/services/cloudwatch/pom.xml +++ b/services/cloudwatch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudwatch AWS Java SDK :: Services :: Amazon CloudWatch diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml index 680d22be7459..99c84a8b2e46 100644 --- a/services/cloudwatchevents/pom.xml +++ b/services/cloudwatchevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudwatchevents AWS Java SDK :: Services :: Amazon CloudWatch Events diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml index 69eff29705c1..19e06386b192 100644 --- a/services/cloudwatchlogs/pom.xml +++ b/services/cloudwatchlogs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cloudwatchlogs AWS Java SDK :: Services :: Amazon CloudWatch Logs diff --git a/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json b/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json index b8ff939eb9c6..abb7f50aa1e8 100644 --- a/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json @@ -6054,7 +6054,7 @@ "QueryId":{ "type":"string", "max":256, - "min":0 + "min":1 }, "QueryInfo":{ "type":"structure", diff --git a/services/codeartifact/pom.xml b/services/codeartifact/pom.xml index 2f3cfacee942..f322f359e5c8 100644 --- a/services/codeartifact/pom.xml +++ b/services/codeartifact/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codeartifact AWS Java SDK :: Services :: Codeartifact diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml index 79b2aed7b0dc..fc63ff4e47c2 100644 --- a/services/codebuild/pom.xml +++ b/services/codebuild/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codebuild AWS Java SDK :: Services :: AWS Code Build diff --git a/services/codecatalyst/pom.xml b/services/codecatalyst/pom.xml index 4cba858b27a1..35d670cfff8d 100644 --- a/services/codecatalyst/pom.xml +++ b/services/codecatalyst/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codecatalyst AWS Java SDK :: Services :: Code Catalyst diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml index e934bd48d389..92ab50473a62 100644 --- a/services/codecommit/pom.xml +++ b/services/codecommit/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codecommit AWS Java SDK :: Services :: AWS CodeCommit diff --git a/services/codeconnections/pom.xml b/services/codeconnections/pom.xml index 545e6817cabe..7c4d9a4425dc 100644 --- a/services/codeconnections/pom.xml +++ b/services/codeconnections/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codeconnections AWS Java SDK :: Services :: Code Connections diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml index 57cf63597e4d..4e1e89385ab6 100644 --- a/services/codedeploy/pom.xml +++ b/services/codedeploy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codedeploy AWS Java SDK :: Services :: AWS CodeDeploy diff --git a/services/codeguruprofiler/pom.xml b/services/codeguruprofiler/pom.xml index 54a79c32ff92..33b043e4d69c 100644 --- a/services/codeguruprofiler/pom.xml +++ b/services/codeguruprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codeguruprofiler AWS Java SDK :: Services :: CodeGuruProfiler diff --git a/services/codegurureviewer/pom.xml b/services/codegurureviewer/pom.xml index ee4949f0a5aa..f568e18c2323 100644 --- a/services/codegurureviewer/pom.xml +++ b/services/codegurureviewer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codegurureviewer AWS Java SDK :: Services :: CodeGuru Reviewer diff --git a/services/codegurusecurity/pom.xml b/services/codegurusecurity/pom.xml index 908e2d3bd8d0..a0fd4989f499 100644 --- a/services/codegurusecurity/pom.xml +++ b/services/codegurusecurity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codegurusecurity AWS Java SDK :: Services :: Code Guru Security diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml index 51f79c000274..bc7516f37998 100644 --- a/services/codepipeline/pom.xml +++ b/services/codepipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codepipeline AWS Java SDK :: Services :: AWS CodePipeline diff --git a/services/codestarconnections/pom.xml b/services/codestarconnections/pom.xml index 3a0ed704621f..2d365e18090a 100644 --- a/services/codestarconnections/pom.xml +++ b/services/codestarconnections/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codestarconnections AWS Java SDK :: Services :: CodeStar connections diff --git a/services/codestarnotifications/pom.xml b/services/codestarnotifications/pom.xml index 542b8721e53f..3e825fa19f43 100644 --- a/services/codestarnotifications/pom.xml +++ b/services/codestarnotifications/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT codestarnotifications AWS Java SDK :: Services :: Codestar Notifications diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml index 2c9b4d58be42..10bd0fdf466e 100644 --- a/services/cognitoidentity/pom.xml +++ b/services/cognitoidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cognitoidentity AWS Java SDK :: Services :: Amazon Cognito Identity diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml index 9bc6768f0013..575579bf380a 100644 --- a/services/cognitoidentityprovider/pom.xml +++ b/services/cognitoidentityprovider/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cognitoidentityprovider AWS Java SDK :: Services :: Amazon Cognito Identity Provider Service diff --git a/services/cognitosync/pom.xml b/services/cognitosync/pom.xml index 1d23ef61d8a2..f7ec8ba50cd5 100644 --- a/services/cognitosync/pom.xml +++ b/services/cognitosync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT cognitosync AWS Java SDK :: Services :: Amazon Cognito Sync diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml index f0bdd89e8c3c..9bbad68f9dc2 100644 --- a/services/comprehend/pom.xml +++ b/services/comprehend/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 comprehend diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml index 8dc6a355ac07..28330ee75e5a 100644 --- a/services/comprehendmedical/pom.xml +++ b/services/comprehendmedical/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT comprehendmedical AWS Java SDK :: Services :: ComprehendMedical diff --git a/services/computeoptimizer/pom.xml b/services/computeoptimizer/pom.xml index 8d74351268a3..21b3b50b3f2a 100644 --- a/services/computeoptimizer/pom.xml +++ b/services/computeoptimizer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT computeoptimizer AWS Java SDK :: Services :: Compute Optimizer diff --git a/services/config/pom.xml b/services/config/pom.xml index 38e6f73fa899..9c72e904465a 100644 --- a/services/config/pom.xml +++ b/services/config/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT config AWS Java SDK :: Services :: AWS Config diff --git a/services/config/src/main/resources/codegen-resources/service-2.json b/services/config/src/main/resources/codegen-resources/service-2.json index 6af2feb2dd68..68960fac84df 100644 --- a/services/config/src/main/resources/codegen-resources/service-2.json +++ b/services/config/src/main/resources/codegen-resources/service-2.json @@ -81,7 +81,7 @@ {"shape":"NoSuchConfigRuleException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Deletes the specified Config rule and all of its evaluation results.

Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for the rule, you will receive a ResourceInUseException.

You can check the state of a rule by using the DescribeConfigRules request.

Recommendation: Consider excluding the AWS::Config::ResourceCompliance resource type from recording before deleting rules

Deleting rules creates configuration items (CIs) for AWS::Config::ResourceCompliance that can affect your costs for the configuration recorder. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

To avoid the associated costs, you can opt to disable recording for the AWS::Config::ResourceCompliance resource type before deleting rules, and re-enable recording after the rules have been deleted.

However, since deleting rules is an asynchronous process, it might take an hour or more to complete. During the time when recording is disabled for AWS::Config::ResourceCompliance, rule evaluations will not be recorded in the associated resource’s history.

" + "documentation":"

Deletes the specified Config rule and all of its evaluation results.

Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for the rule, you will receive a ResourceInUseException.

You can check the state of a rule by using the DescribeConfigRules request.

Recommendation: Stop recording resource compliance before deleting rules

It is highly recommended that you stop recording for the AWS::Config::ResourceCompliance resource type before you delete rules in your account. Deleting rules creates CIs for AWS::Config::ResourceCompliance and can affect your Config configuration recorder costs. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

Best practice:

  1. Stop recording AWS::Config::ResourceCompliance

  2. Delete rule(s)

  3. Turn on recording for AWS::Config::ResourceCompliance

" }, "DeleteConfigurationAggregator":{ "name":"DeleteConfigurationAggregator", @@ -119,7 +119,7 @@ {"shape":"NoSuchConformancePackException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Deletes the specified conformance pack and all the Config rules, remediation actions, and all evaluation results within that conformance pack.

Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

Recommendation: Consider excluding the AWS::Config::ResourceCompliance resource type from recording before deleting rules

Deleting rules creates configuration items (CIs) for AWS::Config::ResourceCompliance that can affect your costs for the configuration recorder. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

To avoid the associated costs, you can opt to disable recording for the AWS::Config::ResourceCompliance resource type before deleting rules, and re-enable recording after the rules have been deleted.

However, since deleting rules is an asynchronous process, it might take an hour or more to complete. During the time when recording is disabled for AWS::Config::ResourceCompliance, rule evaluations will not be recorded in the associated resource’s history.

" + "documentation":"

Deletes the specified conformance pack and all the Config rules, remediation actions, and all evaluation results within that conformance pack.

Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

" }, "DeleteDeliveryChannel":{ "name":"DeleteDeliveryChannel", @@ -160,7 +160,7 @@ {"shape":"ResourceInUseException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a management account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

Recommendation: Consider excluding the AWS::Config::ResourceCompliance resource type from recording before deleting rules

Deleting rules creates configuration items (CIs) for AWS::Config::ResourceCompliance that can affect your costs for the configuration recorder. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

To avoid the associated costs, you can opt to disable recording for the AWS::Config::ResourceCompliance resource type before deleting rules, and re-enable recording after the rules have been deleted.

However, since deleting rules is an asynchronous process, it might take an hour or more to complete. During the time when recording is disabled for AWS::Config::ResourceCompliance, rule evaluations will not be recorded in the associated resource’s history.

" + "documentation":"

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a management account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

" }, "DeleteOrganizationConformancePack":{ "name":"DeleteOrganizationConformancePack", @@ -174,7 +174,7 @@ {"shape":"ResourceInUseException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a management account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

Recommendation: Consider excluding the AWS::Config::ResourceCompliance resource type from recording before deleting rules

Deleting rules creates configuration items (CIs) for AWS::Config::ResourceCompliance that can affect your costs for the configuration recorder. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

To avoid the associated costs, you can opt to disable recording for the AWS::Config::ResourceCompliance resource type before deleting rules, and re-enable recording after the rules have been deleted.

However, since deleting rules is an asynchronous process, it might take an hour or more to complete. During the time when recording is disabled for AWS::Config::ResourceCompliance, rule evaluations will not be recorded in the associated resource’s history.

" + "documentation":"

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a management account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

" }, "DeletePendingAggregationRequest":{ "name":"DeletePendingAggregationRequest", @@ -927,7 +927,7 @@ {"shape":"NoAvailableConfigurationRecorderException"}, {"shape":"ResourceNotDiscoveredException"} ], - "documentation":"

For accurate reporting on the compliance status, you must record the AWS::Config::ResourceCompliance resource type.

For more information, see Recording Amazon Web Services Resources in the Config Resources Developer Guide.

Returns a list of configurations items (CIs) for the specified resource.

Contents

The list contains details about each state of the resource during the specified time interval. If you specified a retention period to retain your CIs between a minimum of 30 days and a maximum of 7 years (2557 days), Config returns the CIs for the specified retention period.

Pagination

The response is paginated. By default, Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

" + "documentation":"

For accurate reporting on the compliance status, you must record the AWS::Config::ResourceCompliance resource type. For more information, see Selecting Which Resources Config Records.

Returns a list of ConfigurationItems for the specified resource. The list contains details about each state of the resource during the specified time interval. If you specified a retention period to retain your ConfigurationItems between a minimum of 30 days and a maximum of 7 years (2557 days), Config returns the ConfigurationItems for the specified retention period.

The response is paginated. By default, Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

" }, "GetResourceEvaluationSummary":{ "name":"GetResourceEvaluationSummary", @@ -1014,7 +1014,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"NoAvailableConfigurationRecorderException"} ], - "documentation":"

Returns a list of resource resource identifiers for the specified resource types for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name.

The results consist of resources that Config has discovered, including those that Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name, but not both, in the same request.

CloudFormation stack recording behavior in Config

When a CloudFormation stack fails to create (for example, it enters the ROLLBACK_FAILED state), Config does not record a configuration item (CI) for that stack. Configuration items are only recorded for stacks that reach the following states:

  • CREATE_COMPLETE

  • UPDATE_COMPLETE

  • UPDATE_ROLLBACK_COMPLETE

  • UPDATE_ROLLBACK_FAILED

  • DELETE_FAILED

  • DELETE_COMPLETE

Because no CI is created for a failed stack creation, you won't see configuration history for that stack in Config, even after the stack is deleted. This helps make sure that Config only tracks resources that were successfully provisioned.

" + "documentation":"

Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that Config has discovered, including those that Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name, but not both, in the same request.

The response is paginated. By default, Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

" }, "ListResourceEvaluations":{ "name":"ListResourceEvaluations", @@ -1140,7 +1140,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"MaxNumberOfConformancePacksExceededException"} ], - "documentation":"

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across an organization. For information on how many conformance packs you can have per account, see Service Limits in the Config Developer Guide.

When you use PutConformancePack to deploy conformance packs in your account, the operation can create Config rules and remediation actions without requiring config:PutConfigRule or config:PutRemediationConfigurations permissions in your account IAM policies.

This API uses the AWSServiceRoleForConfigConforms service-linked role in your account to create conformance pack resources. This service-linked role includes the permissions to create Config rules and remediation configurations, even if your account IAM policies explicitly deny these actions.

This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The service-linked role is created only when the role does not exist in your account.

You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails.

" + "documentation":"

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across an organization. For information on how many conformance packs you can have per account, see Service Limits in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The service-linked role is created only when the role does not exist in your account.

You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails.

" }, "PutDeliveryChannel":{ "name":"PutDeliveryChannel", @@ -1228,7 +1228,7 @@ {"shape":"OrganizationAllFeaturesNotEnabledException"}, {"shape":"NoAvailableOrganizationException"} ], - "documentation":"

Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how many organization conformance packs and how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

When you use PutOrganizationConformancePack to deploy conformance packs across member accounts, the operation can create Config rules and remediation actions without requiring config:PutConfigRule or config:PutRemediationConfigurations permissions in member account IAM policies.

This API uses the AWSServiceRoleForConfigConforms service-linked role in each member account to create conformance pack resources. This service-linked role includes the permissions to create Config rules and remediation configurations, even if member account IAM policies explicitly deny these actions.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

" + "documentation":"

Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how many organization conformance packs and how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

" }, "PutRemediationConfigurations":{ "name":"PutRemediationConfigurations", @@ -1301,7 +1301,7 @@ {"shape":"LimitExceededException"}, {"shape":"ValidationException"} ], - "documentation":"

Creates a service-linked configuration recorder that is linked to a specific Amazon Web Services service based on the ServicePrincipal you specify.

The configuration recorder's name, recordingGroup, recordingMode, and recordingScope is set by the service that is linked to the configuration recorder.

For more information and a list of supported services/service principals, see Working with the Configuration Recorder in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfig in your account. The service-linked role is created only when the role does not exist in your account.

The recording scope determines if you receive configuration items

The recording scope is set by the service that is linked to the configuration recorder and determines whether you receive configuration items (CIs) in the delivery channel. If the recording scope is internal, you will not receive CIs in the delivery channel.

Tags are added at creation and cannot be updated with this operation

Use TagResource and UntagResource to update tags after creation.

" + "documentation":"

Creates a service-linked configuration recorder that is linked to a specific Amazon Web Services service based on the ServicePrincipal you specify.

The configuration recorder's name, recordingGroup, recordingMode, and recordingScope is set by the service that is linked to the configuration recorder.

For more information, see Working with the Configuration Recorder in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfig in your account. The service-linked role is created only when the role does not exist in your account.

The recording scope determines if you receive configuration items

The recording scope is set by the service that is linked to the configuration recorder and determines whether you receive configuration items (CIs) in the delivery channel. If the recording scope is internal, you will not receive CIs in the delivery channel.

Tags are added at creation and cannot be updated with this operation

Use TagResource and UntagResource to update tags after creation.

" }, "PutStoredQuery":{ "name":"PutStoredQuery", @@ -1963,15 +1963,15 @@ }, "configuration":{ "shape":"Configuration", - "documentation":"

A JSON-encoded string that contains the contents for the resource configuration. This string needs to be deserialized using json.loads() before you can access the contents.

" + "documentation":"

The description of the resource configuration.

" }, "supplementaryConfiguration":{ "shape":"SupplementaryConfiguration", - "documentation":"

A string to string map that contains additional contents for the resource configuration.Config returns this field for certain resource types to supplement the information returned for the configuration field.

This string needs to be deserialized using json.loads() before you can access the contents.

" + "documentation":"

Configuration attributes that Config returns for certain resource types to supplement the information returned for the configuration parameter.

" }, "recordingFrequency":{ "shape":"RecordingFrequency", - "documentation":"

The recording frequency that Config uses to record configuration changes for the resource.

This field only appears in the API response when DAILY recording is enabled for a resource type. If this field is not present, CONTINUOUS recording is enabled for that resource type. For more information on daily recording and continuous recording, see Recording Frequency in the Config Developer Guide.

" + "documentation":"

The recording frequency that Config uses to record configuration changes for the resource.

" }, "configurationItemDeliveryTime":{ "shape":"ConfigurationItemDeliveryTime", @@ -2238,7 +2238,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes.

" + "documentation":"

Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes.

The scope can be empty.

" }, "Source":{ "shape":"Source", @@ -2565,19 +2565,19 @@ }, "configuration":{ "shape":"Configuration", - "documentation":"

A JSON-encoded string that contains the contents for the resource configuration. This string needs to be deserialized using json.loads() before you can access the contents.

" + "documentation":"

The description of the resource configuration.

" }, "supplementaryConfiguration":{ "shape":"SupplementaryConfiguration", - "documentation":"

A string to string map that contains additional contents for the resource configuration.Config returns this field for certain resource types to supplement the information returned for the configuration field.

This string to string map needs to be deserialized using json.loads() before you can accessing the contents.

" + "documentation":"

Configuration attributes that Config returns for certain resource types to supplement the information returned for the configuration parameter.

" }, "recordingFrequency":{ "shape":"RecordingFrequency", - "documentation":"

The recording frequency that Config uses to record configuration changes for the resource.

This field only appears in the API response when DAILY recording is enabled for a resource type. If this field is not present, CONTINUOUS recording is enabled for that resource type. For more information on daily recording and continuous recording, see Recording Frequency in the Config Developer Guide.

" + "documentation":"

The recording frequency that Config uses to record configuration changes for the resource.

" }, "configurationItemDeliveryTime":{ "shape":"ConfigurationItemDeliveryTime", - "documentation":"

The time when configuration changes for the resource were delivered.

This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording, this field will be populated. However, if you are using continuous recording, this field will be omitted since the delivery time is instantaneous as the CI is available right away.

For more information on daily recording and continuous recording, see Recording Frequency in the Config Developer Guide.

" + "documentation":"

The time when configuration changes for the resource were delivered.

This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording, this field will be populated. However, if you are using continuous recording, this field will be omitted since the delivery time is instantaneous as the CI is available right away. For more information on daily recording and continuous recording, see Recording Frequency in the Config Developer Guide.

" } }, "documentation":"

A list that contains detailed configurations of a specified resource.

" @@ -2608,7 +2608,7 @@ }, "name":{ "shape":"RecorderName", - "documentation":"

The name of the configuration recorder.

For customer managed configuration recorders, Config automatically assigns the name of \"default\" when creating a configuration recorder if you do not specify a name at creation time.

For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWSConfigurationRecorderFor\" to a new service-linked configuration recorder.

Changing the name of a configuration recorder

To change the name of the customer managed configuration recorder, you must delete it and create a new customer managed configuration recorder with a new name.

You cannot change the name of a service-linked configuration recorder.

" + "documentation":"

The name of the configuration recorder.

For customer managed configuration recorders, Config automatically assigns the name of \"default\" when creating a configuration recorder if you do not specify a name at creation time.

For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWS\" to a new service-linked configuration recorder.

Changing the name of a configuration recorder

To change the name of the customer managed configuration recorder, you must delete it and create a new customer managed configuration recorder with a new name.

You cannot change the name of a service-linked configuration recorder.

" }, "roleARN":{ "shape":"String", @@ -5193,7 +5193,7 @@ "members":{ "configurationItems":{ "shape":"ConfigurationItemList", - "documentation":"

An array of ConfigurationItems Objects. Contatins the configuration history for one or more resources.

" + "documentation":"

A list that contains the configuration history of one or more resources.

" }, "nextToken":{ "shape":"NextToken", @@ -5316,7 +5316,7 @@ "InvalidConfigurationRecorderNameException":{ "type":"structure", "members":{}, - "documentation":"

The configuration recorder name is not valid. The prefix \"AWSConfigurationRecorderFor\" is reserved for service-linked configuration recorders.

", + "documentation":"

You have provided a name for the customer managed configuration recorder that is not valid.

", "exception":true }, "InvalidDeliveryChannelNameException":{ @@ -6576,7 +6576,7 @@ }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

A string that contains the full conformance pack template body. The structure containing the template body has a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and remediation action (AWS::Config::RemediationConfiguration).

" + "documentation":"

A string containing the full conformance pack template body. The structure containing the template body has a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and remediation action (AWS::Config::RemediationConfiguration).

" }, "DeliveryS3Bucket":{ "shape":"DeliveryS3Bucket", @@ -6715,7 +6715,7 @@ }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

A string that contains the full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

" + "documentation":"

A string containing full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

" }, "DeliveryS3Bucket":{ "shape":"DeliveryS3Bucket", @@ -6874,7 +6874,7 @@ }, "Name":{ "shape":"RecorderName", - "documentation":"

The name of the specified configuration recorder.

For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWSConfigurationRecorderFor\" to the new service-linked configuration recorder.

" + "documentation":"

The name of the specified configuration recorder.

For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWS\" to the new service-linked configuration recorder.

" } } }, @@ -7983,7 +7983,42 @@ "AWS::RDS::OptionGroup", "AWS::Redshift::EndpointAccess", "AWS::Route53Resolver::FirewallRuleGroup", - "AWS::SSM::Document" + "AWS::SSM::Document", + "AWS::AppConfig::ExtensionAssociation", + "AWS::AppIntegrations::Application", + "AWS::AppSync::ApiCache", + "AWS::Bedrock::Guardrail", + "AWS::Bedrock::KnowledgeBase", + "AWS::Cognito::IdentityPool", + "AWS::Connect::Rule", + "AWS::Connect::User", + "AWS::EC2::ClientVpnTargetNetworkAssociation", + "AWS::EC2::EIPAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::VPCBlockPublicAccessExclusion", + "AWS::EC2::VPCBlockPublicAccessOptions", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::EC2::VPNConnectionRoute", + "AWS::Evidently::Segment", + "AWS::IAM::OIDCProvider", + "AWS::InspectorV2::Activation", + "AWS::MSK::ClusterPolicy", + "AWS::MSK::VpcConnection", + "AWS::MediaConnect::Gateway", + "AWS::MemoryDB::SubnetGroup", + "AWS::OpenSearchServerless::Collection", + "AWS::OpenSearchServerless::VpcEndpoint", + "AWS::Redshift::EndpointAuthorization", + "AWS::Route53Profiles::Profile", + "AWS::S3::StorageLensGroup", + "AWS::S3Express::BucketPolicy", + "AWS::S3Express::DirectoryBucket", + "AWS::SageMaker::InferenceExperiment", + "AWS::SecurityHub::Standard", + "AWS::Transfer::Profile" ] }, "ResourceTypeList":{ diff --git a/services/connect/pom.xml b/services/connect/pom.xml index aeeb785b21d9..8bd2265e73f8 100644 --- a/services/connect/pom.xml +++ b/services/connect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connect AWS Java SDK :: Services :: Connect diff --git a/services/connect/src/main/resources/codegen-resources/service-2.json b/services/connect/src/main/resources/codegen-resources/service-2.json index 31b33780739b..2e33e442286e 100644 --- a/services/connect/src/main/resources/codegen-resources/service-2.json +++ b/services/connect/src/main/resources/codegen-resources/service-2.json @@ -438,7 +438,7 @@ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Only the EMAIL and VOICE channels are supported. The supported initiation methods for EMAIL are: OUTBOUND, AGENT_REPLY, and FLOW. For VOICE the supported initiation methods are TRANSFER and the subtype connect:ExternalAudio.

Creates a new EMAIL or VOICE contact.

" + "documentation":"

Only the VOICE, EMAIL, and TASK channels are supported.

  • For VOICE: The supported initiation method is TRANSFER. The contacts created with this initiation method have a subtype connect:ExternalAudio.

  • For EMAIL: The supported initiation methods are OUTBOUND, AGENT_REPLY, and FLOW.

  • For TASK: The supported initiation method is API. Contacts created with this API have a sub-type of connect:ExternalTask.

Creates a new VOICE, EMAIL, or TASK contact.

After a contact is created, you can move it to the desired state by using the InitiateAs parameter. While you can use API to create task contacts that are in the COMPLETED state, you must contact Amazon Web Services Support before using it for bulk import use cases. Bulk import causes your requests to be throttled or fail if your CreateContact limits aren't high enough.

" }, "CreateContactFlow":{ "name":"CreateContactFlow", @@ -6674,6 +6674,44 @@ "member":{"shape":"Channel"}, "max":4 }, + "ChatContactMetrics":{ + "type":"structure", + "members":{ + "MultiParty":{ + "shape":"NullableBoolean", + "documentation":"

A boolean flag indicating whether multiparty chat or supervisor barge were enabled on this contact.

" + }, + "TotalMessages":{ + "shape":"Count", + "documentation":"

The number of chat messages on the contact.

" + }, + "TotalBotMessages":{ + "shape":"Count", + "documentation":"

The total number of bot and automated messages on a chat contact.

" + }, + "TotalBotMessageLengthInChars":{ + "shape":"Count", + "documentation":"

The total number of characters from bot and automated messages on a chat contact.

" + }, + "ConversationCloseTimeInMillis":{ + "shape":"DurationMillis", + "documentation":"

The time it took for a contact to end after the last customer message.

" + }, + "ConversationTurnCount":{ + "shape":"Count", + "documentation":"

The number of conversation turns in a chat contact, which represents the back-and-forth exchanges between customer and other participants.

" + }, + "AgentFirstResponseTimestamp":{ + "shape":"timestamp", + "documentation":"

The agent first response timestamp for a chat contact.

" + }, + "AgentFirstResponseTimeInMillis":{ + "shape":"DurationMillis", + "documentation":"

The time for an agent to respond after obtaining a chat contact.

" + } + }, + "documentation":"

Information about the overall participant interactions at the contact level.

" + }, "ChatContent":{ "type":"string", "max":16384, @@ -6734,6 +6772,24 @@ }, "documentation":"

A chat message.

" }, + "ChatMetrics":{ + "type":"structure", + "members":{ + "ChatContactMetrics":{ + "shape":"ChatContactMetrics", + "documentation":"

Information about the overall participant interactions at the contact level.

" + }, + "AgentMetrics":{ + "shape":"ParticipantMetrics", + "documentation":"

Information about agent interactions in a contact.

" + }, + "CustomerMetrics":{ + "shape":"ParticipantMetrics", + "documentation":"

Information about customer interactions in a contact.

" + } + }, + "documentation":"

Information about how agent, bot, and customer interact in a chat contact.

" + }, "ChatParticipantRoleConfig":{ "type":"structure", "required":["ParticipantTimerConfigList"], @@ -7120,6 +7176,10 @@ "shape":"QualityMetrics", "documentation":"

Information about the quality of the participant's media connection.

" }, + "ChatMetrics":{ + "shape":"ChatMetrics", + "documentation":"

Information about how agent, bot, and customer interact in a chat contact.

" + }, "DisconnectDetails":{ "shape":"DisconnectDetails", "documentation":"

Information about the call disconnect experience.

" @@ -7893,6 +7953,7 @@ }, "documentation":"

An object that can be used to specify Tag conditions or Hierarchy Group conditions inside the SearchFilter.

This accepts an OR of AND (List of List) input where:

  • The top level list specifies conditions that need to be applied with OR operator

  • The inner list specifies conditions that need to be applied with AND operator.

Only one field can be populated. Maximum number of allowed Tag conditions is 25. Maximum number of allowed Hierarchy Group conditions is 20.

" }, + "Count":{"type":"integer"}, "CreateAgentStatusRequest":{ "type":"structure", "required":[ @@ -8150,15 +8211,15 @@ }, "References":{ "shape":"ContactReferences", - "documentation":"

A formatted URL that is shown to an agent in the Contact Control Panel (CCP). Tasks can have the following reference types at the time of creation: URL | NUMBER | STRING | DATE | EMAIL | ATTACHMENT.

" + "documentation":"

A formatted URL that is shown to an agent in the Contact Control Panel (CCP). Tasks can have the following reference types at the time of creation: URL | NUMBER | STRING | DATE | EMAIL | ATTACHMENT.

" }, "Channel":{ "shape":"Channel", - "documentation":"

The channel for the contact

CreateContact only supports the EMAIL and VOICE channels. The following information that states other channels are supported is incorrect. We are working to update this topic.

" + "documentation":"

The channel for the contact.

The CHAT channel is not supported. The following information is incorrect. We're working to correct it.

" }, "InitiationMethod":{ "shape":"ContactInitiationMethod", - "documentation":"

Indicates how the contact was initiated.

CreateContact only supports the following initiation methods:

  • For EMAIL: OUTBOUND, AGENT_REPLY, and FLOW.

  • For VOICE: TRANSFER and the subtype connect:ExternalAudio.

The following information that states other initiation methods are supported is incorrect. We are working to update this topic.

" + "documentation":"

Indicates how the contact was initiated.

CreateContact only supports the following initiation methods. Valid values by channel are:

  • For VOICE: TRANSFER and the subtype connect:ExternalAudio

  • For EMAIL: OUTBOUND | AGENT_REPLY | FLOW

  • For TASK: API

The other channels listed below are incorrect. We're working to correct this information.

" }, "ExpiryDurationInMinutes":{ "shape":"ExpiryDurationInMinutes", @@ -8166,11 +8227,11 @@ }, "UserInfo":{ "shape":"UserInfo", - "documentation":"

User details for the contact

UserInfo is required when creating an EMAIL contact with OUTBOUND and AGENT_REPLY contact initiation methods.

" + "documentation":"

User details for the contact

UserInfo is required when creating an EMAIL contact with OUTBOUND and AGENT_REPLY contact initiation methods.

" }, "InitiateAs":{ "shape":"InitiateAs", - "documentation":"

Initial state of the contact when it's created

" + "documentation":"

Initial state of the contact when it's created. Only TASK channel contacts can be initiated with COMPLETED state.

" }, "Name":{ "shape":"Name", @@ -11835,6 +11896,10 @@ "min":0 }, "DurationInSeconds":{"type":"integer"}, + "DurationMillis":{ + "type":"long", + "min":0 + }, "EffectiveHoursOfOperationList":{ "type":"list", "member":{"shape":"EffectiveHoursOfOperations"} @@ -17948,6 +18013,7 @@ }, "documentation":"

The type of notification recipient.

" }, + "NullableBoolean":{"type":"boolean"}, "NullableProficiencyLevel":{ "type":"float", "max":5.0, @@ -18263,6 +18329,48 @@ "max":256, "min":1 }, + "ParticipantMetrics":{ + "type":"structure", + "members":{ + "ParticipantId":{ + "shape":"ParticipantId", + "documentation":"

The Participant's ID.

" + }, + "ParticipantType":{ + "shape":"ParticipantType", + "documentation":"

Information about the conversation participant. Following are the participant types: [Agent, Customer, Supervisor].

" + }, + "ConversationAbandon":{ + "shape":"NullableBoolean", + "documentation":"

A boolean flag indicating whether the chat conversation was abandoned by a Participant.

" + }, + "MessagesSent":{ + "shape":"Count", + "documentation":"

Number of chat messages sent by Participant.

" + }, + "NumResponses":{ + "shape":"Count", + "documentation":"

Number of chat messages sent by Participant.

" + }, + "MessageLengthInChars":{ + "shape":"Count", + "documentation":"

Number of chat characters sent by Participant.

" + }, + "TotalResponseTimeInMillis":{ + "shape":"DurationMillis", + "documentation":"

Total chat response time by Participant.

" + }, + "MaxResponseTimeInMillis":{ + "shape":"DurationMillis", + "documentation":"

Maximum chat response time by Participant.

" + }, + "LastMessageTimestamp":{ + "shape":"timestamp", + "documentation":"

Timestamp of last chat message by Participant.

" + } + }, + "documentation":"

Information about a participant's interactions in a contact.

" + }, "ParticipantRole":{ "type":"string", "enum":[ diff --git a/services/connectcampaigns/pom.xml b/services/connectcampaigns/pom.xml index 931179994ffd..72b4c27fcf53 100644 --- a/services/connectcampaigns/pom.xml +++ b/services/connectcampaigns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connectcampaigns AWS Java SDK :: Services :: Connect Campaigns diff --git a/services/connectcampaignsv2/pom.xml b/services/connectcampaignsv2/pom.xml index c6e5fe1a6784..c30a2822734f 100644 --- a/services/connectcampaignsv2/pom.xml +++ b/services/connectcampaignsv2/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connectcampaignsv2 AWS Java SDK :: Services :: Connect Campaigns V2 diff --git a/services/connectcases/pom.xml b/services/connectcases/pom.xml index a60351598539..3b9a55170f9c 100644 --- a/services/connectcases/pom.xml +++ b/services/connectcases/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connectcases AWS Java SDK :: Services :: Connect Cases diff --git a/services/connectcontactlens/pom.xml b/services/connectcontactlens/pom.xml index 87a4fedd3535..b8fc04d596bb 100644 --- a/services/connectcontactlens/pom.xml +++ b/services/connectcontactlens/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connectcontactlens AWS Java SDK :: Services :: Connect Contact Lens diff --git a/services/connectparticipant/pom.xml b/services/connectparticipant/pom.xml index 9ed316f0f666..6e01cbea3144 100644 --- a/services/connectparticipant/pom.xml +++ b/services/connectparticipant/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT connectparticipant AWS Java SDK :: Services :: ConnectParticipant diff --git a/services/controlcatalog/pom.xml b/services/controlcatalog/pom.xml index 235940cc306c..38a8a4eef83c 100644 --- a/services/controlcatalog/pom.xml +++ b/services/controlcatalog/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT controlcatalog AWS Java SDK :: Services :: Control Catalog diff --git a/services/controltower/pom.xml b/services/controltower/pom.xml index 9628b18a1b58..d1849c689704 100644 --- a/services/controltower/pom.xml +++ b/services/controltower/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT controltower AWS Java SDK :: Services :: Control Tower diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml index f07617f6bbfa..0595c98e9816 100644 --- a/services/costandusagereport/pom.xml +++ b/services/costandusagereport/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT costandusagereport AWS Java SDK :: Services :: AWS Cost and Usage Report diff --git a/services/costexplorer/pom.xml b/services/costexplorer/pom.xml index 1aba64fe0055..f83dca7f85c3 100644 --- a/services/costexplorer/pom.xml +++ b/services/costexplorer/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 costexplorer diff --git a/services/costoptimizationhub/pom.xml b/services/costoptimizationhub/pom.xml index 2963e9cad639..13e9c9699dd7 100644 --- a/services/costoptimizationhub/pom.xml +++ b/services/costoptimizationhub/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT costoptimizationhub AWS Java SDK :: Services :: Cost Optimization Hub diff --git a/services/customerprofiles/pom.xml b/services/customerprofiles/pom.xml index 734f7b32c465..42abe9174fee 100644 --- a/services/customerprofiles/pom.xml +++ b/services/customerprofiles/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT customerprofiles AWS Java SDK :: Services :: Customer Profiles diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml index d2c2a263b773..87ef67f9460d 100644 --- a/services/databasemigration/pom.xml +++ b/services/databasemigration/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT databasemigration AWS Java SDK :: Services :: AWS Database Migration Service diff --git a/services/databrew/pom.xml b/services/databrew/pom.xml index 9e298ef2b03c..5cdd6139e1a4 100644 --- a/services/databrew/pom.xml +++ b/services/databrew/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT databrew AWS Java SDK :: Services :: Data Brew diff --git a/services/dataexchange/pom.xml b/services/dataexchange/pom.xml index f7e0b3cae1c3..f46b8b66e508 100644 --- a/services/dataexchange/pom.xml +++ b/services/dataexchange/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dataexchange AWS Java SDK :: Services :: DataExchange diff --git a/services/dataexchange/src/main/resources/codegen-resources/service-2.json b/services/dataexchange/src/main/resources/codegen-resources/service-2.json index 15dfab2322e5..4abd274e8a99 100644 --- a/services/dataexchange/src/main/resources/codegen-resources/service-2.json +++ b/services/dataexchange/src/main/resources/codegen-resources/service-2.json @@ -990,7 +990,7 @@ "required":["JobId"], "members":{ "JobId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a job.

", "location":"uri", "locationName":"JobId" @@ -1348,7 +1348,7 @@ "documentation":"

An optional comment about the revision.

" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -1657,19 +1657,19 @@ ], "members":{ "AssetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for an asset.

", "location":"uri", "locationName":"AssetId" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -1693,7 +1693,7 @@ "required":["DataSetId"], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -1720,13 +1720,13 @@ ], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -1994,19 +1994,19 @@ ], "members":{ "AssetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for an asset.

", "location":"uri", "locationName":"AssetId" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -2153,7 +2153,7 @@ "required":["DataSetId"], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -2259,7 +2259,7 @@ "required":["JobId"], "members":{ "JobId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a job.

", "location":"uri", "locationName":"JobId" @@ -2391,13 +2391,13 @@ ], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -2464,7 +2464,10 @@ "NONE" ] }, - "Id":{"type":"string"}, + "Id":{ + "type":"string", + "pattern":"[a-zA-Z0-9]{30,40}" + }, "ImportAssetFromApiGatewayApiRequestDetails":{ "type":"structure", "required":[ @@ -3143,7 +3146,7 @@ "required":["DataSetId"], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -3428,7 +3431,7 @@ ], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -3446,7 +3449,7 @@ "locationName":"nextToken" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -3891,13 +3894,13 @@ ], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -4196,7 +4199,7 @@ "documentation":"

Free-form text field for providers to add information about their notifications.

" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

Affected data set of the notification.

", "location":"uri", "locationName":"DataSetId" @@ -4256,7 +4259,7 @@ "required":["JobId"], "members":{ "JobId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a job.

", "location":"uri", "locationName":"JobId" @@ -4401,13 +4404,13 @@ ], "members":{ "AssetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for an asset.

", "location":"uri", "locationName":"AssetId" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -4417,7 +4420,7 @@ "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name. When importing from AWS Lake Formation, the static values of \"Database(s) included in the LF-tag policy\" or \"Table(s) included in LF-tag policy\" are used as the name.

" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" @@ -4474,7 +4477,7 @@ "required":["DataSetId"], "members":{ "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -4591,7 +4594,7 @@ "documentation":"

An optional comment about the revision.

" }, "DataSetId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a data set.

", "location":"uri", "locationName":"DataSetId" @@ -4601,7 +4604,7 @@ "documentation":"

Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

" }, "RevisionId":{ - "shape":"__string", + "shape":"Id", "documentation":"

The unique identifier for a revision.

", "location":"uri", "locationName":"RevisionId" diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml index 79cdf853d5a1..04a493b97b53 100644 --- a/services/datapipeline/pom.xml +++ b/services/datapipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT datapipeline AWS Java SDK :: Services :: AWS Data Pipeline diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml index 8c59e1002759..b7248b0a6e0a 100644 --- a/services/datasync/pom.xml +++ b/services/datasync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT datasync AWS Java SDK :: Services :: DataSync diff --git a/services/datazone/pom.xml b/services/datazone/pom.xml index c6ba5a1094f7..b857b4400e0f 100644 --- a/services/datazone/pom.xml +++ b/services/datazone/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT datazone AWS Java SDK :: Services :: Data Zone diff --git a/services/datazone/src/main/resources/codegen-resources/service-2.json b/services/datazone/src/main/resources/codegen-resources/service-2.json index 5c4f47a75d34..d06628e74619 100644 --- a/services/datazone/src/main/resources/codegen-resources/service-2.json +++ b/services/datazone/src/main/resources/codegen-resources/service-2.json @@ -21987,6 +21987,10 @@ "location":"uri", "locationName":"domainIdentifier" }, + "domainUnitId":{ + "shape":"DomainUnitId", + "documentation":"

The ID of the domain unit.

" + }, "environmentDeploymentDetails":{ "shape":"EnvironmentDeploymentDetails", "documentation":"

The environment deployment details of the project.

" diff --git a/services/dax/pom.xml b/services/dax/pom.xml index ae4f44c73577..25672cba0575 100644 --- a/services/dax/pom.xml +++ b/services/dax/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dax AWS Java SDK :: Services :: Amazon DynamoDB Accelerator (DAX) diff --git a/services/deadline/pom.xml b/services/deadline/pom.xml index 7a6e247f2d35..1ab6eab3b22b 100644 --- a/services/deadline/pom.xml +++ b/services/deadline/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT deadline AWS Java SDK :: Services :: Deadline diff --git a/services/detective/pom.xml b/services/detective/pom.xml index f693140f967f..c1770b7bfecb 100644 --- a/services/detective/pom.xml +++ b/services/detective/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT detective AWS Java SDK :: Services :: Detective diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml index 51d9646bba06..b44c44f8d641 100644 --- a/services/devicefarm/pom.xml +++ b/services/devicefarm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT devicefarm AWS Java SDK :: Services :: AWS Device Farm diff --git a/services/devopsguru/pom.xml b/services/devopsguru/pom.xml index 7b6aaf1183ed..77bc4575f9a1 100644 --- a/services/devopsguru/pom.xml +++ b/services/devopsguru/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT devopsguru AWS Java SDK :: Services :: Dev Ops Guru diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml index 5db69b638f21..c634ff2f760e 100644 --- a/services/directconnect/pom.xml +++ b/services/directconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT directconnect AWS Java SDK :: Services :: AWS Direct Connect diff --git a/services/directory/pom.xml b/services/directory/pom.xml index 1f96cec55c03..788476236893 100644 --- a/services/directory/pom.xml +++ b/services/directory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT directory AWS Java SDK :: Services :: AWS Directory Service diff --git a/services/directoryservicedata/pom.xml b/services/directoryservicedata/pom.xml index 6a24d434c916..479c10c67fff 100644 --- a/services/directoryservicedata/pom.xml +++ b/services/directoryservicedata/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT directoryservicedata AWS Java SDK :: Services :: Directory Service Data diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml index 8fb5070770ef..4daadee90bd2 100644 --- a/services/dlm/pom.xml +++ b/services/dlm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dlm AWS Java SDK :: Services :: DLM diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml index 7347c64c3644..582fd4700931 100644 --- a/services/docdb/pom.xml +++ b/services/docdb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT docdb AWS Java SDK :: Services :: DocDB diff --git a/services/docdbelastic/pom.xml b/services/docdbelastic/pom.xml index 5be39422cd32..a3e5feab1a53 100644 --- a/services/docdbelastic/pom.xml +++ b/services/docdbelastic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT docdbelastic AWS Java SDK :: Services :: Doc DB Elastic diff --git a/services/drs/pom.xml b/services/drs/pom.xml index a6fba9581ed7..775aa70a5cc9 100644 --- a/services/drs/pom.xml +++ b/services/drs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT drs AWS Java SDK :: Services :: Drs diff --git a/services/dsql/pom.xml b/services/dsql/pom.xml index 760d3ba31ec1..cd65528ef300 100644 --- a/services/dsql/pom.xml +++ b/services/dsql/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dsql AWS Java SDK :: Services :: DSQL diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml index bf3d7421100a..673011fd1b12 100644 --- a/services/dynamodb/pom.xml +++ b/services/dynamodb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT dynamodb AWS Java SDK :: Services :: Amazon DynamoDB diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json index fda1bf85a08c..b5b8297d316a 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json @@ -181,8 +181,8 @@ "authSchemes": [ { "signingRegion": "us-east-1", - "name": "sigv4", - "signingName": "dynamodb" + "signingName": "dynamodb", + "name": "sigv4" } ] }, diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json index 6c38cd611222..bf08719fc3a7 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json @@ -2794,9 +2794,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2830,9 +2830,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2882,9 +2882,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2910,9 +2910,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2938,9 +2938,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2966,9 +2966,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -2994,9 +2994,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3022,9 +3022,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3097,9 +3097,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3135,9 +3135,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3173,9 +3173,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3211,9 +3211,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3280,9 +3280,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3330,9 +3330,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3357,9 +3357,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3419,9 +3419,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3455,9 +3455,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3507,9 +3507,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3535,9 +3535,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3563,9 +3563,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3591,9 +3591,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3619,9 +3619,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3647,9 +3647,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3722,9 +3722,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3760,9 +3760,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3798,9 +3798,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3836,9 +3836,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3905,9 +3905,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3955,9 +3955,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -3982,9 +3982,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4044,9 +4044,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4080,9 +4080,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4132,9 +4132,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4160,9 +4160,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4188,9 +4188,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4216,9 +4216,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4244,9 +4244,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4272,9 +4272,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4347,9 +4347,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4385,9 +4385,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4423,9 +4423,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4461,9 +4461,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4530,9 +4530,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4580,9 +4580,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, @@ -4607,9 +4607,9 @@ "properties": { "authSchemes": [ { - "signingName": "dynamodb", "name": "sigv4", - "signingRegion": "us-east-1" + "signingRegion": "us-east-1", + "signingName": "dynamodb" } ] }, diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json index f81cb0ef7e4a..20e0657d7bd7 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json @@ -62,7 +62,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ItemCollectionSizeLimitExceededException"}, {"shape":"RequestLimitExceeded"}, - {"shape":"InternalServerError"} + {"shape":"InternalServerError"}, + {"shape":"ReplicatedWriteConflictException"} ], "documentation":"

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can transmit up to 16MB of data over the network, consisting of up to 25 item put or delete operations. While individual items can be up to 400 KB once stored, it's important to note that an item's representation might be greater than 400KB while being sent in DynamoDB's JSON format for the API call. For more details on this distinction, see Naming Rules and Data Types.

BatchWriteItem cannot update items. If you perform a BatchWriteItem operation on an existing item, that item's values will be overwritten by the operation and it will appear like it was updated. To update items, we recommend you use the UpdateItem action.

The individual PutItem and DeleteItem operations specified in BatchWriteItem are atomic; however BatchWriteItem as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the UnprocessedItems response parameter. You can investigate and optionally resend the requests. Typically, you would call BatchWriteItem in a loop. Each iteration would check for unprocessed items and submit a new BatchWriteItem request with those unprocessed items until all items have been processed.

For tables and indexes with provisioned capacity, if none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchWriteItem returns a ProvisionedThroughputExceededException. For all tables and indexes, if none of the items can be processed due to other throttling scenarios (such as exceeding partition level limits), then BatchWriteItem returns a ThrottlingException.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

With BatchWriteItem, you can efficiently write or delete large amounts of data, such as from Amazon EMR, or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, BatchWriteItem does not behave in the same way as individual PutItem and DeleteItem calls would. For example, you cannot specify conditions on individual put and delete requests, and BatchWriteItem does not return deleted items in the response.

If you use a programming language that supports concurrency, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, you must update or delete the specified items one at a time. In both situations, BatchWriteItem performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit.

If one or more of the following is true, DynamoDB rejects the entire batch write operation:

  • One or more tables specified in the BatchWriteItem request does not exist.

  • Primary key attributes specified on an item in the request do not match those in the corresponding table's primary key schema.

  • You try to perform multiple operations on the same item in the same BatchWriteItem request. For example, you cannot put and delete the same item in the same BatchWriteItem request.

  • Your request contains at least two items with identical hash and range keys (which essentially is two put operations).

  • There are more than 25 requests in the batch.

  • Any individual item in a batch exceeds 400 KB.

  • The total request size exceeds 16 MB.

  • Any individual items with keys exceeding the key length limits. For a partition key, the limit is 2048 bytes and for a sort key, the limit is 1024 bytes.

", "endpointdiscovery":{}, @@ -192,7 +193,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version).

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete. For the full list of table states, see TableStatus.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", + "documentation":"

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete. For the full list of table states, see TableStatus.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", "endpointdiscovery":{} }, "DescribeBackup":{ @@ -349,7 +350,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version).

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", + "documentation":"

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", "endpointdiscovery":{} }, "DescribeTableReplicaAutoScaling":{ @@ -364,7 +365,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Describes auto scaling settings across replicas of the global table at once.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version).

" + "documentation":"

Describes auto scaling settings across replicas of the global table at once.

" }, "DescribeTimeToLive":{ "name":"DescribeTimeToLive", @@ -854,7 +855,7 @@ {"shape":"ReplicaNotFoundException"}, {"shape":"TableNotFoundException"} ], - "documentation":"

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version). If you are using global tables Version 2019.11.21 you can use UpdateTable instead.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

  • The global secondary indexes must have the same provisioned and maximum write capacity units.

", + "documentation":"

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

If you are using global tables Version 2019.11.21 (Current) you can use UpdateTable instead.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

  • The global secondary indexes must have the same provisioned and maximum write capacity units.

", "endpointdiscovery":{} }, "UpdateGlobalTableSettings":{ @@ -928,7 +929,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version).

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it's executing, the table status changes from ACTIVE to UPDATING. While it's UPDATING, you can't issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", + "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it's executing, the table status changes from ACTIVE to UPDATING. While it's UPDATING, you can't issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", "endpointdiscovery":{} }, "UpdateTableReplicaAutoScaling":{ @@ -945,7 +946,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

Updates auto scaling settings on your global tables at once.

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version).

" + "documentation":"

Updates auto scaling settings on your global tables at once.

" }, "UpdateTimeToLive":{ "name":"UpdateTimeToLive", @@ -1989,6 +1990,17 @@ } } }, + "CreateGlobalTableWitnessGroupMemberAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{ + "shape":"RegionName", + "documentation":"

The Amazon Web Services Region name to be added as a witness Region for the MRSC global table. The witness must be in a different Region than the replicas and within the same Region set:

  • US Region set: US East (N. Virginia), US East (Ohio), US West (Oregon)

  • EU Region set: Europe (Ireland), Europe (London), Europe (Paris), Europe (Frankfurt)

  • AP Region set: Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Osaka)

" + } + }, + "documentation":"

Specifies the action to add a new witness Region to a MRSC global table. A MRSC global table can be configured with either three replicas, or with two replicas and one witness.

" + }, "CreateReplicaAction":{ "type":"structure", "required":["RegionName"], @@ -2211,6 +2223,17 @@ }, "documentation":"

Represents a global secondary index to be deleted from an existing table.

" }, + "DeleteGlobalTableWitnessGroupMemberAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{ + "shape":"RegionName", + "documentation":"

The witness Region name to be removed from the MRSC global table.

" + } + }, + "documentation":"

Specifies the action to remove a witness Region from a MRSC global table. You cannot delete a single witness from a MRSC global table - you must delete both a replica and the witness together. The deletion of both a witness and replica converts the remaining replica to a single-Region DynamoDB table.

" + }, "DeleteItemInput":{ "type":"structure", "required":[ @@ -3461,6 +3484,44 @@ "UPDATING" ] }, + "GlobalTableWitnessDescription":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"RegionName", + "documentation":"

The name of the Amazon Web Services Region that serves as a witness for the MRSC global table.

" + }, + "WitnessStatus":{ + "shape":"WitnessStatus", + "documentation":"

The current status of the witness Region in the MRSC global table.

" + } + }, + "documentation":"

Represents the properties of a witness Region in a MRSC global table.

" + }, + "GlobalTableWitnessDescriptionList":{ + "type":"list", + "member":{"shape":"GlobalTableWitnessDescription"} + }, + "GlobalTableWitnessGroupUpdate":{ + "type":"structure", + "members":{ + "Create":{ + "shape":"CreateGlobalTableWitnessGroupMemberAction", + "documentation":"

Specifies a witness Region to be added to a new MRSC global table. The witness must be added when creating the MRSC global table.

" + }, + "Delete":{ + "shape":"DeleteGlobalTableWitnessGroupMemberAction", + "documentation":"

Specifies a witness Region to be removed from an existing global table. Must be done in conjunction with removing a replica. The deletion of both a witness and replica converts the remaining replica to a single-Region DynamoDB table.

" + } + }, + "documentation":"

Represents one of the following:

  • A new witness to be added to a new global table.

  • An existing witness to be removed from an existing global table.

You can configure one witness per MRSC global table.

" + }, + "GlobalTableWitnessGroupUpdateList":{ + "type":"list", + "member":{"shape":"GlobalTableWitnessGroupUpdate"}, + "max":1, + "min":1 + }, "IdempotentParameterMismatchException":{ "type":"structure", "members":{ @@ -5229,7 +5290,10 @@ "DELETING", "ACTIVE", "REGION_DISABLED", - "INACCESSIBLE_ENCRYPTION_CREDENTIALS" + "INACCESSIBLE_ENCRYPTION_CREDENTIALS", + "ARCHIVING", + "ARCHIVED", + "REPLICATION_NOT_AUTHORIZED" ] }, "ReplicaStatusDescription":{"type":"string"}, @@ -5258,7 +5322,8 @@ "message":{"shape":"ErrorMessage"} }, "documentation":"

The request was rejected because one or more items in the request are being modified by a request in another Region.

", - "exception":true + "exception":true, + "retryable":{"throttling":false} }, "ReplicationGroupUpdate":{ "type":"structure", @@ -5987,6 +6052,10 @@ "shape":"ReplicaDescriptionList", "documentation":"

Represents replicas of the table.

" }, + "GlobalTableWitnesses":{ + "shape":"GlobalTableWitnessDescriptionList", + "documentation":"

The witness Region and its current status in the MRSC global table. Only one witness Region can be configured per MRSC global table.

" + }, "RestoreSummary":{ "shape":"RestoreSummary", "documentation":"

Contains details for the restore.

" @@ -6017,7 +6086,7 @@ }, "MultiRegionConsistency":{ "shape":"MultiRegionConsistency", - "documentation":"

Indicates one of the following consistency modes for a global table:

  • EVENTUAL: Indicates that the global table is configured for multi-Region eventual consistency.

  • STRONG: Indicates that the global table is configured for multi-Region strong consistency (preview).

    Multi-Region strong consistency (MRSC) is a new DynamoDB global tables capability currently available in preview mode. For more information, see Global tables multi-Region strong consistency.

If you don't specify this field, the global table consistency mode defaults to EVENTUAL.

" + "documentation":"

Indicates one of the following consistency modes for a global table:

  • EVENTUAL: Indicates that the global table is configured for multi-Region eventual consistency (MREC).

  • STRONG: Indicates that the global table is configured for multi-Region strong consistency (MRSC).

If you don't specify this field, the global table consistency mode defaults to EVENTUAL. For more information about global tables consistency modes, see Consistency modes in DynamoDB developer guide.

" } }, "documentation":"

Represents the properties of a table.

" @@ -6061,7 +6130,8 @@ "ACTIVE", "INACCESSIBLE_ENCRYPTION_CREDENTIALS", "ARCHIVING", - "ARCHIVED" + "ARCHIVED", + "REPLICATION_NOT_AUTHORIZED" ] }, "TableWarmThroughputDescription":{ @@ -6733,7 +6803,7 @@ }, "ReplicaUpdates":{ "shape":"ReplicationGroupUpdateList", - "documentation":"

A list of replica update actions (create, delete, or update) for the table.

For global tables, this property only applies to global tables using Version 2019.11.21 (Current version).

" + "documentation":"

A list of replica update actions (create, delete, or update) for the table.

" }, "TableClass":{ "shape":"TableClass", @@ -6745,7 +6815,11 @@ }, "MultiRegionConsistency":{ "shape":"MultiRegionConsistency", - "documentation":"

Specifies the consistency mode for a new global table. This parameter is only valid when you create a global table by specifying one or more Create actions in the ReplicaUpdates action list.

You can specify one of the following consistency modes:

  • EVENTUAL: Configures a new global table for multi-Region eventual consistency. This is the default consistency mode for global tables.

  • STRONG: Configures a new global table for multi-Region strong consistency (preview).

    Multi-Region strong consistency (MRSC) is a new DynamoDB global tables capability currently available in preview mode. For more information, see Global tables multi-Region strong consistency.

If you don't specify this parameter, the global table consistency mode defaults to EVENTUAL.

" + "documentation":"

Specifies the consistency mode for a new global table. This parameter is only valid when you create a global table by specifying one or more Create actions in the ReplicaUpdates action list.

You can specify one of the following consistency modes:

  • EVENTUAL: Configures a new global table for multi-Region eventual consistency (MREC). This is the default consistency mode for global tables.

  • STRONG: Configures a new global table for multi-Region strong consistency (MRSC).

If you don't specify this field, the global table consistency mode defaults to EVENTUAL. For more information about global tables consistency modes, see Consistency modes in DynamoDB developer guide.

" + }, + "GlobalTableWitnessUpdates":{ + "shape":"GlobalTableWitnessGroupUpdateList", + "documentation":"

A list of witness updates for a MRSC global table. A witness provides a cost-effective alternative to a full replica in a MRSC global table by maintaining replicated change data written to global table replicas. You cannot perform read or write operations on a witness. For each witness, you can request one action:

  • Create - add a new witness to the global table.

  • Delete - remove a witness from the global table.

You can create or delete only one witness per UpdateTable operation.

For more information, see Multi-Region strong consistency (MRSC) in the Amazon DynamoDB Developer Guide

" }, "OnDemandThroughput":{ "shape":"OnDemandThroughput", @@ -6839,6 +6913,14 @@ }, "documentation":"

Provides visibility into the number of read and write operations your table or secondary index can instantaneously support. The settings can be modified using the UpdateTable operation to meet the throughput requirements of an upcoming peak event.

" }, + "WitnessStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "ACTIVE" + ] + }, "WriteRequest":{ "type":"structure", "members":{ diff --git a/services/ebs/pom.xml b/services/ebs/pom.xml index 66f638294350..3610e0714aaf 100644 --- a/services/ebs/pom.xml +++ b/services/ebs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ebs AWS Java SDK :: Services :: EBS diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml index c5c291554755..e98ef2fcb917 100644 --- a/services/ec2/pom.xml +++ b/services/ec2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ec2 AWS Java SDK :: Services :: Amazon EC2 diff --git a/services/ec2/src/main/resources/codegen-resources/service-2.json b/services/ec2/src/main/resources/codegen-resources/service-2.json index e7e699218864..e6a414fca125 100644 --- a/services/ec2/src/main/resources/codegen-resources/service-2.json +++ b/services/ec2/src/main/resources/codegen-resources/service-2.json @@ -34662,6 +34662,10 @@ "NextToken":{ "shape":"String", "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "Context":{ + "shape":"String", + "documentation":"

Reserved.

" } } }, diff --git a/services/ec2instanceconnect/pom.xml b/services/ec2instanceconnect/pom.xml index d2274ac1a77e..d04ee5b4df83 100644 --- a/services/ec2instanceconnect/pom.xml +++ b/services/ec2instanceconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ec2instanceconnect AWS Java SDK :: Services :: EC2 Instance Connect diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml index 6e10829017b7..a331e3e6b4fa 100644 --- a/services/ecr/pom.xml +++ b/services/ecr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ecr AWS Java SDK :: Services :: Amazon EC2 Container Registry diff --git a/services/ecrpublic/pom.xml b/services/ecrpublic/pom.xml index 907b6263d2f7..fa6cbd19bb4a 100644 --- a/services/ecrpublic/pom.xml +++ b/services/ecrpublic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ecrpublic AWS Java SDK :: Services :: ECR PUBLIC diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml index e4ad9ee96e18..9a3f936952f8 100644 --- a/services/ecs/pom.xml +++ b/services/ecs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ecs AWS Java SDK :: Services :: Amazon EC2 Container Service diff --git a/services/efs/pom.xml b/services/efs/pom.xml index 46456cfc6eb3..76ab5efef605 100644 --- a/services/efs/pom.xml +++ b/services/efs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT efs AWS Java SDK :: Services :: Amazon Elastic File System diff --git a/services/eks/pom.xml b/services/eks/pom.xml index 3ae5e5080ff8..e4f6eb0a91c1 100644 --- a/services/eks/pom.xml +++ b/services/eks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT eks AWS Java SDK :: Services :: EKS diff --git a/services/eksauth/pom.xml b/services/eksauth/pom.xml index 99392a725c84..d28afb6062ba 100644 --- a/services/eksauth/pom.xml +++ b/services/eksauth/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT eksauth AWS Java SDK :: Services :: EKS Auth diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml index 085420fbba79..e4d9047454aa 100644 --- a/services/elasticache/pom.xml +++ b/services/elasticache/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elasticache AWS Java SDK :: Services :: Amazon ElastiCache diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml index c0f714a49799..7a015854976e 100644 --- a/services/elasticbeanstalk/pom.xml +++ b/services/elasticbeanstalk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elasticbeanstalk AWS Java SDK :: Services :: AWS Elastic Beanstalk diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml index 1670554fd9e8..e426e4da228b 100644 --- a/services/elasticloadbalancing/pom.xml +++ b/services/elasticloadbalancing/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elasticloadbalancing AWS Java SDK :: Services :: Elastic Load Balancing diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml index c1d1b0e2cf21..c04b40fc9c47 100644 --- a/services/elasticloadbalancingv2/pom.xml +++ b/services/elasticloadbalancingv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elasticloadbalancingv2 AWS Java SDK :: Services :: Elastic Load Balancing V2 diff --git a/services/elasticsearch/pom.xml b/services/elasticsearch/pom.xml index fe35726e1bb2..f92512adc699 100644 --- a/services/elasticsearch/pom.xml +++ b/services/elasticsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elasticsearch AWS Java SDK :: Services :: Amazon Elasticsearch Service diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml index ba8e26b85222..f725dad0337a 100644 --- a/services/elastictranscoder/pom.xml +++ b/services/elastictranscoder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT elastictranscoder AWS Java SDK :: Services :: Amazon Elastic Transcoder diff --git a/services/emr/pom.xml b/services/emr/pom.xml index 06942bff7991..82457de17f60 100644 --- a/services/emr/pom.xml +++ b/services/emr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT emr AWS Java SDK :: Services :: Amazon EMR diff --git a/services/emrcontainers/pom.xml b/services/emrcontainers/pom.xml index eeeedec92f77..d78d7f96a05e 100644 --- a/services/emrcontainers/pom.xml +++ b/services/emrcontainers/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT emrcontainers AWS Java SDK :: Services :: EMR Containers diff --git a/services/emrserverless/pom.xml b/services/emrserverless/pom.xml index fd1c5460adf9..732a72faba6b 100644 --- a/services/emrserverless/pom.xml +++ b/services/emrserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT emrserverless AWS Java SDK :: Services :: EMR Serverless diff --git a/services/entityresolution/pom.xml b/services/entityresolution/pom.xml index 7424fd382e05..9c3003f4966f 100644 --- a/services/entityresolution/pom.xml +++ b/services/entityresolution/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT entityresolution AWS Java SDK :: Services :: Entity Resolution diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml index 54396ba57e5b..a3af2e5a73b1 100644 --- a/services/eventbridge/pom.xml +++ b/services/eventbridge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT eventbridge AWS Java SDK :: Services :: EventBridge diff --git a/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json index 46c93ffd489f..c47befc2231e 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -34,6 +34,79 @@ } }, "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [ { diff --git a/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json b/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json index 3655193a0a97..28c6f2091780 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json @@ -442,19 +442,6 @@ "UseDualStack": false } }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, { "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { @@ -468,32 +455,6 @@ "UseDualStack": false } }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, { "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { @@ -816,15 +777,107 @@ } }, { - "documentation": "Valid EndpointId with DualStack enabled and partition does not support DualStack", + "documentation": "legacy fips endpoint @ us-gov-east-1", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } }, "params": { - "EndpointId": "abc123.456def", + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "legacy non-fips endpoint @ us-gov-east-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Dualstack fips endpoint @ us-gov-east-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": true + } + }, + { + "documentation": "Dualstack non-fips endpoint @ us-gov-east-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "legacy fips endpoint @ us-gov-west-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "legacy non-fips endpoint @ us-gov-west-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Dualstack fips endpoint @ us-gov-west-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "Dualstack non-fips endpoint @ us-gov-west-1", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false } } ], diff --git a/services/evidently/pom.xml b/services/evidently/pom.xml index 0af48ebdae70..fd898634a7fa 100644 --- a/services/evidently/pom.xml +++ b/services/evidently/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT evidently AWS Java SDK :: Services :: Evidently diff --git a/services/evs/pom.xml b/services/evs/pom.xml index 9f6bf579ee33..cae85b4f3aec 100644 --- a/services/evs/pom.xml +++ b/services/evs/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT evs AWS Java SDK :: Services :: Evs diff --git a/services/finspace/pom.xml b/services/finspace/pom.xml index 52ee95ba1ac1..8556712e46bc 100644 --- a/services/finspace/pom.xml +++ b/services/finspace/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT finspace AWS Java SDK :: Services :: Finspace diff --git a/services/finspacedata/pom.xml b/services/finspacedata/pom.xml index a1b2029f5309..6c1dc5c0f669 100644 --- a/services/finspacedata/pom.xml +++ b/services/finspacedata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT finspacedata AWS Java SDK :: Services :: Finspace Data diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml index e8d36f0b0e6f..7d78b63f86ac 100644 --- a/services/firehose/pom.xml +++ b/services/firehose/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT firehose AWS Java SDK :: Services :: Amazon Kinesis Firehose diff --git a/services/fis/pom.xml b/services/fis/pom.xml index a92b9c7e697b..7f3c790e3ba6 100644 --- a/services/fis/pom.xml +++ b/services/fis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT fis AWS Java SDK :: Services :: Fis diff --git a/services/fms/pom.xml b/services/fms/pom.xml index 3e70e011948e..ac64b652ae70 100644 --- a/services/fms/pom.xml +++ b/services/fms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT fms AWS Java SDK :: Services :: FMS diff --git a/services/forecast/pom.xml b/services/forecast/pom.xml index c2f98d35d7c3..348cd4a4f79b 100644 --- a/services/forecast/pom.xml +++ b/services/forecast/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT forecast AWS Java SDK :: Services :: Forecast diff --git a/services/forecastquery/pom.xml b/services/forecastquery/pom.xml index 33d555468813..e28dfc85385c 100644 --- a/services/forecastquery/pom.xml +++ b/services/forecastquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT forecastquery AWS Java SDK :: Services :: Forecastquery diff --git a/services/frauddetector/pom.xml b/services/frauddetector/pom.xml index 8279b0018a33..b2d0a6760c24 100644 --- a/services/frauddetector/pom.xml +++ b/services/frauddetector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT frauddetector AWS Java SDK :: Services :: FraudDetector diff --git a/services/freetier/pom.xml b/services/freetier/pom.xml index 8ad80cf0982b..9b8c28154641 100644 --- a/services/freetier/pom.xml +++ b/services/freetier/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT freetier AWS Java SDK :: Services :: Free Tier diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml index 2e63819a1600..5ac7549fefd3 100644 --- a/services/fsx/pom.xml +++ b/services/fsx/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT fsx AWS Java SDK :: Services :: FSx diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml index d627727e0368..959bdd8beb82 100644 --- a/services/gamelift/pom.xml +++ b/services/gamelift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT gamelift AWS Java SDK :: Services :: AWS GameLift diff --git a/services/gameliftstreams/pom.xml b/services/gameliftstreams/pom.xml index 5e6c58b77e2c..efbc3abdba9b 100644 --- a/services/gameliftstreams/pom.xml +++ b/services/gameliftstreams/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT gameliftstreams AWS Java SDK :: Services :: Game Lift Streams diff --git a/services/geomaps/pom.xml b/services/geomaps/pom.xml index 5a7e5acccdad..b9221d2fd66e 100644 --- a/services/geomaps/pom.xml +++ b/services/geomaps/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT geomaps AWS Java SDK :: Services :: Geo Maps diff --git a/services/geoplaces/pom.xml b/services/geoplaces/pom.xml index 0ba0670cbee4..b0af48a3989f 100644 --- a/services/geoplaces/pom.xml +++ b/services/geoplaces/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT geoplaces AWS Java SDK :: Services :: Geo Places diff --git a/services/georoutes/pom.xml b/services/georoutes/pom.xml index f9120a503dd5..de1beafa7dbb 100644 --- a/services/georoutes/pom.xml +++ b/services/georoutes/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT georoutes AWS Java SDK :: Services :: Geo Routes diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml index f6f606bed173..14cc334b30ed 100644 --- a/services/glacier/pom.xml +++ b/services/glacier/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT glacier AWS Java SDK :: Services :: Amazon Glacier diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml index adcdc1793710..38c9cfa72f4d 100644 --- a/services/globalaccelerator/pom.xml +++ b/services/globalaccelerator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT globalaccelerator AWS Java SDK :: Services :: Global Accelerator diff --git a/services/glue/pom.xml b/services/glue/pom.xml index c5171491e3d7..f5fa14bcf5bb 100644 --- a/services/glue/pom.xml +++ b/services/glue/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 glue diff --git a/services/glue/src/main/resources/codegen-resources/service-2.json b/services/glue/src/main/resources/codegen-resources/service-2.json index 9eb5a0a12d86..940ea4c71403 100644 --- a/services/glue/src/main/resources/codegen-resources/service-2.json +++ b/services/glue/src/main/resources/codegen-resources/service-2.json @@ -17221,6 +17221,10 @@ "RefreshInterval":{ "shape":"String128", "documentation":"

Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur. This parameter provides flexibility to align the refresh rate with your specific data update patterns, system load considerations, and performance optimization goals. Time increment can be set from 15 minutes to 8640 minutes (six days). Currently supports creation of RefreshInterval only.

" + }, + "SourceProperties":{ + "shape":"IntegrationSourcePropertiesMap", + "documentation":"

A collection of key-value pairs that specify additional properties for the integration source. These properties provide configuration options that can be used to customize the behavior of the ODB source during data integration operations.

" } }, "documentation":"

Properties associated with the integration.

" @@ -17327,6 +17331,11 @@ "documentation":"

The data processed through your integration exceeded your quota.

", "exception":true }, + "IntegrationSourcePropertiesMap":{ + "type":"map", + "key":{"shape":"IntegrationString"}, + "value":{"shape":"IntegrationString"} + }, "IntegrationStatus":{ "type":"string", "enum":[ diff --git a/services/grafana/pom.xml b/services/grafana/pom.xml index af30c602f505..a8191bb9a2e7 100644 --- a/services/grafana/pom.xml +++ b/services/grafana/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT grafana AWS Java SDK :: Services :: Grafana diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml index c655f554e13d..bbf7c13fdcde 100644 --- a/services/greengrass/pom.xml +++ b/services/greengrass/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT greengrass AWS Java SDK :: Services :: AWS Greengrass diff --git a/services/greengrassv2/pom.xml b/services/greengrassv2/pom.xml index 0c302c661937..7e905c132ffd 100644 --- a/services/greengrassv2/pom.xml +++ b/services/greengrassv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT greengrassv2 AWS Java SDK :: Services :: Greengrass V2 diff --git a/services/groundstation/pom.xml b/services/groundstation/pom.xml index 2e9f97bd18f2..2550894b85ed 100644 --- a/services/groundstation/pom.xml +++ b/services/groundstation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT groundstation AWS Java SDK :: Services :: GroundStation diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml index e4cee62d1686..b06ef89e3a18 100644 --- a/services/guardduty/pom.xml +++ b/services/guardduty/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 guardduty diff --git a/services/health/pom.xml b/services/health/pom.xml index a34b4989a1d6..e924c05177f3 100644 --- a/services/health/pom.xml +++ b/services/health/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT health AWS Java SDK :: Services :: AWS Health APIs and Notifications diff --git a/services/healthlake/pom.xml b/services/healthlake/pom.xml index 4277cd7f92a5..e09d8b96f4bc 100644 --- a/services/healthlake/pom.xml +++ b/services/healthlake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT healthlake AWS Java SDK :: Services :: Health Lake diff --git a/services/iam/pom.xml b/services/iam/pom.xml index 4a17b2b02b25..afa91ca7d3f5 100644 --- a/services/iam/pom.xml +++ b/services/iam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iam AWS Java SDK :: Services :: AWS IAM diff --git a/services/iam/src/main/resources/codegen-resources/service-2.json b/services/iam/src/main/resources/codegen-resources/service-2.json index 06c84435307b..56eba9e361ea 100644 --- a/services/iam/src/main/resources/codegen-resources/service-2.json +++ b/services/iam/src/main/resources/codegen-resources/service-2.json @@ -124,7 +124,7 @@ {"shape":"PasswordPolicyViolationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Changes the password of the IAM user who is calling this operation. This operation can be performed using the CLI, the Amazon Web Services API, or the My Security Credentials page in the Amazon Web Services Management Console. The Amazon Web Services account root user password is not affected by this operation.

Use UpdateLoginProfile to use the CLI, the Amazon Web Services API, or the Users page in the IAM console to change the password for any IAM user. For more information about modifying passwords, see Managing passwords in the IAM User Guide.

" + "documentation":"

Changes the password of the IAM user who is calling this operation. This operation can be performed using the CLI, the Amazon Web Services API, or the My Security Credentials page in the Amazon Web Services Management Console. The Amazon Web Services account root user password is not affected by this operation.

Use UpdateLoginProfile to use the CLI, the Amazon Web Services API, or the Users page in the IAM console to change the password for any IAM user. For more information about modifying passwords, see Managing passwords in the IAM User Guide.

" }, "CreateAccessKey":{ "name":"CreateAccessKey", @@ -216,7 +216,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a password for the specified IAM user. A password allows an IAM user to access Amazon Web Services services through the Amazon Web Services Management Console.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to create a password for any IAM user. Use ChangePassword to update your own existing password in the My Security Credentials page in the Amazon Web Services Management Console.

For more information about managing passwords, see Managing passwords in the IAM User Guide.

" + "documentation":"

Creates a password for the specified IAM user. A password allows an IAM user to access Amazon Web Services services through the Amazon Web Services Management Console.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to create a password for any IAM user. Use ChangePassword to update your own existing password in the My Security Credentials page in the Amazon Web Services Management Console.

For more information about managing passwords, see Managing passwords in the IAM User Guide.

" }, "CreateOpenIDConnectProvider":{ "name":"CreateOpenIDConnectProvider", @@ -237,7 +237,7 @@ {"shape":"ServiceFailureException"}, {"shape":"OpenIdIdpCommunicationErrorException"} ], - "documentation":"

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider.

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide.

When you create the IAM OIDC provider, you specify the following:

  • The URL of the OIDC identity provider (IdP) to trust

  • A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider

  • A list of tags that are attached to the specified IAM OIDC provider

  • A list of thumbprints of one or more server certificates that the IdP uses

You get all of this information from the OIDC IdP you want to use to access Amazon Web Services.

Amazon Web Services secures communication with OIDC identity providers (IdPs) using our library of trusted root certificate authorities (CAs) to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If your OIDC IdP relies on a certificate that is not signed by one of these trusted CAs, only then we secure communication using the thumbprints set in the IdP's configuration.

The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.

" + "documentation":"

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider.

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide.

When you create the IAM OIDC provider, you specify the following:

  • The URL of the OIDC identity provider (IdP) to trust

  • A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider

  • A list of tags that are attached to the specified IAM OIDC provider

  • A list of thumbprints of one or more server certificates that the IdP uses

You get all of this information from the OIDC IdP you want to use to access Amazon Web Services.

Amazon Web Services secures communication with OIDC identity providers (IdPs) using our library of trusted root certificate authorities (CAs) to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If your OIDC IdP relies on a certificate that is not signed by one of these trusted CAs, only then we secure communication using the thumbprints set in the IdP's configuration.

The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.

" }, "CreatePolicy":{ "name":"CreatePolicy", @@ -278,7 +278,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using DeletePolicyVersion before you create a new version.

Optionally, you can set the new version as the policy's default version. The default version is the version that is in effect for the IAM users, groups, and roles to which the policy is attached.

For more information about managed policy versions, see Versioning for managed policies in the IAM User Guide.

" + "documentation":"

Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using DeletePolicyVersion before you create a new version.

Optionally, you can set the new version as the policy's default version. The default version is the version that is in effect for the IAM users, groups, and roles to which the policy is attached.

For more information about managed policy versions, see Versioning for managed policies in the IAM User Guide.

" }, "CreateRole":{ "name":"CreateRole", @@ -356,7 +356,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceNotSupportedException"} ], - "documentation":"

Generates a set of credentials consisting of a user name and password that can be used to access the service specified in the request. These credentials are generated by IAM, and can be used only for the specified service.

You can have a maximum of two sets of service-specific credentials for each supported service per user.

You can create service-specific credentials for CodeCommit and Amazon Keyspaces (for Apache Cassandra).

You can reset the password to a new service-generated value by calling ResetServiceSpecificCredential.

For more information about service-specific credentials, see Using IAM with CodeCommit: Git credentials, SSH keys, and Amazon Web Services access keys in the IAM User Guide.

" + "documentation":"

Generates a set of credentials consisting of a user name and password that can be used to access the service specified in the request. These credentials are generated by IAM, and can be used only for the specified service.

You can have a maximum of two sets of service-specific credentials for each supported service per user.

You can create service-specific credentials for Amazon Bedrock, CodeCommit and Amazon Keyspaces (for Apache Cassandra).

You can reset the password to a new service-generated value by calling ResetServiceSpecificCredential.

For more information about service-specific credentials, see Service-specific credentials for IAM users in the IAM User Guide.

" }, "CreateUser":{ "name":"CreateUser", @@ -397,7 +397,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a new virtual MFA device for the Amazon Web Services account. After creating the virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, see Using a virtual MFA device in the IAM User Guide.

For information about the maximum number of MFA devices you can create, see IAM and STS quotas in the IAM User Guide.

The seed information contained in the QR code and the Base32 string should be treated like any other secret access information. In other words, protect the seed information as you would your Amazon Web Services access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures.

" + "documentation":"

Creates a new virtual MFA device for the Amazon Web Services account. After creating the virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, see Using a virtual MFA device in the IAM User Guide.

For information about the maximum number of MFA devices you can create, see IAM and STS quotas in the IAM User Guide.

The seed information contained in the QR code and the Base32 string should be treated like any other secret access information. In other words, protect the seed information as you would your Amazon Web Services access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures.

" }, "DeactivateMFADevice":{ "name":"DeactivateMFADevice", @@ -484,7 +484,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM group.

A group can also have managed policies attached to it. To detach a managed policy from a group, use DetachGroupPolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM group.

A group can also have managed policies attached to it. To detach a managed policy from a group, use DetachGroupPolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "DeleteInstanceProfile":{ "name":"DeleteInstanceProfile", @@ -514,7 +514,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the password for the specified IAM user, For more information, see Managing passwords for IAM users.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to delete a password for any IAM user. You can use ChangePassword to update, but not delete, your own password in the My Security Credentials page in the Amazon Web Services Management Console.

Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.

" + "documentation":"

Deletes the password for the specified IAM user or root user, For more information, see Managing passwords for IAM users.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to delete a password for any IAM user. You can use ChangePassword to update, but not delete, your own password in the My Security Credentials page in the Amazon Web Services Management Console.

Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.

" }, "DeleteOpenIDConnectProvider":{ "name":"DeleteOpenIDConnectProvider", @@ -544,7 +544,7 @@ {"shape":"DeleteConflictException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified managed policy.

Before you can delete a managed policy, you must first detach the policy from all users, groups, and roles that it is attached to. In addition, you must delete all the policy's versions. The following steps describe the process for deleting a managed policy:

  • Detach the policy from all users, groups, and roles that the policy is attached to, using DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy. To list all the users, groups, and roles that a policy is attached to, use ListEntitiesForPolicy.

  • Delete all versions of the policy using DeletePolicyVersion. To list the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion to delete the version that is marked as the default version. You delete the policy's default version in the next step of the process.

  • Delete the policy (this automatically deletes the policy's default version) using this operation.

For information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Deletes the specified managed policy.

Before you can delete a managed policy, you must first detach the policy from all users, groups, and roles that it is attached to. In addition, you must delete all the policy's versions. The following steps describe the process for deleting a managed policy:

  • Detach the policy from all users, groups, and roles that the policy is attached to, using DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy. To list all the users, groups, and roles that a policy is attached to, use ListEntitiesForPolicy.

  • Delete all versions of the policy using DeletePolicyVersion. To list the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion to delete the version that is marked as the default version. You delete the policy's default version in the next step of the process.

  • Delete the policy (this automatically deletes the policy's default version) using this operation.

For information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" }, "DeletePolicyVersion":{ "name":"DeletePolicyVersion", @@ -560,7 +560,7 @@ {"shape":"DeleteConflictException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified version from the specified managed policy.

You cannot delete the default version from a policy using this operation. To delete the default version from a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

For information about versions for managed policies, see Versioning for managed policies in the IAM User Guide.

" + "documentation":"

Deletes the specified version from the specified managed policy.

You cannot delete the default version from a policy using this operation. To delete the default version from a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

For information about versions for managed policies, see Versioning for managed policies in the IAM User Guide.

" }, "DeleteRole":{ "name":"DeleteRole", @@ -577,7 +577,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified role. Unlike the Amazon Web Services Management Console, when you delete a role programmatically, you must delete the items attached to the role manually, or the deletion fails. For more information, see Deleting an IAM role. Before attempting to delete a role, remove the following attached items:

Make sure that you do not have any Amazon EC2 instances running with the role you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance.

" + "documentation":"

Deletes the specified role. Unlike the Amazon Web Services Management Console, when you delete a role programmatically, you must delete the items attached to the role manually, or the deletion fails. For more information, see Deleting an IAM role. Before attempting to delete a role, remove the following attached items:

Make sure that you do not have any Amazon EC2 instances running with the role you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance.

" }, "DeleteRolePermissionsBoundary":{ "name":"DeleteRolePermissionsBoundary", @@ -606,7 +606,7 @@ {"shape":"UnmodifiableEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM role.

A role can also have managed policies attached to it. To detach a managed policy from a role, use DetachRolePolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM role.

A role can also have managed policies attached to it. To detach a managed policy from a role, use DetachRolePolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "DeleteSAMLProvider":{ "name":"DeleteSAMLProvider", @@ -666,7 +666,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Submits a service-linked role deletion request and returns a DeletionTaskId, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the DeletionTaskId of the earlier request is returned.

If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus operation returns the reason for the failure, usually including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the Amazon Web Services documentation for your service.

For more information about service-linked roles, see Roles terms and concepts: Amazon Web Services service-linked role in the IAM User Guide.

" + "documentation":"

Submits a service-linked role deletion request and returns a DeletionTaskId, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the DeletionTaskId of the earlier request is returned.

If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus operation returns the reason for the failure, usually including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the Amazon Web Services documentation for your service.

For more information about service-linked roles, see Roles terms and concepts: Amazon Web Services service-linked role in the IAM User Guide.

" }, "DeleteServiceSpecificCredential":{ "name":"DeleteServiceSpecificCredential", @@ -709,7 +709,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified IAM user. Unlike the Amazon Web Services Management Console, when you delete a user programmatically, you must delete the items attached to the user manually, or the deletion fails. For more information, see Deleting an IAM user. Before attempting to delete a user, remove the following items:

" + "documentation":"

Deletes the specified IAM user. Unlike the Amazon Web Services Management Console, when you delete a user programmatically, you must delete the items attached to the user manually, or the deletion fails. For more information, see Deleting an IAM user. Before attempting to delete a user, remove the following items:

" }, "DeleteUserPermissionsBoundary":{ "name":"DeleteUserPermissionsBoundary", @@ -736,7 +736,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM user.

A user can also have managed policies attached to it. To detach a managed policy from a user, use DetachUserPolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Deletes the specified inline policy that is embedded in the specified IAM user.

A user can also have managed policies attached to it. To detach a managed policy from a user, use DetachUserPolicy. For more information about policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "DeleteVirtualMFADevice":{ "name":"DeleteVirtualMFADevice", @@ -752,7 +752,7 @@ {"shape":"ServiceFailureException"}, {"shape":"ConcurrentModificationException"} ], - "documentation":"

Deletes a virtual MFA device.

You must deactivate a user's virtual MFA device before you can delete it. For information about deactivating MFA devices, see DeactivateMFADevice.

" + "documentation":"

Deletes a virtual MFA device.

You must deactivate a user's virtual MFA device before you can delete it. For information about deactivating MFA devices, see DeactivateMFADevice.

" }, "DetachGroupPolicy":{ "name":"DetachGroupPolicy", @@ -767,7 +767,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes the specified managed policy from the specified IAM group.

A group can also have inline policies embedded with it. To delete an inline policy, use DeleteGroupPolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Removes the specified managed policy from the specified IAM group.

A group can also have inline policies embedded with it. To delete an inline policy, use DeleteGroupPolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "DetachRolePolicy":{ "name":"DetachRolePolicy", @@ -783,7 +783,7 @@ {"shape":"UnmodifiableEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes the specified managed policy from the specified role.

A role can also have inline policies embedded with it. To delete an inline policy, use DeleteRolePolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Removes the specified managed policy from the specified role.

A role can also have inline policies embedded with it. To delete an inline policy, use DeleteRolePolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "DetachUserPolicy":{ "name":"DetachUserPolicy", @@ -798,7 +798,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes the specified managed policy from the specified user.

A user can also have inline policies embedded with it. To delete an inline policy, use DeleteUserPolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Removes the specified managed policy from the specified user.

A user can also have inline policies embedded with it. To delete an inline policy, use DeleteUserPolicy. For information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "DisableOrganizationsRootCredentialsManagement":{ "name":"DisableOrganizationsRootCredentialsManagement", @@ -926,7 +926,7 @@ "errors":[ {"shape":"ReportGenerationLimitExceededException"} ], - "documentation":"

Generates a report for service last accessed data for Organizations. You can generate a report for any entities (organization root, organizational unit, or account) or policies in your organization.

To call this operation, you must be signed in using your Organizations management account credentials. You can use your long-term IAM user or root user credentials, or temporary credentials from assuming an IAM role. SCPs must be enabled for your organization root. You must have the required IAM and Organizations permissions. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

You can generate a service last accessed data report for entities by specifying only the entity's path. This data includes a list of services that are allowed by any service control policies (SCPs) that apply to the entity.

You can generate a service last accessed data report for a policy by specifying an entity's path and an optional Organizations policy ID. This data includes a list of services that are allowed by the specified SCP.

For each service in both report types, the data includes the most recent account activity that the policy allows to account principals in the entity or the entity's children. For important information about the data, reporting period, permissions required, troubleshooting, and supported Regions see Reducing permissions using service last accessed data in the IAM User Guide.

The data includes all attempts to access Amazon Web Services, not just the successful ones. This includes all attempts that were made using the Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that an account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see Logging IAM events with CloudTrail in the IAM User Guide.

This operation returns a JobId. Use this parameter in the GetOrganizationsAccessReport operation to check the status of the report generation. To check the status of this request, use the JobId parameter in the GetOrganizationsAccessReport operation and test the JobStatus response parameter. When the job is complete, you can retrieve the report.

To generate a service last accessed data report for entities, specify an entity path without specifying the optional Organizations policy ID. The type of entity that you specify determines the data returned in the report.

  • Root – When you specify the organizations root as the entity, the resulting report lists all of the services allowed by SCPs that are attached to your root. For each service, the report includes data for all accounts in your organization except the management account, because the management account is not limited by SCPs.

  • OU – When you specify an organizational unit (OU) as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the OU and its parents. For each service, the report includes data for all accounts in the OU or its children. This data excludes the management account, because the management account is not limited by SCPs.

  • management account – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. For each service, the report includes data for only the management account.

  • Account – When you specify another account as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the account and its parents. For each service, the report includes data for only the specified account.

To generate a service last accessed data report for policies, specify an entity path and the optional Organizations policy ID. The type of entity that you specify determines the data returned for each service.

  • Root – When you specify the root entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in your organization to which the SCP applies. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to any entities in the organization, then the report will return a list of services with no data.

  • OU – When you specify an OU entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in the OU or its children to which the SCP applies. This means that other accounts outside the OU that are affected by the SCP might not be included in the data. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to the OU or one of its children, the report will return a list of services with no data.

  • management account – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. If you specify a policy ID in the CLI or API, the policy is ignored. For each service, the report includes data for only the management account.

  • Account – When you specify another account entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for only the specified account. This means that other accounts in the organization that are affected by the SCP might not be included in the data. If the SCP is not attached to the account, the report will return a list of services with no data.

Service last accessed data does not use other policy types when determining whether a principal could access a service. These other policy types include identity-based policies, resource-based policies, access control lists, IAM permissions boundaries, and STS assume role policies. It only applies SCP logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

For more information about service last accessed data, see Reducing policy scope by viewing user activity in the IAM User Guide.

" + "documentation":"

Generates a report for service last accessed data for Organizations. You can generate a report for any entities (organization root, organizational unit, or account) or policies in your organization.

To call this operation, you must be signed in using your Organizations management account credentials. You can use your long-term IAM user or root user credentials, or temporary credentials from assuming an IAM role. SCPs must be enabled for your organization root. You must have the required IAM and Organizations permissions. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

You can generate a service last accessed data report for entities by specifying only the entity's path. This data includes a list of services that are allowed by any service control policies (SCPs) that apply to the entity.

You can generate a service last accessed data report for a policy by specifying an entity's path and an optional Organizations policy ID. This data includes a list of services that are allowed by the specified SCP.

For each service in both report types, the data includes the most recent account activity that the policy allows to account principals in the entity or the entity's children. For important information about the data, reporting period, permissions required, troubleshooting, and supported Regions see Reducing permissions using service last accessed data in the IAM User Guide.

The data includes all attempts to access Amazon Web Services, not just the successful ones. This includes all attempts that were made using the Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that an account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see Logging IAM events with CloudTrail in the IAM User Guide.

This operation returns a JobId. Use this parameter in the GetOrganizationsAccessReport operation to check the status of the report generation. To check the status of this request, use the JobId parameter in the GetOrganizationsAccessReport operation and test the JobStatus response parameter. When the job is complete, you can retrieve the report.

To generate a service last accessed data report for entities, specify an entity path without specifying the optional Organizations policy ID. The type of entity that you specify determines the data returned in the report.

  • Root – When you specify the organizations root as the entity, the resulting report lists all of the services allowed by SCPs that are attached to your root. For each service, the report includes data for all accounts in your organization except the management account, because the management account is not limited by SCPs.

  • OU – When you specify an organizational unit (OU) as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the OU and its parents. For each service, the report includes data for all accounts in the OU or its children. This data excludes the management account, because the management account is not limited by SCPs.

  • management account – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. For each service, the report includes data for only the management account.

  • Account – When you specify another account as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the account and its parents. For each service, the report includes data for only the specified account.

To generate a service last accessed data report for policies, specify an entity path and the optional Organizations policy ID. The type of entity that you specify determines the data returned for each service.

  • Root – When you specify the root entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in your organization to which the SCP applies. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to any entities in the organization, then the report will return a list of services with no data.

  • OU – When you specify an OU entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in the OU or its children to which the SCP applies. This means that other accounts outside the OU that are affected by the SCP might not be included in the data. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to the OU or one of its children, the report will return a list of services with no data.

  • management account – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. If you specify a policy ID in the CLI or API, the policy is ignored. For each service, the report includes data for only the management account.

  • Account – When you specify another account entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for only the specified account. This means that other accounts in the organization that are affected by the SCP might not be included in the data. If the SCP is not attached to the account, the report will return a list of services with no data.

Service last accessed data does not use other policy types when determining whether a principal could access a service. These other policy types include identity-based policies, resource-based policies, access control lists, IAM permissions boundaries, and STS assume role policies. It only applies SCP logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

For more information about service last accessed data, see Reducing policy scope by viewing user activity in the IAM User Guide.

" }, "GenerateServiceLastAccessedDetails":{ "name":"GenerateServiceLastAccessedDetails", @@ -943,7 +943,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Generates a report that includes details about when an IAM resource (user, group, role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity usually appears within four hours. IAM reports activity for at least the last 400 days, or less if your Region began supporting this feature within the last year. For more information, see Regions where data is tracked. For more information about services and actions for which action last accessed information is displayed, see IAM action last accessed information services and actions.

The service last accessed data includes all attempts to access an Amazon Web Services API, not just the successful ones. This includes all attempts that were made using the Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that your account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see Logging IAM events with CloudTrail in the IAM User Guide.

The GenerateServiceLastAccessedDetails operation returns a JobId. Use this parameter in the following operations to retrieve the following details from your report:

  • GetServiceLastAccessedDetails – Use this operation for users, groups, roles, or policies to list every Amazon Web Services service that the resource could access using permissions policies. For each service, the response includes information about the most recent access attempt.

    The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

  • GetServiceLastAccessedDetailsWithEntities – Use this operation for groups and policies to list information about the associated entities (users or roles) that attempted to access a specific Amazon Web Services service.

To check the status of the GenerateServiceLastAccessedDetails request, use the JobId parameter in the same operations and test the JobStatus response parameter.

For additional information about the permissions policies that allow an identity (user, group, or role) to access specific services, use the ListPoliciesGrantingServiceAccess operation.

Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

For more information about service and action last accessed data, see Reducing permissions using service last accessed data in the IAM User Guide.

" + "documentation":"

Generates a report that includes details about when an IAM resource (user, group, role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity usually appears within four hours. IAM reports activity for at least the last 400 days, or less if your Region began supporting this feature within the last year. For more information, see Regions where data is tracked. For more information about services and actions for which action last accessed information is displayed, see IAM action last accessed information services and actions.

The service last accessed data includes all attempts to access an Amazon Web Services API, not just the successful ones. This includes all attempts that were made using the Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that your account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see Logging IAM events with CloudTrail in the IAM User Guide.

The GenerateServiceLastAccessedDetails operation returns a JobId. Use this parameter in the following operations to retrieve the following details from your report:

  • GetServiceLastAccessedDetails – Use this operation for users, groups, roles, or policies to list every Amazon Web Services service that the resource could access using permissions policies. For each service, the response includes information about the most recent access attempt.

    The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

  • GetServiceLastAccessedDetailsWithEntities – Use this operation for groups and policies to list information about the associated entities (users or roles) that attempted to access a specific Amazon Web Services service.

To check the status of the GenerateServiceLastAccessedDetails request, use the JobId parameter in the same operations and test the JobStatus response parameter.

For additional information about the permissions policies that allow an identity (user, group, or role) to access specific services, use the ListPoliciesGrantingServiceAccess operation.

Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

For more information about service and action last accessed data, see Reducing permissions using service last accessed data in the IAM User Guide.

" }, "GetAccessKeyLastUsed":{ "name":"GetAccessKeyLastUsed", @@ -972,7 +972,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves information about all IAM users, groups, roles, and policies in your Amazon Web Services account, including their relationships to one another. Use this operation to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

You can optionally filter the results using the Filter parameter. You can paginate the results using the MaxItems and Marker parameters.

" + "documentation":"

Retrieves information about all IAM users, groups, roles, and policies in your Amazon Web Services account, including their relationships to one another. Use this operation to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

You can optionally filter the results using the Filter parameter. You can paginate the results using the MaxItems and Marker parameters.

" }, "GetAccountPasswordPolicy":{ "name":"GetAccountPasswordPolicy", @@ -1019,7 +1019,7 @@ "errors":[ {"shape":"InvalidInputException"} ], - "documentation":"

Gets a list of all of the context keys referenced in the input policies. The policies are supplied as a list of one or more strings. To get the context keys from policies associated with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value specified in an IAM policy. Use GetContextKeysForCustomPolicy to understand what key names and values you must supply when you call SimulateCustomPolicy. Note that all parameters are shown in unencoded form here for clarity but must be URL encoded to be included as a part of a real HTML request.

" + "documentation":"

Gets a list of all of the context keys referenced in the input policies. The policies are supplied as a list of one or more strings. To get the context keys from policies associated with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value specified in an IAM policy. Use GetContextKeysForCustomPolicy to understand what key names and values you must supply when you call SimulateCustomPolicy. Note that all parameters are shown in unencoded form here for clarity but must be URL encoded to be included as a part of a real HTML request.

" }, "GetContextKeysForPrincipalPolicy":{ "name":"GetContextKeysForPrincipalPolicy", @@ -1036,7 +1036,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Gets a list of all of the context keys referenced in all the IAM policies that are attached to the specified IAM entity. The entity can be an IAM user, group, or role. If you specify a user, then the request also includes all of the policies attached to groups that the user is a member of.

You can optionally include a list of one or more additional policies, specified as strings. If you want to include only a list of policies by string, use GetContextKeysForCustomPolicy instead.

Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use GetContextKeysForCustomPolicy instead.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to understand what key names and values you must supply when you call SimulatePrincipalPolicy.

" + "documentation":"

Gets a list of all of the context keys referenced in all the IAM policies that are attached to the specified IAM entity. The entity can be an IAM user, group, or role. If you specify a user, then the request also includes all of the policies attached to groups that the user is a member of.

You can optionally include a list of one or more additional policies, specified as strings. If you want to include only a list of policies by string, use GetContextKeysForCustomPolicy instead.

Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use GetContextKeysForCustomPolicy instead.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to understand what key names and values you must supply when you call SimulatePrincipalPolicy.

" }, "GetCredentialReport":{ "name":"GetCredentialReport", @@ -1088,7 +1088,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves the specified inline policy document that is embedded in the specified IAM group.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

An IAM group can also have managed policies attached to it. To retrieve a managed policy document that is attached to a group, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Retrieves the specified inline policy document that is embedded in the specified IAM group.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

An IAM group can also have managed policies attached to it. To retrieve a managed policy document that is attached to a group, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "GetInstanceProfile":{ "name":"GetInstanceProfile", @@ -1173,7 +1173,7 @@ "errors":[ {"shape":"NoSuchEntityException"} ], - "documentation":"

Retrieves the service last accessed data report for Organizations that was previously generated using the GenerateOrganizationsAccessReport operation. This operation retrieves the status of your report job and the report contents.

Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see GenerateOrganizationsAccessReport.

To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

For each service that principals in an account (root user, IAM users, or IAM roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed.

By default, the list is sorted by service namespace.

" + "documentation":"

Retrieves the service last accessed data report for Organizations that was previously generated using the GenerateOrganizationsAccessReport operation. This operation retrieves the status of your report job and the report contents.

Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see GenerateOrganizationsAccessReport.

To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

For each service that principals in an account (root user, IAM users, or IAM roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed.

By default, the list is sorted by service namespace.

" }, "GetPolicy":{ "name":"GetPolicy", @@ -1191,7 +1191,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves information about the specified managed policy, including the policy's default version and the total number of IAM users, groups, and roles to which the policy is attached. To retrieve the list of the specific users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy. This operation returns metadata about the policy. To retrieve the actual policy document for a specific version of the policy, use GetPolicyVersion.

This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded with an IAM user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Retrieves information about the specified managed policy, including the policy's default version and the total number of IAM users, groups, and roles to which the policy is attached. To retrieve the list of the specific users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy. This operation returns metadata about the policy. To retrieve the actual policy document for a specific version of the policy, use GetPolicyVersion.

This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded with an IAM user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "GetPolicyVersion":{ "name":"GetPolicyVersion", @@ -1209,7 +1209,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves information about the specified version of the specified managed policy, including the policy document.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

To list the available versions for a policy, use ListPolicyVersions.

This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.

For more information about the types of policies, see Managed policies and inline policies in the IAM User Guide.

For more information about managed policy versions, see Versioning for managed policies in the IAM User Guide.

" + "documentation":"

Retrieves information about the specified version of the specified managed policy, including the policy document.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

To list the available versions for a policy, use ListPolicyVersions.

This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.

For more information about the types of policies, see Managed policies and inline policies in the IAM User Guide.

For more information about managed policy versions, see Versioning for managed policies in the IAM User Guide.

" }, "GetRole":{ "name":"GetRole", @@ -1226,7 +1226,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves information about the specified role, including the role's path, GUID, ARN, and the role's trust policy that grants permission to assume the role. For more information about roles, see IAM roles in the IAM User Guide.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

" + "documentation":"

Retrieves information about the specified role, including the role's path, GUID, ARN, and the role's trust policy that grants permission to assume the role. For more information about roles, see IAM roles in the IAM User Guide.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

" }, "GetRolePolicy":{ "name":"GetRolePolicy", @@ -1243,7 +1243,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves the specified inline policy document that is embedded with the specified IAM role.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

An IAM role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

For more information about roles, see IAM roles in the IAM User Guide.

" + "documentation":"

Retrieves the specified inline policy document that is embedded with the specified IAM role.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

An IAM role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

For more information about roles, see IAM roles in the IAM User Guide.

" }, "GetSAMLProvider":{ "name":"GetSAMLProvider", @@ -1347,7 +1347,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves the status of your service-linked role deletion. After you use DeleteServiceLinkedRole to submit a service-linked role for deletion, you can use the DeletionTaskId parameter in GetServiceLinkedRoleDeletionStatus to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed, if that information is returned by the service.

" + "documentation":"

Retrieves the status of your service-linked role deletion. After you use DeleteServiceLinkedRole to submit a service-linked role for deletion, you can use the DeletionTaskId parameter in GetServiceLinkedRoleDeletionStatus to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed, if that information is returned by the service.

" }, "GetUser":{ "name":"GetUser", @@ -1381,7 +1381,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves the specified inline policy document that is embedded in the specified IAM user.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

An IAM user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use GetPolicy to determine the policy's default version. Then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Retrieves the specified inline policy document that is embedded in the specified IAM user.

Policies returned by this operation are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding automatically.

An IAM user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use GetPolicy to determine the policy's default version. Then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed policies and inline policies in the IAM User Guide.

" }, "ListAccessKeys":{ "name":"ListAccessKeys", @@ -1432,7 +1432,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all managed policies that are attached to the specified IAM group.

An IAM group can also have inline policies embedded with it. To list the inline policies for a group, use ListGroupPolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

" + "documentation":"

Lists all managed policies that are attached to the specified IAM group.

An IAM group can also have inline policies embedded with it. To list the inline policies for a group, use ListGroupPolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

" }, "ListAttachedRolePolicies":{ "name":"ListAttachedRolePolicies", @@ -1450,7 +1450,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all managed policies that are attached to the specified IAM role.

An IAM role can also have inline policies embedded with it. To list the inline policies for a role, use ListRolePolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified role (or none that match the specified path prefix), the operation returns an empty list.

" + "documentation":"

Lists all managed policies that are attached to the specified IAM role.

An IAM role can also have inline policies embedded with it. To list the inline policies for a role, use ListRolePolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified role (or none that match the specified path prefix), the operation returns an empty list.

" }, "ListAttachedUserPolicies":{ "name":"ListAttachedUserPolicies", @@ -1468,7 +1468,7 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all managed policies that are attached to the specified IAM user.

An IAM user can also have inline policies embedded with it. To list the inline policies for a user, use ListUserPolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

" + "documentation":"

Lists all managed policies that are attached to the specified IAM user.

An IAM user can also have inline policies embedded with it. To list the inline policies for a user, use ListUserPolicies. For information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

" }, "ListEntitiesForPolicy":{ "name":"ListEntitiesForPolicy", @@ -1503,7 +1503,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the names of the inline policies that are embedded in the specified IAM group.

An IAM group can also have managed policies attached to it. To list the managed policies that are attached to a group, use ListAttachedGroupPolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified group, the operation returns an empty list.

" + "documentation":"

Lists the names of the inline policies that are embedded in the specified IAM group.

An IAM group can also have managed policies attached to it. To list the managed policies that are attached to a group, use ListAttachedGroupPolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified group, the operation returns an empty list.

" }, "ListGroups":{ "name":"ListGroups", @@ -1569,7 +1569,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the instance profiles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about instance profiles, see Using instance profiles in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see GetInstanceProfile.

You can paginate the results using the MaxItems and Marker parameters.

" + "documentation":"

Lists the instance profiles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about instance profiles, see Using instance profiles in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see GetInstanceProfile.

You can paginate the results using the MaxItems and Marker parameters.

" }, "ListInstanceProfilesForRole":{ "name":"ListInstanceProfilesForRole", @@ -1655,7 +1655,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists information about the IAM OpenID Connect (OIDC) provider resource objects defined in the Amazon Web Services account.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an OIDC provider, see GetOpenIDConnectProvider.

" + "documentation":"

Lists information about the IAM OpenID Connect (OIDC) provider resource objects defined in the Amazon Web Services account.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an OIDC provider, see GetOpenIDConnectProvider.

" }, "ListOrganizationsFeatures":{ "name":"ListOrganizationsFeatures", @@ -1690,7 +1690,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all the managed policies that are available in your Amazon Web Services account, including your own customer-defined managed policies and all Amazon Web Services managed policies.

You can filter the list of policies that is returned using the optional OnlyAttached, Scope, and PathPrefix parameters. For example, to list only the customer managed policies in your Amazon Web Services account, set Scope to Local. To list only Amazon Web Services managed policies, set Scope to AWS.

You can paginate the results using the MaxItems and Marker parameters.

For more information about managed policies, see Managed policies and inline policies in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a customer manged policy, see GetPolicy.

" + "documentation":"

Lists all the managed policies that are available in your Amazon Web Services account, including your own customer-defined managed policies and all Amazon Web Services managed policies.

You can filter the list of policies that is returned using the optional OnlyAttached, Scope, and PathPrefix parameters. For example, to list only the customer managed policies in your Amazon Web Services account, set Scope to Local. To list only Amazon Web Services managed policies, set Scope to AWS.

You can paginate the results using the MaxItems and Marker parameters.

For more information about managed policies, see Managed policies and inline policies in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a customer manged policy, see GetPolicy.

" }, "ListPoliciesGrantingServiceAccess":{ "name":"ListPoliciesGrantingServiceAccess", @@ -1707,7 +1707,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Retrieves a list of policies that the IAM identity (user, group, or role) can use to access each specified service.

This operation does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

The list of policies returned by the operation depends on the ARN of the identity that you provide.

  • User – The list of policies includes the managed and inline policies that are attached to the user directly. The list also includes any additional managed and inline policies that are attached to the group to which the user belongs.

  • Group – The list of policies includes only the managed and inline policies that are attached to the group directly. Policies that are attached to the group’s user are not included.

  • Role – The list of policies includes only the managed and inline policies that are attached to the role.

For each managed policy, this operation returns the ARN and policy name. For each inline policy, it returns the policy name and the entity to which it is attached. Inline policies do not have an ARN. For more information about these policy types, see Managed policies and inline policies in the IAM User Guide.

Policies that are attached to users and roles as permissions boundaries are not returned. To view which managed policy is currently used to set the permissions boundary for a user or role, use the GetUser or GetRole operations.

" + "documentation":"

Retrieves a list of policies that the IAM identity (user, group, or role) can use to access each specified service.

This operation does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see Evaluating policies in the IAM User Guide.

The list of policies returned by the operation depends on the ARN of the identity that you provide.

  • User – The list of policies includes the managed and inline policies that are attached to the user directly. The list also includes any additional managed and inline policies that are attached to the group to which the user belongs.

  • Group – The list of policies includes only the managed and inline policies that are attached to the group directly. Policies that are attached to the group’s user are not included.

  • Role – The list of policies includes only the managed and inline policies that are attached to the role.

For each managed policy, this operation returns the ARN and policy name. For each inline policy, it returns the policy name and the entity to which it is attached. Inline policies do not have an ARN. For more information about these policy types, see Managed policies and inline policies in the IAM User Guide.

Policies that are attached to users and roles as permissions boundaries are not returned. To view which managed policy is currently used to set the permissions boundary for a user or role, use the GetUser or GetRole operations.

" }, "ListPolicyTags":{ "name":"ListPolicyTags", @@ -1760,7 +1760,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the names of the inline policies that are embedded in the specified IAM role.

An IAM role can also have managed policies attached to it. To list the managed policies that are attached to a role, use ListAttachedRolePolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified role, the operation returns an empty list.

" + "documentation":"

Lists the names of the inline policies that are embedded in the specified IAM role.

An IAM role can also have managed policies attached to it. To list the managed policies that are attached to a role, use ListAttachedRolePolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified role, the operation returns an empty list.

" }, "ListRoleTags":{ "name":"ListRoleTags", @@ -1793,7 +1793,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the IAM roles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about roles, see IAM roles in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

  • PermissionsBoundary

  • RoleLastUsed

  • Tags

To view all of the information for a role, see GetRole.

You can paginate the results using the MaxItems and Marker parameters.

" + "documentation":"

Lists the IAM roles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about roles, see IAM roles in the IAM User Guide.

IAM resource-listing operations return a subset of the available attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

  • PermissionsBoundary

  • RoleLastUsed

  • Tags

To view all of the information for a role, see GetRole.

You can paginate the results using the MaxItems and Marker parameters.

" }, "ListSAMLProviderTags":{ "name":"ListSAMLProviderTags", @@ -1827,7 +1827,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the SAML provider resource objects defined in IAM in the account. IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a SAML provider, see GetSAMLProvider.

This operation requires Signature Version 4.

" + "documentation":"

Lists the SAML provider resource objects defined in IAM in the account. IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a SAML provider, see GetSAMLProvider.

This operation requires Signature Version 4.

" }, "ListSSHPublicKeys":{ "name":"ListSSHPublicKeys", @@ -1876,7 +1876,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the server certificates stored in IAM that have the specified path prefix. If none exist, the operation returns an empty list.

You can paginate the results using the MaxItems and Marker parameters.

For more information about working with server certificates, see Working with server certificates in the IAM User Guide. This topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a servercertificate, see GetServerCertificate.

" + "documentation":"

Lists the server certificates stored in IAM that have the specified path prefix. If none exist, the operation returns an empty list.

You can paginate the results using the MaxItems and Marker parameters.

For more information about working with server certificates, see Working with server certificates in the IAM User Guide. This topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a servercertificate, see GetServerCertificate.

" }, "ListServiceSpecificCredentials":{ "name":"ListServiceSpecificCredentials", @@ -1927,7 +1927,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the names of the inline policies embedded in the specified IAM user.

An IAM user can also have managed policies attached to it. To list the managed policies that are attached to a user, use ListAttachedUserPolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified user, the operation returns an empty list.

" + "documentation":"

Lists the names of the inline policies embedded in the specified IAM user.

An IAM user can also have managed policies attached to it. To list the managed policies that are attached to a user, use ListAttachedUserPolicies. For more information about policies, see Managed policies and inline policies in the IAM User Guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified user, the operation returns an empty list.

" }, "ListUserTags":{ "name":"ListUserTags", @@ -1960,7 +1960,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the IAM users that have the specified path prefix. If no path prefix is specified, the operation returns all users in the Amazon Web Services account. If there are none, the operation returns an empty list.

IAM resource-listing operations return a subset of the available attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

  • PermissionsBoundary

  • Tags

To view all of the information for a user, see GetUser.

You can paginate the results using the MaxItems and Marker parameters.

" + "documentation":"

Lists the IAM users that have the specified path prefix. If no path prefix is specified, the operation returns all users in the Amazon Web Services account. If there are none, the operation returns an empty list.

IAM resource-listing operations return a subset of the available attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

  • PermissionsBoundary

  • Tags

To view all of the information for a user, see GetUser.

You can paginate the results using the MaxItems and Marker parameters.

" }, "ListVirtualMFADevices":{ "name":"ListVirtualMFADevices", @@ -1973,7 +1973,7 @@ "shape":"ListVirtualMFADevicesResponse", "resultWrapper":"ListVirtualMFADevicesResult" }, - "documentation":"

Lists the virtual MFA devices defined in the Amazon Web Services account by assignment status. If you do not specify an assignment status, the operation returns a list of all virtual MFA devices. Assignment status can be Assigned, Unassigned, or Any.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view tag information for a virtual MFA device, see ListMFADeviceTags.

You can paginate the results using the MaxItems and Marker parameters.

" + "documentation":"

Lists the virtual MFA devices defined in the Amazon Web Services account by assignment status. If you do not specify an assignment status, the operation returns a list of all virtual MFA devices. Assignment status can be Assigned, Unassigned, or Any.

IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view tag information for a virtual MFA device, see ListMFADeviceTags.

You can paginate the results using the MaxItems and Marker parameters.

" }, "PutGroupPolicy":{ "name":"PutGroupPolicy", @@ -2140,7 +2140,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Sets the specified version of the specified policy as the policy's default (operative) version.

This operation affects all users, groups, and roles that the policy is attached to. To list the users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy.

For information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Sets the specified version of the specified policy as the policy's default (operative) version.

This operation affects all users, groups, and roles that the policy is attached to. To list the users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy.

For information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" }, "SetSecurityTokenServicePreferences":{ "name":"SetSecurityTokenServicePreferences", @@ -2152,7 +2152,7 @@ "errors":[ {"shape":"ServiceFailureException"} ], - "documentation":"

Sets the specified version of the global endpoint token as the token version used for the Amazon Web Services account.

By default, Security Token Service (STS) is available as a global service, and all STS requests go to a single endpoint at https://sts.amazonaws.com. Amazon Web Services recommends using Regional STS endpoints to reduce latency, build in redundancy, and increase session token availability. For information about Regional endpoints for STS, see Security Token Service endpoints and quotas in the Amazon Web Services General Reference.

If you make an STS call to the global endpoint, the resulting session tokens might be valid in some Regions but not others. It depends on the version that is set in this operation. Version 1 tokens are valid only in Amazon Web Services Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see Activating and deactivating STS in an Amazon Web Services Region in the IAM User Guide.

To view the current session token version, see the GlobalEndpointTokenVersion entry in the response of the GetAccountSummary operation.

" + "documentation":"

Sets the specified version of the global endpoint token as the token version used for the Amazon Web Services account.

By default, Security Token Service (STS) is available as a global service, and all STS requests go to a single endpoint at https://sts.amazonaws.com. Amazon Web Services recommends using Regional STS endpoints to reduce latency, build in redundancy, and increase session token availability. For information about Regional endpoints for STS, see Security Token Service endpoints and quotas in the Amazon Web Services General Reference.

If you make an STS call to the global endpoint, the resulting session tokens might be valid in some Regions but not others. It depends on the version that is set in this operation. Version 1 tokens are valid only in Amazon Web Services Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see Activating and deactivating STS in an Amazon Web Services Region in the IAM User Guide.

To view the current session token version, see the GlobalEndpointTokenVersion entry in the response of the GetAccountSummary operation.

" }, "SimulateCustomPolicy":{ "name":"SimulateCustomPolicy", @@ -2169,7 +2169,7 @@ {"shape":"InvalidInputException"}, {"shape":"PolicyEvaluationException"} ], - "documentation":"

Simulate how a set of IAM policies and optionally a resource-based policy works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The policies are provided as strings.

The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations. You can simulate resources that don't exist in your account.

If you want to simulate existing policies that are attached to an IAM user, group, or role, use SimulatePrincipalPolicy instead.

Context keys are variables that are maintained by Amazon Web Services and its services and which provide details about the context of an API query request. You can use the Condition element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.

If the output is long, you can use MaxItems and Marker parameters to paginate the results.

The IAM policy simulator evaluates statements in the identity-based policy and the inputs that you provide during simulation. The policy simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies against your live Amazon Web Services environment after testing using the policy simulator to confirm that you have the desired results. For more information about using the policy simulator, see Testing IAM policies with the IAM policy simulator in the IAM User Guide.

" + "documentation":"

Simulate how a set of IAM policies and optionally a resource-based policy works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The policies are provided as strings.

The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations. You can simulate resources that don't exist in your account.

If you want to simulate existing policies that are attached to an IAM user, group, or role, use SimulatePrincipalPolicy instead.

Context keys are variables that are maintained by Amazon Web Services and its services and which provide details about the context of an API query request. You can use the Condition element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.

If the output is long, you can use MaxItems and Marker parameters to paginate the results.

The IAM policy simulator evaluates statements in the identity-based policy and the inputs that you provide during simulation. The policy simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies against your live Amazon Web Services environment after testing using the policy simulator to confirm that you have the desired results. For more information about using the policy simulator, see Testing IAM policies with the IAM policy simulator in the IAM User Guide.

" }, "SimulatePrincipalPolicy":{ "name":"SimulatePrincipalPolicy", @@ -2187,7 +2187,7 @@ {"shape":"InvalidInputException"}, {"shape":"PolicyEvaluationException"} ], - "documentation":"

Simulate how a set of IAM policies attached to an IAM entity works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The entity can be an IAM user, group, or role. If you specify a user, then the simulation also includes all of the policies that are attached to groups that the user belongs to. You can simulate resources that don't exist in your account.

You can optionally include a list of one or more additional policies specified as strings to include in the simulation. If you want to simulate only policies specified as strings, use SimulateCustomPolicy instead.

You can also optionally include one resource-based policy to be evaluated with each of the resources included in the simulation for IAM users only.

The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations.

Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use SimulateCustomPolicy instead.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. You can use the Condition element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.

If the output is long, you can use the MaxItems and Marker parameters to paginate the results.

The IAM policy simulator evaluates statements in the identity-based policy and the inputs that you provide during simulation. The policy simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies against your live Amazon Web Services environment after testing using the policy simulator to confirm that you have the desired results. For more information about using the policy simulator, see Testing IAM policies with the IAM policy simulator in the IAM User Guide.

" + "documentation":"

Simulate how a set of IAM policies attached to an IAM entity works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The entity can be an IAM user, group, or role. If you specify a user, then the simulation also includes all of the policies that are attached to groups that the user belongs to. You can simulate resources that don't exist in your account.

You can optionally include a list of one or more additional policies specified as strings to include in the simulation. If you want to simulate only policies specified as strings, use SimulateCustomPolicy instead.

You can also optionally include one resource-based policy to be evaluated with each of the resources included in the simulation for IAM users only.

The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations.

Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use SimulateCustomPolicy instead.

Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. You can use the Condition element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.

If the output is long, you can use the MaxItems and Marker parameters to paginate the results.

The IAM policy simulator evaluates statements in the identity-based policy and the inputs that you provide during simulation. The policy simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies against your live Amazon Web Services environment after testing using the policy simulator to confirm that you have the desired results. For more information about using the policy simulator, see Testing IAM policies with the IAM policy simulator in the IAM User Guide.

" }, "TagInstanceProfile":{ "name":"TagInstanceProfile", @@ -2445,7 +2445,8 @@ "errors":[ {"shape":"NoSuchEntityException"}, {"shape":"LimitExceededException"}, - {"shape":"ServiceFailureException"} + {"shape":"ServiceFailureException"}, + {"shape":"InvalidInputException"} ], "documentation":"

Changes the status of the specified access key from Active to Inactive, or vice versa. This operation can be used to disable a user's key as part of a key rotation workflow.

If the UserName is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is used, then UserName is required. If a long-term key is assigned to the user, then UserName is not required. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

For information about rotating keys, see Managing keys and certificates in the IAM User Guide.

" }, @@ -2509,7 +2510,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Changes the password for the specified IAM user. You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to change the password for any IAM user. Use ChangePassword to change your own password in the My Security Credentials page in the Amazon Web Services Management Console.

For more information about modifying passwords, see Managing passwords in the IAM User Guide.

" + "documentation":"

Changes the password for the specified IAM user. You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to change the password for any IAM user. Use ChangePassword to change your own password in the My Security Credentials page in the Amazon Web Services Management Console.

For more information about modifying passwords, see Managing passwords in the IAM User Guide.

" }, "UpdateOpenIDConnectProviderThumbprint":{ "name":"UpdateOpenIDConnectProviderThumbprint", @@ -2559,7 +2560,7 @@ {"shape":"UnmodifiableEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Use UpdateRole instead.

Modifies only the description of a role. This operation performs the same function as the Description parameter in the UpdateRole operation.

" + "documentation":"

Use UpdateRole instead.

Modifies only the description of a role. This operation performs the same function as the Description parameter in the UpdateRole operation.

" }, "UpdateSAMLProvider":{ "name":"UpdateSAMLProvider", @@ -2588,7 +2589,8 @@ }, "input":{"shape":"UpdateSSHPublicKeyRequest"}, "errors":[ - {"shape":"NoSuchEntityException"} + {"shape":"NoSuchEntityException"}, + {"shape":"InvalidInputException"} ], "documentation":"

Sets the status of an IAM user's SSH public key to active or inactive. SSH public keys that are inactive cannot be used for authentication. This operation can be used to disable a user's SSH public key as part of a key rotation work flow.

The SSH public key affected by this operation is used only for authenticating the associated IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see Set up CodeCommit for SSH connections in the CodeCommit User Guide.

" }, @@ -2629,7 +2631,8 @@ "errors":[ {"shape":"NoSuchEntityException"}, {"shape":"LimitExceededException"}, - {"shape":"ServiceFailureException"} + {"shape":"ServiceFailureException"}, + {"shape":"InvalidInputException"} ], "documentation":"

Changes the status of the specified user signing certificate from active to disabled, or vice versa. This operation can be used to disable an IAM user's signing certificate as part of a certificate rotation work flow.

If the UserName field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

" }, @@ -2756,7 +2759,7 @@ "documentation":"

The number of accounts with authenticated principals (root user, IAM users, and IAM roles) that attempted to access the service in the tracking period.

" } }, - "documentation":"

An object that contains details about when a principal in the reported Organizations entity last attempted to access an Amazon Web Services service. A principal can be an IAM user, an IAM role, or the Amazon Web Services account root user within the reported Organizations entity.

This data type is a response element in the GetOrganizationsAccessReport operation.

" + "documentation":"

An object that contains details about when a principal in the reported Organizations entity last attempted to access an Amazon Web Services service. A principal can be an IAM user, an IAM role, or the Amazon Web Services account root user within the reported Organizations entity.

This data type is a response element in the GetOrganizationsAccessReport operation.

" }, "AccessDetails":{ "type":"list", @@ -2792,7 +2795,7 @@ "documentation":"

The date when the access key was created.

" } }, - "documentation":"

Contains information about an Amazon Web Services access key.

This data type is used as a response element in the CreateAccessKey and ListAccessKeys operations.

The SecretAccessKey value is returned only in response to CreateAccessKey. You can get a secret access key only when you first create an access key; you cannot recover the secret access key later. If you lose a secret access key, you must create a new access key.

" + "documentation":"

Contains information about an Amazon Web Services access key.

This data type is used as a response element in the CreateAccessKey and ListAccessKeys operations.

The SecretAccessKey value is returned only in response to CreateAccessKey. You can get a secret access key only when you first create an access key; you cannot recover the secret access key later. If you lose a secret access key, you must create a new access key.

" }, "AccessKeyLastUsed":{ "type":"structure", @@ -2814,7 +2817,7 @@ "documentation":"

The Amazon Web Services Region where this access key was most recently used. The value for this field is \"N/A\" in the following situations:

  • The user does not have an access key.

  • An access key exists but has not been used since IAM began tracking this information.

  • There is no sign-in data associated with the user.

For more information about Amazon Web Services Regions, see Regions and endpoints in the Amazon Web Services General Reference.

" } }, - "documentation":"

Contains information about the last time an Amazon Web Services access key was used since IAM began tracking this information on April 22, 2015.

This data type is used as a response element in the GetAccessKeyLastUsed operation.

" + "documentation":"

Contains information about the last time an Amazon Web Services access key was used since IAM began tracking this information on April 22, 2015.

This data type is used as a response element in the GetAccessKeyLastUsed operation.

" }, "AccessKeyMetadata":{ "type":"structure", @@ -2836,7 +2839,7 @@ "documentation":"

The date when the access key was created.

" } }, - "documentation":"

Contains information about an Amazon Web Services access key, without its secret key.

This data type is used as a response element in the ListAccessKeys operation.

" + "documentation":"

Contains information about an Amazon Web Services access key, without its secret key.

This data type is used as a response element in the ListAccessKeys operation.

" }, "AccountNotManagementOrDelegatedAdministratorException":{ "type":"structure", @@ -2862,7 +2865,7 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

" }, "ClientID":{ "shape":"clientIDType", @@ -2982,7 +2985,7 @@ }, "PolicyArn":{"shape":"arnType"} }, - "documentation":"

Contains information about an attached policy.

An attached policy is a managed policy that has been attached to a user, group, or role. This data type is used as a response element in the ListAttachedGroupPolicies, ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about an attached policy.

An attached policy is a managed policy that has been attached to a user, group, or role. This data type is used as a response element in the ListAttachedGroupPolicies, ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "BootstrapDatum":{ "type":"blob", @@ -3059,7 +3062,7 @@ "documentation":"

The data type of the value (or values) specified in the ContextKeyValues parameter.

" } }, - "documentation":"

Contains information about a condition context key. It includes the name of the key and specifies the value (or values, if the context key supports multiple values) to use in the simulation. This information is used when evaluating the Condition elements of the input policies.

This data type is used as an input parameter to SimulateCustomPolicy and SimulatePrincipalPolicy.

" + "documentation":"

Contains information about a condition context key. It includes the name of the key and specifies the value (or values, if the context key supports multiple values) to use in the simulation. This information is used when evaluating the Condition elements of the input policies.

This data type is used as an input parameter to SimulateCustomPolicy and SimulatePrincipalPolicy.

" }, "ContextEntryListType":{ "type":"list", @@ -3114,7 +3117,7 @@ "documentation":"

A structure with details about the access key.

" } }, - "documentation":"

Contains the response to a successful CreateAccessKey request.

" + "documentation":"

Contains the response to a successful CreateAccessKey request.

" }, "CreateAccountAliasRequest":{ "type":"structure", @@ -3149,7 +3152,7 @@ "documentation":"

A structure containing details about the new group.

" } }, - "documentation":"

Contains the response to a successful CreateGroup request.

" + "documentation":"

Contains the response to a successful CreateGroup request.

" }, "CreateInstanceProfileRequest":{ "type":"structure", @@ -3178,7 +3181,7 @@ "documentation":"

A structure containing details about the new instance profile.

" } }, - "documentation":"

Contains the response to a successful CreateInstanceProfile request.

" + "documentation":"

Contains the response to a successful CreateInstanceProfile request.

" }, "CreateLoginProfileRequest":{ "type":"structure", @@ -3206,7 +3209,7 @@ "documentation":"

A structure containing the user name and password create date.

" } }, - "documentation":"

Contains the response to a successful CreateLoginProfile request.

" + "documentation":"

Contains the response to a successful CreateLoginProfile request.

" }, "CreateOpenIDConnectProviderRequest":{ "type":"structure", @@ -3235,14 +3238,14 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that is created. For more information, see OpenIDConnectProviderListEntry.

" + "documentation":"

The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that is created. For more information, see OpenIDConnectProviderListEntry.

" }, "Tags":{ "shape":"tagListType", "documentation":"

A list of tags that are attached to the new IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains the response to a successful CreateOpenIDConnectProvider request.

" + "documentation":"

Contains the response to a successful CreateOpenIDConnectProvider request.

" }, "CreatePolicyRequest":{ "type":"structure", @@ -3281,7 +3284,7 @@ "documentation":"

A structure containing details about the new policy.

" } }, - "documentation":"

Contains the response to a successful CreatePolicy request.

" + "documentation":"

Contains the response to a successful CreatePolicy request.

" }, "CreatePolicyVersionRequest":{ "type":"structure", @@ -3312,7 +3315,7 @@ "documentation":"

A structure containing details about the new policy version.

" } }, - "documentation":"

Contains the response to a successful CreatePolicyVersion request.

" + "documentation":"

Contains the response to a successful CreatePolicyVersion request.

" }, "CreateRoleRequest":{ "type":"structure", @@ -3360,7 +3363,7 @@ "documentation":"

A structure containing details about the new role.

" } }, - "documentation":"

Contains the response to a successful CreateRole request.

" + "documentation":"

Contains the response to a successful CreateRole request.

" }, "CreateSAMLProviderRequest":{ "type":"structure", @@ -3403,7 +3406,7 @@ "documentation":"

A list of tags that are attached to the new IAM SAML provider. The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains the response to a successful CreateSAMLProvider request.

" + "documentation":"

Contains the response to a successful CreateSAMLProvider request.

" }, "CreateServiceLinkedRoleRequest":{ "type":"structure", @@ -3428,7 +3431,7 @@ "members":{ "Role":{ "shape":"Role", - "documentation":"

A Role object that contains details about the newly created role.

" + "documentation":"

A Role object that contains details about the newly created role.

" } } }, @@ -3446,6 +3449,10 @@ "ServiceName":{ "shape":"serviceName", "documentation":"

The name of the Amazon Web Services service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials.

" + }, + "CredentialAgeDays":{ + "shape":"credentialAgeDays", + "documentation":"

The number of days until the service specific credential expires. This field is only valid for Bedrock API keys and must be a positive integer. When not specified, the credential will not expire.

" } } }, @@ -3454,7 +3461,7 @@ "members":{ "ServiceSpecificCredential":{ "shape":"ServiceSpecificCredential", - "documentation":"

A structure that contains information about the newly created service-specific credential.

This is the only time that the password for this credential set is available. It cannot be recovered later. Instead, you must reset the password with ResetServiceSpecificCredential.

" + "documentation":"

A structure that contains information about the newly created service-specific credential.

This is the only time that the password for this credential set is available. It cannot be recovered later. Instead, you must reset the password with ResetServiceSpecificCredential.

" } } }, @@ -3488,7 +3495,7 @@ "documentation":"

A structure with details about the new IAM user.

" } }, - "documentation":"

Contains the response to a successful CreateUser request.

" + "documentation":"

Contains the response to a successful CreateUser request.

" }, "CreateVirtualMFADeviceRequest":{ "type":"structure", @@ -3517,14 +3524,14 @@ "documentation":"

A structure containing details about the new virtual MFA device.

" } }, - "documentation":"

Contains the response to a successful CreateVirtualMFADevice request.

" + "documentation":"

Contains the response to a successful CreateVirtualMFADevice request.

" }, "CredentialReportExpiredException":{ "type":"structure", "members":{ "message":{"shape":"credentialReportExpiredExceptionMessage"} }, - "documentation":"

The request was rejected because the most recent credential report has expired. To generate a new credential report, use GenerateCredentialReport. For more information about credential report expiration, see Getting credential reports in the IAM User Guide.

", + "documentation":"

The request was rejected because the most recent credential report has expired. To generate a new credential report, use GenerateCredentialReport. For more information about credential report expiration, see Getting credential reports in the IAM User Guide.

", "error":{ "code":"ReportExpired", "httpStatusCode":410, @@ -3537,7 +3544,7 @@ "members":{ "message":{"shape":"credentialReportNotPresentExceptionMessage"} }, - "documentation":"

The request was rejected because the credential report does not exist. To generate a credential report, use GenerateCredentialReport.

", + "documentation":"

The request was rejected because the credential report does not exist. To generate a credential report, use GenerateCredentialReport.

", "error":{ "code":"ReportNotPresent", "httpStatusCode":410, @@ -3661,7 +3668,7 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders operation.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders operation.

" } } }, @@ -3796,7 +3803,7 @@ }, "ServiceSpecificCredentialId":{ "shape":"serviceSpecificCredentialId", - "documentation":"

The unique identifier of the service-specific credential. You can get this value by calling ListServiceSpecificCredentials.

This parameter allows (through its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit.

" + "documentation":"

The unique identifier of the service-specific credential. You can get this value by calling ListServiceSpecificCredentials.

This parameter allows (through its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit.

" } } }, @@ -3873,7 +3880,7 @@ "documentation":"

A list of objects that contains details about the service-linked role deletion failure, if that information is returned by the service. If the service-linked role has active sessions or if any resources that were used by the role have not been deleted from the linked service, the role can't be deleted. This parameter includes a list of the resources that are associated with the role and the Region in which the resources are being used.

" } }, - "documentation":"

The reason that the service-linked role deletion failed.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" + "documentation":"

The reason that the service-linked role deletion failed.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" }, "DeletionTaskIdType":{ "type":"string", @@ -4087,7 +4094,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the authenticated entity last attempted to access Amazon Web Services. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" } }, - "documentation":"

An object that contains details about when the IAM entities (users or roles) were last used in an attempt to access the specified Amazon Web Services service.

This data type is a response element in the GetServiceLastAccessedDetailsWithEntities operation.

" + "documentation":"

An object that contains details about when the IAM entities (users or roles) were last used in an attempt to access the specified Amazon Web Services service.

This data type is a response element in the GetServiceLastAccessedDetailsWithEntities operation.

" }, "EntityInfo":{ "type":"structure", @@ -4116,7 +4123,7 @@ "documentation":"

The path to the entity (user or role). For more information about paths, see IAM identifiers in the IAM User Guide.

" } }, - "documentation":"

Contains details about the specified entity (user or role).

This data type is an element of the EntityDetails object.

" + "documentation":"

Contains details about the specified entity (user or role).

This data type is an element of the EntityDetails object.

" }, "EntityTemporarilyUnmodifiableException":{ "type":"structure", @@ -4157,7 +4164,7 @@ "documentation":"

The error code associated with the operation failure.

" } }, - "documentation":"

Contains information about the reason that the operation failed.

This data type is used as a response element in the GetOrganizationsAccessReport, GetServiceLastAccessedDetails, and GetServiceLastAccessedDetailsWithEntities operations.

" + "documentation":"

Contains information about the reason that the operation failed.

This data type is used as a response element in the GetOrganizationsAccessReport, GetServiceLastAccessedDetails, and GetServiceLastAccessedDetailsWithEntities operations.

" }, "EvalDecisionDetailsType":{ "type":"map", @@ -4194,7 +4201,7 @@ }, "MissingContextValues":{ "shape":"ContextKeyNamesResultListType", - "documentation":"

A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when the resource in a simulation is \"*\", either explicitly, or when the ResourceArns parameter blank. If you include a list of resources, then any missing context values are instead included under the ResourceSpecificResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

" + "documentation":"

A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when the resource in a simulation is \"*\", either explicitly, or when the ResourceArns parameter blank. If you include a list of resources, then any missing context values are instead included under the ResourceSpecificResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

" }, "OrganizationsDecisionDetail":{ "shape":"OrganizationsDecisionDetail", @@ -4213,7 +4220,7 @@ "documentation":"

The individual results of the simulation of the API operation specified in EvalActionName on each resource.

" } }, - "documentation":"

Contains the results of a simulation.

This data type is used by the return parameter of SimulateCustomPolicy and SimulatePrincipalPolicy .

" + "documentation":"

Contains the results of a simulation.

This data type is used by the return parameter of SimulateCustomPolicy and SimulatePrincipalPolicy .

" }, "EvaluationResultsListType":{ "type":"list", @@ -4242,7 +4249,7 @@ "documentation":"

Information about the credential report.

" } }, - "documentation":"

Contains the response to a successful GenerateCredentialReport request.

" + "documentation":"

Contains the response to a successful GenerateCredentialReport request.

" }, "GenerateOrganizationsAccessReportRequest":{ "type":"structure", @@ -4263,7 +4270,7 @@ "members":{ "JobId":{ "shape":"jobIDType", - "documentation":"

The job identifier that you can use in the GetOrganizationsAccessReport operation.

" + "documentation":"

The job identifier that you can use in the GetOrganizationsAccessReport operation.

" } } }, @@ -4286,7 +4293,7 @@ "members":{ "JobId":{ "shape":"jobIDType", - "documentation":"

The JobId that you can use in the GetServiceLastAccessedDetails or GetServiceLastAccessedDetailsWithEntities operations. The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

" + "documentation":"

The JobId that you can use in the GetServiceLastAccessedDetails or GetServiceLastAccessedDetailsWithEntities operations. The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

" } } }, @@ -4312,7 +4319,7 @@ "documentation":"

Contains information about the last time the access key was used.

" } }, - "documentation":"

Contains the response to a successful GetAccessKeyLastUsed request. It is also returned as a member of the AccessKeyMetaData structure returned by the ListAccessKeys action.

" + "documentation":"

Contains the response to a successful GetAccessKeyLastUsed request. It is also returned as a member of the AccessKeyMetaData structure returned by the ListAccessKeys action.

" }, "GetAccountAuthorizationDetailsRequest":{ "type":"structure", @@ -4359,7 +4366,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful GetAccountAuthorizationDetails request.

" + "documentation":"

Contains the response to a successful GetAccountAuthorizationDetails request.

" }, "GetAccountPasswordPolicyResponse":{ "type":"structure", @@ -4370,7 +4377,7 @@ "documentation":"

A structure that contains details about the account's password policy.

" } }, - "documentation":"

Contains the response to a successful GetAccountPasswordPolicy request.

" + "documentation":"

Contains the response to a successful GetAccountPasswordPolicy request.

" }, "GetAccountSummaryResponse":{ "type":"structure", @@ -4380,7 +4387,7 @@ "documentation":"

A set of key–value pairs containing information about IAM entity usage and IAM quotas.

" } }, - "documentation":"

Contains the response to a successful GetAccountSummary request.

" + "documentation":"

Contains the response to a successful GetAccountSummary request.

" }, "GetContextKeysForCustomPolicyRequest":{ "type":"structure", @@ -4400,7 +4407,7 @@ "documentation":"

The list of context keys that are referenced in the input policies.

" } }, - "documentation":"

Contains the response to a successful GetContextKeysForPrincipalPolicy or GetContextKeysForCustomPolicy request.

" + "documentation":"

Contains the response to a successful GetContextKeysForPrincipalPolicy or GetContextKeysForCustomPolicy request.

" }, "GetContextKeysForPrincipalPolicyRequest":{ "type":"structure", @@ -4432,7 +4439,7 @@ "documentation":"

The date and time when the credential report was created, in ISO 8601 date-time format.

" } }, - "documentation":"

Contains the response to a successful GetCredentialReport request.

" + "documentation":"

Contains the response to a successful GetCredentialReport request.

" }, "GetGroupPolicyRequest":{ "type":"structure", @@ -4472,7 +4479,7 @@ "documentation":"

The policy document.

IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.

" } }, - "documentation":"

Contains the response to a successful GetGroupPolicy request.

" + "documentation":"

Contains the response to a successful GetGroupPolicy request.

" }, "GetGroupRequest":{ "type":"structure", @@ -4516,7 +4523,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful GetGroup request.

" + "documentation":"

Contains the response to a successful GetGroup request.

" }, "GetInstanceProfileRequest":{ "type":"structure", @@ -4537,7 +4544,7 @@ "documentation":"

A structure containing details about the instance profile.

" } }, - "documentation":"

Contains the response to a successful GetInstanceProfile request.

" + "documentation":"

Contains the response to a successful GetInstanceProfile request.

" }, "GetLoginProfileRequest":{ "type":"structure", @@ -4557,7 +4564,7 @@ "documentation":"

A structure containing the user name and the profile creation date for the user.

" } }, - "documentation":"

Contains the response to a successful GetLoginProfile request.

" + "documentation":"

Contains the response to a successful GetLoginProfile request.

" }, "GetMFADeviceRequest":{ "type":"structure", @@ -4601,7 +4608,7 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get information for. You can get a list of OIDC provider resource ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get information for. You can get a list of OIDC provider resource ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } } }, @@ -4610,15 +4617,15 @@ "members":{ "Url":{ "shape":"OpenIDConnectProviderUrlType", - "documentation":"

The URL that the IAM OIDC provider resource object is associated with. For more information, see CreateOpenIDConnectProvider.

" + "documentation":"

The URL that the IAM OIDC provider resource object is associated with. For more information, see CreateOpenIDConnectProvider.

" }, "ClientIDList":{ "shape":"clientIDListType", - "documentation":"

A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.

" + "documentation":"

A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.

" }, "ThumbprintList":{ "shape":"thumbprintListType", - "documentation":"

A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.

" + "documentation":"

A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.

" }, "CreateDate":{ "shape":"dateType", @@ -4629,7 +4636,7 @@ "documentation":"

A list of tags that are attached to the specified IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains the response to a successful GetOpenIDConnectProvider request.

" + "documentation":"

Contains the response to a successful GetOpenIDConnectProvider request.

" }, "GetOrganizationsAccessReportRequest":{ "type":"structure", @@ -4637,7 +4644,7 @@ "members":{ "JobId":{ "shape":"jobIDType", - "documentation":"

The identifier of the request generated by the GenerateOrganizationsAccessReport operation.

" + "documentation":"

The identifier of the request generated by the GenerateOrganizationsAccessReport operation.

" }, "MaxItems":{ "shape":"maxItemsType", @@ -4713,7 +4720,7 @@ "documentation":"

A structure containing details about the policy.

" } }, - "documentation":"

Contains the response to a successful GetPolicy request.

" + "documentation":"

Contains the response to a successful GetPolicy request.

" }, "GetPolicyVersionRequest":{ "type":"structure", @@ -4740,7 +4747,7 @@ "documentation":"

A structure containing details about the policy version.

" } }, - "documentation":"

Contains the response to a successful GetPolicyVersion request.

" + "documentation":"

Contains the response to a successful GetPolicyVersion request.

" }, "GetRolePolicyRequest":{ "type":"structure", @@ -4780,7 +4787,7 @@ "documentation":"

The policy document.

IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.

" } }, - "documentation":"

Contains the response to a successful GetRolePolicy request.

" + "documentation":"

Contains the response to a successful GetRolePolicy request.

" }, "GetRoleRequest":{ "type":"structure", @@ -4801,7 +4808,7 @@ "documentation":"

A structure containing details about the IAM role.

" } }, - "documentation":"

Contains the response to a successful GetRole request.

" + "documentation":"

Contains the response to a successful GetRole request.

" }, "GetSAMLProviderRequest":{ "type":"structure", @@ -4845,7 +4852,7 @@ "documentation":"

The private key metadata for the SAML provider.

" } }, - "documentation":"

Contains the response to a successful GetSAMLProvider request.

" + "documentation":"

Contains the response to a successful GetSAMLProvider request.

" }, "GetSSHPublicKeyRequest":{ "type":"structure", @@ -4877,7 +4884,7 @@ "documentation":"

A structure containing details about the SSH public key.

" } }, - "documentation":"

Contains the response to a successful GetSSHPublicKey request.

" + "documentation":"

Contains the response to a successful GetSSHPublicKey request.

" }, "GetServerCertificateRequest":{ "type":"structure", @@ -4898,7 +4905,7 @@ "documentation":"

A structure containing details about the server certificate.

" } }, - "documentation":"

Contains the response to a successful GetServerCertificate request.

" + "documentation":"

Contains the response to a successful GetServerCertificate request.

" }, "GetServiceLastAccessedDetailsRequest":{ "type":"structure", @@ -4906,7 +4913,7 @@ "members":{ "JobId":{ "shape":"jobIDType", - "documentation":"

The ID of the request generated by the GenerateServiceLastAccessedDetails operation. The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

" + "documentation":"

The ID of the request generated by the GenerateServiceLastAccessedDetails operation. The JobId returned by GenerateServiceLastAccessedDetail must be used by the same role within a session, or by the same user when used to call GetServiceLastAccessedDetail.

" }, "MaxItems":{ "shape":"maxItemsType", @@ -5031,7 +5038,7 @@ "members":{ "DeletionTaskId":{ "shape":"DeletionTaskIdType", - "documentation":"

The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.

" + "documentation":"

The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.

" } } }, @@ -5087,7 +5094,7 @@ "documentation":"

The policy document.

IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.

" } }, - "documentation":"

Contains the response to a successful GetUserPolicy request.

" + "documentation":"

Contains the response to a successful GetUserPolicy request.

" }, "GetUserRequest":{ "type":"structure", @@ -5107,7 +5114,7 @@ "documentation":"

A structure containing details about the IAM user.

Due to a service issue, password last used data does not include password use from May 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last sign-in dates shown in the IAM console and password last used dates in the IAM credential report, and returned by this operation. If users signed in during the affected time, the password last used date that is returned is the date the user last signed in before May 3, 2018. For users that signed in after May 23, 2018 14:08 PDT, the returned password last used date is accurate.

You can use password last used information to identify unused credentials for deletion. For example, you might delete users who did not sign in to Amazon Web Services in the last 90 days. In cases like this, we recommend that you adjust your evaluation window to include dates after May 23, 2018. Alternatively, if your users use access keys to access Amazon Web Services programmatically you can refer to access key last used information because it is accurate for all dates.

" } }, - "documentation":"

Contains the response to a successful GetUser request.

" + "documentation":"

Contains the response to a successful GetUser request.

" }, "Group":{ "type":"structure", @@ -5140,7 +5147,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the group was created.

" } }, - "documentation":"

Contains information about an IAM group entity.

This data type is used as a response element in the following operations:

" + "documentation":"

Contains information about an IAM group entity.

This data type is used as a response element in the following operations:

" }, "GroupDetail":{ "type":"structure", @@ -5171,7 +5178,7 @@ "documentation":"

A list of the managed policies attached to the group.

" } }, - "documentation":"

Contains information about an IAM group, including all of the group's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + "documentation":"

Contains information about an IAM group, including all of the group's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" }, "InstanceProfile":{ "type":"structure", @@ -5213,7 +5220,7 @@ "documentation":"

A list of tags that are attached to the instance profile. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains information about an instance profile.

This data type is used as a response element in the following operations:

" + "documentation":"

Contains information about an instance profile.

This data type is used as a response element in the following operations:

" }, "InvalidAuthenticationCodeException":{ "type":"structure", @@ -5341,7 +5348,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListAccessKeys request.

" + "documentation":"

Contains the response to a successful ListAccessKeys request.

" }, "ListAccountAliasesRequest":{ "type":"structure", @@ -5373,7 +5380,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListAccountAliases request.

" + "documentation":"

Contains the response to a successful ListAccountAliases request.

" }, "ListAttachedGroupPoliciesRequest":{ "type":"structure", @@ -5413,7 +5420,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListAttachedGroupPolicies request.

" + "documentation":"

Contains the response to a successful ListAttachedGroupPolicies request.

" }, "ListAttachedRolePoliciesRequest":{ "type":"structure", @@ -5453,7 +5460,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListAttachedRolePolicies request.

" + "documentation":"

Contains the response to a successful ListAttachedRolePolicies request.

" }, "ListAttachedUserPoliciesRequest":{ "type":"structure", @@ -5493,7 +5500,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListAttachedUserPolicies request.

" + "documentation":"

Contains the response to a successful ListAttachedUserPolicies request.

" }, "ListEntitiesForPolicyRequest":{ "type":"structure", @@ -5549,7 +5556,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListEntitiesForPolicy request.

" + "documentation":"

Contains the response to a successful ListEntitiesForPolicy request.

" }, "ListGroupPoliciesRequest":{ "type":"structure", @@ -5586,7 +5593,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListGroupPolicies request.

" + "documentation":"

Contains the response to a successful ListGroupPolicies request.

" }, "ListGroupsForUserRequest":{ "type":"structure", @@ -5623,7 +5630,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListGroupsForUser request.

" + "documentation":"

Contains the response to a successful ListGroupsForUser request.

" }, "ListGroupsRequest":{ "type":"structure", @@ -5659,7 +5666,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListGroups request.

" + "documentation":"

Contains the response to a successful ListGroups request.

" }, "ListInstanceProfileTagsRequest":{ "type":"structure", @@ -5732,7 +5739,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListInstanceProfilesForRole request.

" + "documentation":"

Contains the response to a successful ListInstanceProfilesForRole request.

" }, "ListInstanceProfilesRequest":{ "type":"structure", @@ -5768,7 +5775,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListInstanceProfiles request.

" + "documentation":"

Contains the response to a successful ListInstanceProfiles request.

" }, "ListMFADeviceTagsRequest":{ "type":"structure", @@ -5840,7 +5847,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListMFADevices request.

" + "documentation":"

Contains the response to a successful ListMFADevices request.

" }, "ListOpenIDConnectProviderTagsRequest":{ "type":"structure", @@ -5890,7 +5897,7 @@ "documentation":"

The list of IAM OIDC provider resource objects defined in the Amazon Web Services account.

" } }, - "documentation":"

Contains the response to a successful ListOpenIDConnectProviders request.

" + "documentation":"

Contains the response to a successful ListOpenIDConnectProviders request.

" }, "ListOrganizationsFeaturesRequest":{ "type":"structure", @@ -5921,7 +5928,7 @@ "documentation":"

The PoliciesGrantingServiceAccess object that contains details about the policy.

" } }, - "documentation":"

Contains details about the permissions policies that are attached to the specified identity (user, group, or role).

This data type is used as a response element in the ListPoliciesGrantingServiceAccess operation.

" + "documentation":"

Contains details about the permissions policies that are attached to the specified identity (user, group, or role).

This data type is used as a response element in the ListPoliciesGrantingServiceAccess operation.

" }, "ListPoliciesGrantingServiceAccessRequest":{ "type":"structure", @@ -6007,7 +6014,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListPolicies request.

" + "documentation":"

Contains the response to a successful ListPolicies request.

" }, "ListPolicyTagsRequest":{ "type":"structure", @@ -6079,7 +6086,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListPolicyVersions request.

" + "documentation":"

Contains the response to a successful ListPolicyVersions request.

" }, "ListRolePoliciesRequest":{ "type":"structure", @@ -6116,7 +6123,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListRolePolicies request.

" + "documentation":"

Contains the response to a successful ListRolePolicies request.

" }, "ListRoleTagsRequest":{ "type":"structure", @@ -6188,7 +6195,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListRoles request.

" + "documentation":"

Contains the response to a successful ListRoles request.

" }, "ListSAMLProviderTagsRequest":{ "type":"structure", @@ -6238,7 +6245,7 @@ "documentation":"

The list of SAML provider resource objects defined in IAM for this Amazon Web Services account.

" } }, - "documentation":"

Contains the response to a successful ListSAMLProviders request.

" + "documentation":"

Contains the response to a successful ListSAMLProviders request.

" }, "ListSSHPublicKeysRequest":{ "type":"structure", @@ -6273,7 +6280,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListSSHPublicKeys request.

" + "documentation":"

Contains the response to a successful ListSSHPublicKeys request.

" }, "ListServerCertificateTagsRequest":{ "type":"structure", @@ -6345,7 +6352,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListServerCertificates request.

" + "documentation":"

Contains the response to a successful ListServerCertificates request.

" }, "ListServiceSpecificCredentialsRequest":{ "type":"structure", @@ -6357,6 +6364,18 @@ "ServiceName":{ "shape":"serviceName", "documentation":"

Filters the returned results to only those for the specified Amazon Web Services service. If not specified, then Amazon Web Services returns service-specific credentials for all services.

" + }, + "AllUsers":{ + "shape":"allUsers", + "documentation":"

A flag indicating whether to list service specific credentials for all users. This parameter cannot be specified together with UserName. When true, returns all credentials associated with the specified service.

" + }, + "Marker":{ + "shape":"markerType", + "documentation":"

Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker from the response that you received to indicate where the next call should start.

" + }, + "MaxItems":{ + "shape":"maxItemsType", + "documentation":"

Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true.

" } } }, @@ -6366,6 +6385,14 @@ "ServiceSpecificCredentials":{ "shape":"ServiceSpecificCredentialsListType", "documentation":"

A list of structures that each contain details about a service-specific credential.

" + }, + "Marker":{ + "shape":"responseMarkerType", + "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" + }, + "IsTruncated":{ + "shape":"booleanType", + "documentation":"

A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items.

" } } }, @@ -6403,7 +6430,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListSigningCertificates request.

" + "documentation":"

Contains the response to a successful ListSigningCertificates request.

" }, "ListUserPoliciesRequest":{ "type":"structure", @@ -6440,7 +6467,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListUserPolicies request.

" + "documentation":"

Contains the response to a successful ListUserPolicies request.

" }, "ListUserTagsRequest":{ "type":"structure", @@ -6512,7 +6539,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListUsers request.

" + "documentation":"

Contains the response to a successful ListUsers request.

" }, "ListVirtualMFADevicesRequest":{ "type":"structure", @@ -6548,7 +6575,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful ListVirtualMFADevices request.

" + "documentation":"

Contains the response to a successful ListVirtualMFADevices request.

" }, "LoginProfile":{ "type":"structure", @@ -6570,7 +6597,7 @@ "documentation":"

Specifies whether the user is required to set a new password on next sign-in.

" } }, - "documentation":"

Contains the user name and password create date for a user.

This data type is used as a response element in the CreateLoginProfile and GetLoginProfile operations.

" + "documentation":"

Contains the user name and password create date for a user.

This data type is used as a response element in the CreateLoginProfile and GetLoginProfile operations.

" }, "MFADevice":{ "type":"structure", @@ -6593,7 +6620,7 @@ "documentation":"

The date when the MFA device was enabled for the user.

" } }, - "documentation":"

Contains information about an MFA device.

This data type is used as a response element in the ListMFADevices operation.

" + "documentation":"

Contains information about an MFA device.

This data type is used as a response element in the ListMFADevices operation.

" }, "MalformedCertificateException":{ "type":"structure", @@ -6670,7 +6697,7 @@ "documentation":"

A list containing information about the versions of the policy.

" } }, - "documentation":"

Contains information about a managed policy, including the policy's ARN, versions, and the number of principal entities (users, groups, and roles) that the policy is attached to.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

For more information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a managed policy, including the policy's ARN, versions, and the number of principal entities (users, groups, and roles) that the policy is attached to.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

For more information about managed policies, see Managed policies and inline policies in the IAM User Guide.

" }, "ManagedPolicyDetailListType":{ "type":"list", @@ -6791,7 +6818,7 @@ "documentation":"

Specifies whether IAM users are prevented from setting a new password via the Amazon Web Services Management Console after their password has expired. The IAM user cannot access the console until an administrator resets the password. IAM users with iam:ChangePassword permission and active access keys can reset their own expired console password using the CLI or API.

" } }, - "documentation":"

Contains information about the account password policy.

This data type is used as a response element in the GetAccountPasswordPolicy operation.

" + "documentation":"

Contains information about the account password policy.

This data type is used as a response element in the GetAccountPasswordPolicy operation.

" }, "PasswordPolicyViolationException":{ "type":"structure", @@ -6854,7 +6881,7 @@ }, "Description":{ "shape":"policyDescriptionType", - "documentation":"

A friendly description of the policy.

This element is included in the response to the GetPolicy operation. It is not included in the response to the ListPolicies operation.

" + "documentation":"

A friendly description of the policy.

This element is included in the response to the GetPolicy operation. It is not included in the response to the ListPolicies operation.

" }, "CreateDate":{ "shape":"dateType", @@ -6869,7 +6896,7 @@ "documentation":"

A list of tags that are attached to the instance profile. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains information about a managed policy.

This data type is used as a response element in the CreatePolicy, GetPolicy, and ListPolicies operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a managed policy.

This data type is used as a response element in the CreatePolicy, GetPolicy, and ListPolicies operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "PolicyDetail":{ "type":"structure", @@ -6883,7 +6910,7 @@ "documentation":"

The policy document.

" } }, - "documentation":"

Contains information about an IAM policy, including the policy document.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + "documentation":"

Contains information about an IAM policy, including the policy document.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" }, "PolicyEvaluationDecisionType":{ "type":"string", @@ -6930,7 +6957,7 @@ "documentation":"

The name of the entity (user or role) to which the inline policy is attached.

This field is null for managed policies. For more information about these policy types, see Managed policies and inline policies in the IAM User Guide.

" } }, - "documentation":"

Contains details about the permissions policies that are attached to the specified identity (user, group, or role).

This data type is an element of the ListPoliciesGrantingServiceAccessEntry object.

" + "documentation":"

Contains details about the permissions policies that are attached to the specified identity (user, group, or role).

This data type is an element of the ListPoliciesGrantingServiceAccessEntry object.

" }, "PolicyGroup":{ "type":"structure", @@ -6944,7 +6971,7 @@ "documentation":"

The stable and unique string identifying the group. For more information about IDs, see IAM identifiers in the IAM User Guide.

" } }, - "documentation":"

Contains information about a group that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a group that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "PolicyGroupListType":{ "type":"list", @@ -6976,7 +7003,7 @@ "documentation":"

The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the IAM User Guide.

" } }, - "documentation":"

Contains information about a role that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a role that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "PolicyRoleListType":{ "type":"list", @@ -7014,7 +7041,7 @@ "documentation":"

The stable and unique string identifying the user. For more information about IDs, see IAM identifiers in the IAM User Guide.

" } }, - "documentation":"

Contains information about a user that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a user that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy operation.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "PolicyUserListType":{ "type":"list", @@ -7025,7 +7052,7 @@ "members":{ "Document":{ "shape":"policyDocumentType", - "documentation":"

The policy document.

The policy document is returned in the response to the GetPolicyVersion and GetAccountAuthorizationDetails operations. It is not returned in the response to the CreatePolicyVersion or ListPolicyVersions operations.

The policy document returned in this structure is URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

" + "documentation":"

The policy document.

The policy document is returned in the response to the GetPolicyVersion and GetAccountAuthorizationDetails operations. It is not returned in the response to the CreatePolicyVersion or ListPolicyVersions operations.

The policy document returned in this structure is URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

" }, "VersionId":{ "shape":"policyVersionIdType", @@ -7040,7 +7067,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the policy version was created.

" } }, - "documentation":"

Contains information about a version of a managed policy.

This data type is used as a response element in the CreatePolicyVersion, GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" + "documentation":"

Contains information about a version of a managed policy.

This data type is used as a response element in the CreatePolicyVersion, GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails operations.

For more information about managed policies, refer to Managed policies and inline policies in the IAM User Guide.

" }, "Position":{ "type":"structure", @@ -7054,7 +7081,7 @@ "documentation":"

The column in the line containing the specified position in the document.

" } }, - "documentation":"

Contains the row and column of a location of a Statement element in a policy document.

This data type is used as a member of the Statement type.

" + "documentation":"

Contains the row and column of a location of a Statement element in a policy document.

This data type is used as a member of the Statement type.

" }, "PutGroupPolicyRequest":{ "type":"structure", @@ -7174,11 +7201,11 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove the client ID from. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove the client ID from. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" }, "ClientID":{ "shape":"clientIDType", - "documentation":"

The client ID (also known as audience) to remove from the IAM OIDC provider resource. For more information about client IDs, see CreateOpenIDConnectProvider.

" + "documentation":"

The client ID (also known as audience) to remove from the IAM OIDC provider resource. For more information about client IDs, see CreateOpenIDConnectProvider.

" } } }, @@ -7301,7 +7328,7 @@ }, "MissingContextValues":{ "shape":"ContextKeyNamesResultListType", - "documentation":"

A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when a list of ARNs is included in the ResourceArns parameter instead of \"*\". If you do not specify individual resources, by setting ResourceArns to \"*\" or by not including the ResourceArns parameter, then any missing context values are instead included under the EvaluationResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

" + "documentation":"

A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when a list of ARNs is included in the ResourceArns parameter instead of \"*\". If you do not specify individual resources, by setting ResourceArns to \"*\" or by not including the ResourceArns parameter, then any missing context values are instead included under the EvaluationResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

" }, "EvalDecisionDetails":{ "shape":"EvalDecisionDetailsType", @@ -7312,7 +7339,7 @@ "documentation":"

Contains information about the effect that a permissions boundary has on a policy simulation when that boundary is applied to an IAM entity.

" } }, - "documentation":"

Contains the result of the simulation of a single API operation call on a single resource.

This data type is used by a member of the EvaluationResult data type.

" + "documentation":"

Contains the result of the simulation of a single API operation call on a single resource.

This data type is used by a member of the EvaluationResult data type.

" }, "ResourceSpecificResultListType":{ "type":"list", @@ -7451,7 +7478,7 @@ "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM User Guide.

" } }, - "documentation":"

Contains information about an IAM role, including all of the role's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + "documentation":"

Contains information about an IAM role, including all of the role's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" }, "RoleLastUsed":{ "type":"structure", @@ -7465,7 +7492,7 @@ "documentation":"

The name of the Amazon Web Services Region in which the role was last used.

" } }, - "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide.

This data type is returned as a response element in the GetRole and GetAccountAuthorizationDetails operations.

" + "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide.

This data type is returned as a response element in the GetRole and GetAccountAuthorizationDetails operations.

" }, "RoleUsageListType":{ "type":"list", @@ -7483,7 +7510,7 @@ "documentation":"

The name of the resource that is using the service-linked role.

" } }, - "documentation":"

An object that contains details about how a service-linked role is used, if that information is returned by the service.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" + "documentation":"

An object that contains details about how a service-linked role is used, if that information is returned by the service.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" }, "SAMLMetadataDocumentType":{ "type":"string", @@ -7502,7 +7529,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the private key was uploaded.

" } }, - "documentation":"

Contains the private keys for the SAML provider.

This data type is used as a response element in the GetSAMLProvider operation.

" + "documentation":"

Contains the private keys for the SAML provider.

This data type is used as a response element in the GetSAMLProvider operation.

" }, "SAMLProviderListEntry":{ "type":"structure", @@ -7567,7 +7594,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded.

" } }, - "documentation":"

Contains information about an SSH public key.

This data type is used as a response element in the GetSSHPublicKey and UploadSSHPublicKey operations.

" + "documentation":"

Contains information about an SSH public key.

This data type is used as a response element in the GetSSHPublicKey and UploadSSHPublicKey operations.

" }, "SSHPublicKeyListType":{ "type":"list", @@ -7599,7 +7626,7 @@ "documentation":"

The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded.

" } }, - "documentation":"

Contains information about an SSH public key, without the key's body or fingerprint.

This data type is used as a response element in the ListSSHPublicKeys operation.

" + "documentation":"

Contains information about an SSH public key, without the key's body or fingerprint.

This data type is used as a response element in the ListSSHPublicKeys operation.

" }, "ServerCertificate":{ "type":"structure", @@ -7625,7 +7652,7 @@ "documentation":"

A list of tags that are attached to the server certificate. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains information about a server certificate.

This data type is used as a response element in the GetServerCertificate operation.

" + "documentation":"

Contains information about a server certificate.

This data type is used as a response element in the GetServerCertificate operation.

" }, "ServerCertificateMetadata":{ "type":"structure", @@ -7661,7 +7688,7 @@ "documentation":"

The date on which the certificate is set to expire.

" } }, - "documentation":"

Contains information about a server certificate without its certificate body, certificate chain, and private key.

This data type is used as a response element in the UploadServerCertificate and ListServerCertificates operations.

" + "documentation":"

Contains information about a server certificate without its certificate body, certificate chain, and private key.

This data type is used as a response element in the UploadServerCertificate and ListServerCertificates operations.

" }, "ServiceAccessNotEnabledException":{ "type":"structure", @@ -7714,10 +7741,10 @@ }, "TrackedActionsLastAccessed":{ "shape":"TrackedActionsLastAccessed", - "documentation":"

An object that contains details about the most recent attempt to access a tracked action within the service.

This field is null if there no tracked actions or if the principal did not use the tracked actions within the tracking period. This field is also null if the report was generated at the service level and not the action level. For more information, see the Granularity field in GenerateServiceLastAccessedDetails.

" + "documentation":"

An object that contains details about the most recent attempt to access a tracked action within the service.

This field is null if there no tracked actions or if the principal did not use the tracked actions within the tracking period. This field is also null if the report was generated at the service level and not the action level. For more information, see the Granularity field in GenerateServiceLastAccessedDetails.

" } }, - "documentation":"

Contains details about the most recent attempt to access the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" + "documentation":"

Contains details about the most recent attempt to access the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" }, "ServiceNotSupportedException":{ "type":"structure", @@ -7737,8 +7764,6 @@ "required":[ "CreateDate", "ServiceName", - "ServiceUserName", - "ServicePassword", "ServiceSpecificCredentialId", "UserName", "Status" @@ -7748,6 +7773,10 @@ "shape":"dateType", "documentation":"

The date and time, in ISO 8601 date-time format, when the service-specific credential were created.

" }, + "ExpirationDate":{ + "shape":"dateType", + "documentation":"

The date and time when the service specific credential expires. This field is only present for Bedrock API keys that were created with an expiration period.

" + }, "ServiceName":{ "shape":"serviceName", "documentation":"

The name of the service associated with the service-specific credential.

" @@ -7760,6 +7789,14 @@ "shape":"servicePassword", "documentation":"

The generated password for the service-specific credential.

" }, + "ServiceCredentialAlias":{ + "shape":"serviceCredentialAlias", + "documentation":"

For Bedrock API keys, this is the public portion of the credential that includes the IAM user name and a suffix containing version and creation information.

" + }, + "ServiceCredentialSecret":{ + "shape":"serviceCredentialSecret", + "documentation":"

For Bedrock API keys, this is the secret portion of the credential that should be used to authenticate API calls. This value is returned only when the credential is created.

" + }, "ServiceSpecificCredentialId":{ "shape":"serviceSpecificCredentialId", "documentation":"

The unique identifier for the service-specific credential.

" @@ -7780,7 +7817,6 @@ "required":[ "UserName", "Status", - "ServiceUserName", "CreateDate", "ServiceSpecificCredentialId", "ServiceName" @@ -7798,10 +7834,18 @@ "shape":"serviceUserName", "documentation":"

The generated user name for the service-specific credential.

" }, + "ServiceCredentialAlias":{ + "shape":"serviceCredentialAlias", + "documentation":"

For Bedrock API keys, this is the public portion of the credential that includes the IAM user name and a suffix containing version and creation information.

" + }, "CreateDate":{ "shape":"dateType", "documentation":"

The date and time, in ISO 8601 date-time format, when the service-specific credential were created.

" }, + "ExpirationDate":{ + "shape":"dateType", + "documentation":"

The date and time when the service specific credential expires. This field is only present for Bedrock API keys that were created with an expiration period.

" + }, "ServiceSpecificCredentialId":{ "shape":"serviceSpecificCredentialId", "documentation":"

The unique identifier for the service-specific credential.

" @@ -7878,7 +7922,7 @@ "documentation":"

The date when the signing certificate was uploaded.

" } }, - "documentation":"

Contains information about an X.509 signing certificate.

This data type is used as a response element in the UploadSigningCertificate and ListSigningCertificates operations.

" + "documentation":"

Contains information about an X.509 signing certificate.

This data type is used as a response element in the UploadSigningCertificate and ListSigningCertificates operations.

" }, "SimulateCustomPolicyRequest":{ "type":"structure", @@ -7949,7 +7993,7 @@ "documentation":"

When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" } }, - "documentation":"

Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy request.

" + "documentation":"

Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy request.

" }, "SimulatePrincipalPolicyRequest":{ "type":"structure", @@ -8032,7 +8076,7 @@ "documentation":"

The row and column of the end of a Statement in an IAM policy.

" } }, - "documentation":"

Contains a reference to a Statement element in a policy document that determines the result of the simulation.

This data type is used by the MatchedStatements member of the EvaluationResult type.

" + "documentation":"

Contains a reference to a Statement element in a policy document that determines the result of the simulation.

This data type is used by the MatchedStatements member of the EvaluationResult type.

" }, "StatementListType":{ "type":"list", @@ -8051,7 +8095,7 @@ }, "Value":{ "shape":"tagValueType", - "documentation":"

The value associated with this tag. For example, tags with a key name of Department could have values such as Human Resources, Accounting, and Support. Tags with a key name of Cost Center might have values that consist of the number associated with the different cost centers in your company. Typically, many resources have tags with the same key name but with different values.

Amazon Web Services always interprets the tag Value as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.

" + "documentation":"

The value associated with this tag. For example, tags with a key name of Department could have values such as Human Resources, Accounting, and Support. Tags with a key name of Cost Center might have values that consist of the number associated with the different cost centers in your company. Typically, many resources have tags with the same key name but with different values.

" } }, "documentation":"

A structure that represents user-provided metadata that can be associated with an IAM resource. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" @@ -8209,7 +8253,7 @@ "documentation":"

The Region from which the authenticated entity (user or role) last attempted to access the tracked action. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" } }, - "documentation":"

Contains details about the most recent attempt to access an action within the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" + "documentation":"

Contains details about the most recent attempt to access an action within the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" }, "TrackedActionsLastAccessed":{ "type":"list", @@ -8484,7 +8528,7 @@ }, "Password":{ "shape":"passwordType", - "documentation":"

The new password for the specified IAM user.

The regex pattern used to validate this parameter is a string of characters consisting of the following:

  • Any printable ASCII character ranging from the space character (\\u0020) through the end of the ASCII character range

  • The printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF)

  • The special characters tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D)

However, the format can be further restricted by the account administrator by setting a password policy on the Amazon Web Services account. For more information, see UpdateAccountPasswordPolicy.

" + "documentation":"

The new password for the specified IAM user.

The regex pattern used to validate this parameter is a string of characters consisting of the following:

  • Any printable ASCII character ranging from the space character (\\u0020) through the end of the ASCII character range

  • The printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF)

  • The special characters tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D)

However, the format can be further restricted by the account administrator by setting a password policy on the Amazon Web Services account. For more information, see UpdateAccountPasswordPolicy.

" }, "PasswordResetRequired":{ "shape":"booleanObjectType", @@ -8501,11 +8545,11 @@ "members":{ "OpenIDConnectProviderArn":{ "shape":"arnType", - "documentation":"

The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" }, "ThumbprintList":{ "shape":"thumbprintListType", - "documentation":"

A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.

" + "documentation":"

A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.

" } } }, @@ -8591,7 +8635,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the SAML provider that was updated.

" } }, - "documentation":"

Contains the response to a successful UpdateSAMLProvider request.

" + "documentation":"

Contains the response to a successful UpdateSAMLProvider request.

" }, "UpdateSSHPublicKeyRequest":{ "type":"structure", @@ -8718,7 +8762,7 @@ "documentation":"

Contains information about the SSH public key.

" } }, - "documentation":"

Contains the response to a successful UploadSSHPublicKey request.

" + "documentation":"

Contains the response to a successful UploadSSHPublicKey request.

" }, "UploadServerCertificateRequest":{ "type":"structure", @@ -8766,7 +8810,7 @@ "documentation":"

A list of tags that are attached to the new IAM server certificate. The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains the response to a successful UploadServerCertificate request.

" + "documentation":"

Contains the response to a successful UploadServerCertificate request.

" }, "UploadSigningCertificateRequest":{ "type":"structure", @@ -8791,7 +8835,7 @@ "documentation":"

Information about the certificate.

" } }, - "documentation":"

Contains the response to a successful UploadSigningCertificate request.

" + "documentation":"

Contains the response to a successful UploadSigningCertificate request.

" }, "User":{ "type":"structure", @@ -8825,7 +8869,7 @@ }, "PasswordLastUsed":{ "shape":"dateType", - "documentation":"

The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an Amazon Web Services website. For a list of Amazon Web Services websites that capture a user's last sign-in time, see the Credential reports topic in the IAM User Guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value), then it indicates that they never signed in with a password. This can be because:

  • The user never had a password.

  • A password exists but has not been used since IAM started tracking this information on October 20, 2014.

A null value does not mean that the user never had a password. Also, if the user does not currently have a password but had one in the past, then this field contains the date and time the most recent password was used.

This value is returned only in the GetUser and ListUsers operations.

" + "documentation":"

The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an Amazon Web Services website. For a list of Amazon Web Services websites that capture a user's last sign-in time, see the Credential reports topic in the IAM User Guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value), then it indicates that they never signed in with a password. This can be because:

  • The user never had a password.

  • A password exists but has not been used since IAM started tracking this information on October 20, 2014.

A null value does not mean that the user never had a password. Also, if the user does not currently have a password but had one in the past, then this field contains the date and time the most recent password was used.

This value is returned only in the GetUser and ListUsers operations.

" }, "PermissionsBoundary":{ "shape":"AttachedPermissionsBoundary", @@ -8836,7 +8880,7 @@ "documentation":"

A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains information about an IAM user entity.

This data type is used as a response element in the following operations:

" + "documentation":"

Contains information about an IAM user entity.

This data type is used as a response element in the following operations:

" }, "UserDetail":{ "type":"structure", @@ -8879,7 +8923,7 @@ "documentation":"

A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

" } }, - "documentation":"

Contains information about an IAM user, including all the user's policies and all the IAM groups the user is in.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + "documentation":"

Contains information about an IAM user, including all the user's policies and all the IAM groups the user is in.

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" }, "VirtualMFADevice":{ "type":"structure", @@ -8921,7 +8965,7 @@ "accessKeyMetadataListType":{ "type":"list", "member":{"shape":"AccessKeyMetadata"}, - "documentation":"

Contains a list of access key metadata.

This data type is used as a response element in the ListAccessKeys operation.

" + "documentation":"

Contains a list of access key metadata.

This data type is used as a response element in the ListAccessKeys operation.

" }, "accessKeySecretType":{ "type":"string", @@ -8937,6 +8981,10 @@ "min":3, "pattern":"^[a-z0-9]([a-z0-9]|-(?!-)){1,61}[a-z0-9]$" }, + "allUsers":{ + "type":"boolean", + "box":true + }, "arnType":{ "type":"string", "documentation":"

The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon Web Services resources.

For more information about ARNs, go to Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", @@ -8995,7 +9043,7 @@ "certificateListType":{ "type":"list", "member":{"shape":"SigningCertificate"}, - "documentation":"

Contains a list of signing certificates.

This data type is used as a response element in the ListSigningCertificates operation.

" + "documentation":"

Contains a list of signing certificates.

This data type is used as a response element in the ListSigningCertificates operation.

" }, "clientIDListType":{ "type":"list", @@ -9006,6 +9054,11 @@ "max":255, "min":1 }, + "credentialAgeDays":{ + "type":"integer", + "max":36600, + "min":1 + }, "credentialReportExpiredExceptionMessage":{"type":"string"}, "credentialReportNotPresentExceptionMessage":{"type":"string"}, "credentialReportNotReadyExceptionMessage":{"type":"string"}, @@ -9062,7 +9115,7 @@ "groupListType":{ "type":"list", "member":{"shape":"Group"}, - "documentation":"

Contains a list of IAM groups.

This data type is used as a response element in the ListGroups operation.

" + "documentation":"

Contains a list of IAM groups.

This data type is used as a response element in the ListGroups operation.

" }, "groupNameListType":{ "type":"list", @@ -9138,7 +9191,7 @@ "mfaDeviceListType":{ "type":"list", "member":{"shape":"MFADevice"}, - "documentation":"

Contains a list of MFA devices.

This data type is used as a response element in the ListMFADevices and ListVirtualMFADevices operations.

" + "documentation":"

Contains a list of MFA devices.

This data type is used as a response element in the ListMFADevices and ListVirtualMFADevices operations.

" }, "minimumPasswordLengthType":{ "type":"integer", @@ -9213,7 +9266,7 @@ "policyNameListType":{ "type":"list", "member":{"shape":"policyNameType"}, - "documentation":"

Contains a list of policy names.

This data type is used as a response element in the ListPolicies operation.

" + "documentation":"

Contains a list of policy names.

This data type is used as a response element in the ListPolicies operation.

" }, "policyNameType":{ "type":"string", @@ -9305,7 +9358,7 @@ "roleListType":{ "type":"list", "member":{"shape":"Role"}, - "documentation":"

Contains a list of IAM roles.

This data type is used as a response element in the ListRoles operation.

" + "documentation":"

Contains a list of IAM roles.

This data type is used as a response element in the ListRoles operation.

" }, "roleMaxSessionDurationType":{ "type":"integer", @@ -9334,6 +9387,16 @@ "min":1, "pattern":"[\\w+=,.@-]+" }, + "serviceCredentialAlias":{ + "type":"string", + "max":200, + "min":0, + "pattern":"[\\w+=,.@-]+" + }, + "serviceCredentialSecret":{ + "type":"string", + "sensitive":true + }, "serviceFailureExceptionMessage":{"type":"string"}, "serviceName":{"type":"string"}, "serviceNameType":{"type":"string"}, @@ -9363,8 +9426,8 @@ "serviceUserName":{ "type":"string", "max":200, - "min":17, - "pattern":"[\\w+=,.@-]+" + "min":0, + "pattern":"[\\w+=,.@-]*" }, "sortKeyType":{ "type":"string", @@ -9379,7 +9442,8 @@ "type":"string", "enum":[ "Active", - "Inactive" + "Inactive", + "Expired" ] }, "stringType":{"type":"string"}, @@ -9463,7 +9527,7 @@ "userListType":{ "type":"list", "member":{"shape":"User"}, - "documentation":"

Contains a list of users.

This data type is used as a response element in the GetGroup and ListUsers operations.

" + "documentation":"

Contains a list of users.

This data type is used as a response element in the GetGroup and ListUsers operations.

" }, "userNameType":{ "type":"string", diff --git a/services/identitystore/pom.xml b/services/identitystore/pom.xml index dcdad093ebe2..6429906929ae 100644 --- a/services/identitystore/pom.xml +++ b/services/identitystore/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT identitystore AWS Java SDK :: Services :: Identitystore diff --git a/services/imagebuilder/pom.xml b/services/imagebuilder/pom.xml index 9996f23d3004..70f786536215 100644 --- a/services/imagebuilder/pom.xml +++ b/services/imagebuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT imagebuilder AWS Java SDK :: Services :: Imagebuilder diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml index 4809a856c163..c8002ace115d 100644 --- a/services/inspector/pom.xml +++ b/services/inspector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT inspector AWS Java SDK :: Services :: Amazon Inspector Service diff --git a/services/inspector2/pom.xml b/services/inspector2/pom.xml index 6118a750baa5..bf25555bf75f 100644 --- a/services/inspector2/pom.xml +++ b/services/inspector2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT inspector2 AWS Java SDK :: Services :: Inspector2 diff --git a/services/inspectorscan/pom.xml b/services/inspectorscan/pom.xml index f834aa7a0258..1621ff5fd98c 100644 --- a/services/inspectorscan/pom.xml +++ b/services/inspectorscan/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT inspectorscan AWS Java SDK :: Services :: Inspector Scan diff --git a/services/internetmonitor/pom.xml b/services/internetmonitor/pom.xml index 7e7dce328962..3480e0a54edd 100644 --- a/services/internetmonitor/pom.xml +++ b/services/internetmonitor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT internetmonitor AWS Java SDK :: Services :: Internet Monitor diff --git a/services/invoicing/pom.xml b/services/invoicing/pom.xml index 18ebc6dac3b1..66e2a5a0d22b 100644 --- a/services/invoicing/pom.xml +++ b/services/invoicing/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT invoicing AWS Java SDK :: Services :: Invoicing diff --git a/services/iot/pom.xml b/services/iot/pom.xml index dc57d8013cc0..b4f71e125ce8 100644 --- a/services/iot/pom.xml +++ b/services/iot/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iot AWS Java SDK :: Services :: AWS IoT diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml index ae6a39fc9d6f..4d4744d02ef8 100644 --- a/services/iotanalytics/pom.xml +++ b/services/iotanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotanalytics AWS Java SDK :: Services :: IoTAnalytics diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml index a315ab4da23a..502157972b05 100644 --- a/services/iotdataplane/pom.xml +++ b/services/iotdataplane/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotdataplane AWS Java SDK :: Services :: AWS IoT Data Plane diff --git a/services/iotdeviceadvisor/pom.xml b/services/iotdeviceadvisor/pom.xml index d240ffec47c4..f15de8b58068 100644 --- a/services/iotdeviceadvisor/pom.xml +++ b/services/iotdeviceadvisor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotdeviceadvisor AWS Java SDK :: Services :: Iot Device Advisor diff --git a/services/iotevents/pom.xml b/services/iotevents/pom.xml index f8e1206654a1..c599a5b5d367 100644 --- a/services/iotevents/pom.xml +++ b/services/iotevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotevents AWS Java SDK :: Services :: IoT Events diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml index b8bfc84c83f0..ddaee4dba155 100644 --- a/services/ioteventsdata/pom.xml +++ b/services/ioteventsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ioteventsdata AWS Java SDK :: Services :: IoT Events Data diff --git a/services/iotfleethub/pom.xml b/services/iotfleethub/pom.xml index 057b33681b14..4b4d5959399b 100644 --- a/services/iotfleethub/pom.xml +++ b/services/iotfleethub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotfleethub AWS Java SDK :: Services :: Io T Fleet Hub diff --git a/services/iotfleetwise/pom.xml b/services/iotfleetwise/pom.xml index 7a947f090d67..4c9d25059828 100644 --- a/services/iotfleetwise/pom.xml +++ b/services/iotfleetwise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotfleetwise AWS Java SDK :: Services :: Io T Fleet Wise diff --git a/services/iotjobsdataplane/pom.xml b/services/iotjobsdataplane/pom.xml index bfbe509c9d1f..2ad0f30fe934 100644 --- a/services/iotjobsdataplane/pom.xml +++ b/services/iotjobsdataplane/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotjobsdataplane AWS Java SDK :: Services :: IoT Jobs Data Plane diff --git a/services/iotmanagedintegrations/pom.xml b/services/iotmanagedintegrations/pom.xml index aca4d8ec1ba1..595ddbe9f45e 100644 --- a/services/iotmanagedintegrations/pom.xml +++ b/services/iotmanagedintegrations/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotmanagedintegrations AWS Java SDK :: Services :: IoT Managed Integrations diff --git a/services/iotsecuretunneling/pom.xml b/services/iotsecuretunneling/pom.xml index 48e048eb509b..2e20a63599b2 100644 --- a/services/iotsecuretunneling/pom.xml +++ b/services/iotsecuretunneling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotsecuretunneling AWS Java SDK :: Services :: IoTSecureTunneling diff --git a/services/iotsitewise/pom.xml b/services/iotsitewise/pom.xml index 46208f272a6a..49318d8c4604 100644 --- a/services/iotsitewise/pom.xml +++ b/services/iotsitewise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotsitewise AWS Java SDK :: Services :: Io T Site Wise diff --git a/services/iotthingsgraph/pom.xml b/services/iotthingsgraph/pom.xml index a7e1e0878267..9ceb3152c521 100644 --- a/services/iotthingsgraph/pom.xml +++ b/services/iotthingsgraph/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotthingsgraph AWS Java SDK :: Services :: IoTThingsGraph diff --git a/services/iottwinmaker/pom.xml b/services/iottwinmaker/pom.xml index 631a47e04462..c032db9a50ab 100644 --- a/services/iottwinmaker/pom.xml +++ b/services/iottwinmaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iottwinmaker AWS Java SDK :: Services :: Io T Twin Maker diff --git a/services/iotwireless/pom.xml b/services/iotwireless/pom.xml index 43250e2ea736..ef8ae6ad01b6 100644 --- a/services/iotwireless/pom.xml +++ b/services/iotwireless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT iotwireless AWS Java SDK :: Services :: IoT Wireless diff --git a/services/ivs/pom.xml b/services/ivs/pom.xml index 9dd3cf7f5f77..81e928b2f0b9 100644 --- a/services/ivs/pom.xml +++ b/services/ivs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ivs AWS Java SDK :: Services :: Ivs diff --git a/services/ivschat/pom.xml b/services/ivschat/pom.xml index 5ae4c809e1e3..7048ec5fb165 100644 --- a/services/ivschat/pom.xml +++ b/services/ivschat/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ivschat AWS Java SDK :: Services :: Ivschat diff --git a/services/ivsrealtime/pom.xml b/services/ivsrealtime/pom.xml index 6dbd283fc51d..cab263fd39ad 100644 --- a/services/ivsrealtime/pom.xml +++ b/services/ivsrealtime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ivsrealtime AWS Java SDK :: Services :: IVS Real Time diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml index a93ce6a1ac07..b7a258f7464a 100644 --- a/services/kafka/pom.xml +++ b/services/kafka/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kafka AWS Java SDK :: Services :: Kafka diff --git a/services/kafkaconnect/pom.xml b/services/kafkaconnect/pom.xml index a8af59e1e784..88a4f1dd4710 100644 --- a/services/kafkaconnect/pom.xml +++ b/services/kafkaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kafkaconnect AWS Java SDK :: Services :: Kafka Connect diff --git a/services/kendra/pom.xml b/services/kendra/pom.xml index 1f513c3e3bd4..77749c163c32 100644 --- a/services/kendra/pom.xml +++ b/services/kendra/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kendra AWS Java SDK :: Services :: Kendra diff --git a/services/kendraranking/pom.xml b/services/kendraranking/pom.xml index 2348899bc5a7..504019bda670 100644 --- a/services/kendraranking/pom.xml +++ b/services/kendraranking/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kendraranking AWS Java SDK :: Services :: Kendra Ranking diff --git a/services/keyspaces/pom.xml b/services/keyspaces/pom.xml index ba7bec71d61b..24bcb41d6600 100644 --- a/services/keyspaces/pom.xml +++ b/services/keyspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT keyspaces AWS Java SDK :: Services :: Keyspaces diff --git a/services/keyspacesstreams/pom.xml b/services/keyspacesstreams/pom.xml index 006feb2e6c9a..9277d9d6f6fb 100644 --- a/services/keyspacesstreams/pom.xml +++ b/services/keyspacesstreams/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT keyspacesstreams AWS Java SDK :: Services :: Keyspaces Streams diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml index b0538ce032d7..01a8461ce41a 100644 --- a/services/kinesis/pom.xml +++ b/services/kinesis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesis AWS Java SDK :: Services :: Amazon Kinesis diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml index edcdb32236cb..526ba9d6f0de 100644 --- a/services/kinesisanalytics/pom.xml +++ b/services/kinesisanalytics/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisanalytics AWS Java SDK :: Services :: Amazon Kinesis Analytics diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml index b5239cb5333a..adfc5ed34fe7 100644 --- a/services/kinesisanalyticsv2/pom.xml +++ b/services/kinesisanalyticsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisanalyticsv2 AWS Java SDK :: Services :: Kinesis Analytics V2 diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml index 0b7ccee42780..16baaea11711 100644 --- a/services/kinesisvideo/pom.xml +++ b/services/kinesisvideo/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 kinesisvideo diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml index 86fcfdba920e..5498b8a56d0f 100644 --- a/services/kinesisvideoarchivedmedia/pom.xml +++ b/services/kinesisvideoarchivedmedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisvideoarchivedmedia AWS Java SDK :: Services :: Kinesis Video Archived Media diff --git a/services/kinesisvideomedia/pom.xml b/services/kinesisvideomedia/pom.xml index 39a1eb6d8d98..bcedc0ffe521 100644 --- a/services/kinesisvideomedia/pom.xml +++ b/services/kinesisvideomedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisvideomedia AWS Java SDK :: Services :: Kinesis Video Media diff --git a/services/kinesisvideosignaling/pom.xml b/services/kinesisvideosignaling/pom.xml index 6caa858c8f1f..4b9a3c7b11b9 100644 --- a/services/kinesisvideosignaling/pom.xml +++ b/services/kinesisvideosignaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisvideosignaling AWS Java SDK :: Services :: Kinesis Video Signaling diff --git a/services/kinesisvideowebrtcstorage/pom.xml b/services/kinesisvideowebrtcstorage/pom.xml index 51636dccb8cf..be89de301eea 100644 --- a/services/kinesisvideowebrtcstorage/pom.xml +++ b/services/kinesisvideowebrtcstorage/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kinesisvideowebrtcstorage AWS Java SDK :: Services :: Kinesis Video Web RTC Storage diff --git a/services/kms/pom.xml b/services/kms/pom.xml index 13caf91b4b5d..72c775fffa62 100644 --- a/services/kms/pom.xml +++ b/services/kms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT kms AWS Java SDK :: Services :: AWS KMS diff --git a/services/lakeformation/pom.xml b/services/lakeformation/pom.xml index 8c6fd727d3d1..409f0db52886 100644 --- a/services/lakeformation/pom.xml +++ b/services/lakeformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lakeformation AWS Java SDK :: Services :: LakeFormation diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml index 79867db1f900..64b5a21a517e 100644 --- a/services/lambda/pom.xml +++ b/services/lambda/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lambda AWS Java SDK :: Services :: AWS Lambda diff --git a/services/launchwizard/pom.xml b/services/launchwizard/pom.xml index 88fa7c720034..db2ad6f71883 100644 --- a/services/launchwizard/pom.xml +++ b/services/launchwizard/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT launchwizard AWS Java SDK :: Services :: Launch Wizard diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml index 75307c389960..1d04d6266c51 100644 --- a/services/lexmodelbuilding/pom.xml +++ b/services/lexmodelbuilding/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lexmodelbuilding AWS Java SDK :: Services :: Amazon Lex Model Building diff --git a/services/lexmodelsv2/pom.xml b/services/lexmodelsv2/pom.xml index 7eb2dcad4521..b7a440772a69 100644 --- a/services/lexmodelsv2/pom.xml +++ b/services/lexmodelsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lexmodelsv2 AWS Java SDK :: Services :: Lex Models V2 diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml index ced90e66952d..67916772ae11 100644 --- a/services/lexruntime/pom.xml +++ b/services/lexruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lexruntime AWS Java SDK :: Services :: Amazon Lex Runtime diff --git a/services/lexruntimev2/pom.xml b/services/lexruntimev2/pom.xml index 5ff475d9af29..a3e2855d04f0 100644 --- a/services/lexruntimev2/pom.xml +++ b/services/lexruntimev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lexruntimev2 AWS Java SDK :: Services :: Lex Runtime V2 diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml index 5b4235979495..6c1b44af6d0a 100644 --- a/services/licensemanager/pom.xml +++ b/services/licensemanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT licensemanager AWS Java SDK :: Services :: License Manager diff --git a/services/licensemanagerlinuxsubscriptions/pom.xml b/services/licensemanagerlinuxsubscriptions/pom.xml index 1778bc703bc7..2e4a461d9d97 100644 --- a/services/licensemanagerlinuxsubscriptions/pom.xml +++ b/services/licensemanagerlinuxsubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT licensemanagerlinuxsubscriptions AWS Java SDK :: Services :: License Manager Linux Subscriptions diff --git a/services/licensemanagerusersubscriptions/pom.xml b/services/licensemanagerusersubscriptions/pom.xml index d68f48bfce66..0c71aa8ceda6 100644 --- a/services/licensemanagerusersubscriptions/pom.xml +++ b/services/licensemanagerusersubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT licensemanagerusersubscriptions AWS Java SDK :: Services :: License Manager User Subscriptions diff --git a/services/lightsail/pom.xml b/services/lightsail/pom.xml index 267fc3ff14b9..60a8f0908e77 100644 --- a/services/lightsail/pom.xml +++ b/services/lightsail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lightsail AWS Java SDK :: Services :: Amazon Lightsail diff --git a/services/location/pom.xml b/services/location/pom.xml index 2851cd28cebe..fb373eea5f5b 100644 --- a/services/location/pom.xml +++ b/services/location/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT location AWS Java SDK :: Services :: Location diff --git a/services/lookoutequipment/pom.xml b/services/lookoutequipment/pom.xml index a7d6d6e1942f..0d2bb89c4b75 100644 --- a/services/lookoutequipment/pom.xml +++ b/services/lookoutequipment/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lookoutequipment AWS Java SDK :: Services :: Lookout Equipment diff --git a/services/lookoutmetrics/pom.xml b/services/lookoutmetrics/pom.xml index 053c520694f2..6245eaf87d53 100644 --- a/services/lookoutmetrics/pom.xml +++ b/services/lookoutmetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lookoutmetrics AWS Java SDK :: Services :: Lookout Metrics diff --git a/services/lookoutvision/pom.xml b/services/lookoutvision/pom.xml index ae56fc11ffb4..8fc4983d73de 100644 --- a/services/lookoutvision/pom.xml +++ b/services/lookoutvision/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT lookoutvision AWS Java SDK :: Services :: Lookout Vision diff --git a/services/m2/pom.xml b/services/m2/pom.xml index 801d1ec794d0..d0502288ba4c 100644 --- a/services/m2/pom.xml +++ b/services/m2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT m2 AWS Java SDK :: Services :: M2 diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml index de697ce6a491..a75d9d23565f 100644 --- a/services/machinelearning/pom.xml +++ b/services/machinelearning/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT machinelearning AWS Java SDK :: Services :: Amazon Machine Learning diff --git a/services/macie2/pom.xml b/services/macie2/pom.xml index 9978de0a80f8..37e2c14349f2 100644 --- a/services/macie2/pom.xml +++ b/services/macie2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT macie2 AWS Java SDK :: Services :: Macie2 diff --git a/services/mailmanager/pom.xml b/services/mailmanager/pom.xml index 34244b59e190..f6fbb5a10e31 100644 --- a/services/mailmanager/pom.xml +++ b/services/mailmanager/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mailmanager AWS Java SDK :: Services :: Mail Manager diff --git a/services/managedblockchain/pom.xml b/services/managedblockchain/pom.xml index 689fe228183f..edec61967f41 100644 --- a/services/managedblockchain/pom.xml +++ b/services/managedblockchain/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT managedblockchain AWS Java SDK :: Services :: ManagedBlockchain diff --git a/services/managedblockchainquery/pom.xml b/services/managedblockchainquery/pom.xml index daf7d9fc6925..aa1f3ff76696 100644 --- a/services/managedblockchainquery/pom.xml +++ b/services/managedblockchainquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT managedblockchainquery AWS Java SDK :: Services :: Managed Blockchain Query diff --git a/services/marketplaceagreement/pom.xml b/services/marketplaceagreement/pom.xml index ea6b252da04c..b724f17f20b1 100644 --- a/services/marketplaceagreement/pom.xml +++ b/services/marketplaceagreement/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplaceagreement AWS Java SDK :: Services :: Marketplace Agreement diff --git a/services/marketplacecatalog/pom.xml b/services/marketplacecatalog/pom.xml index 3a439f53a810..6fafea1ac515 100644 --- a/services/marketplacecatalog/pom.xml +++ b/services/marketplacecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplacecatalog AWS Java SDK :: Services :: Marketplace Catalog diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml index 21252d3bee6e..a9b089341e7f 100644 --- a/services/marketplacecommerceanalytics/pom.xml +++ b/services/marketplacecommerceanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplacecommerceanalytics AWS Java SDK :: Services :: AWS Marketplace Commerce Analytics diff --git a/services/marketplacedeployment/pom.xml b/services/marketplacedeployment/pom.xml index 578bcd40fa68..0c6e9078d8da 100644 --- a/services/marketplacedeployment/pom.xml +++ b/services/marketplacedeployment/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplacedeployment AWS Java SDK :: Services :: Marketplace Deployment diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml index 445334703f7a..fe8864622fa8 100644 --- a/services/marketplaceentitlement/pom.xml +++ b/services/marketplaceentitlement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplaceentitlement AWS Java SDK :: Services :: AWS Marketplace Entitlement diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml index c6f7f0912f78..257c36e099c3 100644 --- a/services/marketplacemetering/pom.xml +++ b/services/marketplacemetering/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplacemetering AWS Java SDK :: Services :: AWS Marketplace Metering Service diff --git a/services/marketplacereporting/pom.xml b/services/marketplacereporting/pom.xml index 873f08b24086..a176a7869665 100644 --- a/services/marketplacereporting/pom.xml +++ b/services/marketplacereporting/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT marketplacereporting AWS Java SDK :: Services :: Marketplace Reporting diff --git a/services/mediaconnect/pom.xml b/services/mediaconnect/pom.xml index 6d993781d330..ea04912a2b19 100644 --- a/services/mediaconnect/pom.xml +++ b/services/mediaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mediaconnect AWS Java SDK :: Services :: MediaConnect diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml index 59df326a305a..48291cd91c6f 100644 --- a/services/mediaconvert/pom.xml +++ b/services/mediaconvert/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 mediaconvert diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml index 748753898b25..a4f4e8807f45 100644 --- a/services/medialive/pom.xml +++ b/services/medialive/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 medialive diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml index 7f6d492aa7fc..d30ecdb7a06f 100644 --- a/services/mediapackage/pom.xml +++ b/services/mediapackage/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 mediapackage diff --git a/services/mediapackagev2/pom.xml b/services/mediapackagev2/pom.xml index 103ed2d78a8d..c766d288f891 100644 --- a/services/mediapackagev2/pom.xml +++ b/services/mediapackagev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mediapackagev2 AWS Java SDK :: Services :: Media Package V2 diff --git a/services/mediapackagevod/pom.xml b/services/mediapackagevod/pom.xml index ceccd9acd497..bc7db09d2d15 100644 --- a/services/mediapackagevod/pom.xml +++ b/services/mediapackagevod/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mediapackagevod AWS Java SDK :: Services :: MediaPackage Vod diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml index a1850c5b566f..107d625b6e8b 100644 --- a/services/mediastore/pom.xml +++ b/services/mediastore/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 mediastore diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml index 1319074a9900..b56f22e7d9fa 100644 --- a/services/mediastoredata/pom.xml +++ b/services/mediastoredata/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 mediastoredata diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml index 585c035d34ba..e0b28bff3b60 100644 --- a/services/mediatailor/pom.xml +++ b/services/mediatailor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mediatailor AWS Java SDK :: Services :: MediaTailor diff --git a/services/medicalimaging/pom.xml b/services/medicalimaging/pom.xml index 700be3405a87..cbb9499b3462 100644 --- a/services/medicalimaging/pom.xml +++ b/services/medicalimaging/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT medicalimaging AWS Java SDK :: Services :: Medical Imaging diff --git a/services/medicalimaging/src/main/resources/codegen-resources/service-2.json b/services/medicalimaging/src/main/resources/codegen-resources/service-2.json index 4f4168da52ef..4769b935ed7f 100644 --- a/services/medicalimaging/src/main/resources/codegen-resources/service-2.json +++ b/services/medicalimaging/src/main/resources/codegen-resources/service-2.json @@ -517,9 +517,15 @@ }, "force":{ "shape":"Boolean", - "documentation":"

Setting this flag will force the CopyImageSet operation, even if Patient, Study, or Series level metadata are mismatched across the sourceImageSet and destinationImageSet.

", + "documentation":"

Providing this parameter will force completion of the CopyImageSet operation, even if there are inconsistent Patient, Study, and/or Series level metadata elements between the sourceImageSet and destinationImageSet.

", "location":"querystring", "locationName":"force" + }, + "promoteToPrimary":{ + "shape":"Boolean", + "documentation":"

Providing this parameter will configure the CopyImageSet operation to promote the given image set to the primary DICOM hierarchy. If successful, a new primary image set ID will be returned as the destination image set.

", + "location":"querystring", + "locationName":"promoteToPrimary" } }, "payload":"copyImageSetInformation" @@ -1210,7 +1216,7 @@ }, "contentType":{ "shape":"String", - "documentation":"

The format in which the image frame information is returned to the customer. Default is application/octet-stream.

", + "documentation":"

The format in which the image frame information is returned to the customer. Default is application/octet-stream.

  • If the stored transfer syntax is 1.2.840.10008.1.2.1, the returned contentType is application/octet-stream.

  • If the stored transfer syntax is 1.2.840.10008.1.2.4.50, the returned contentType is image/jpeg.

  • If the stored transfer syntax is 1.2.840.10008.1.2.4.91, the returned contentType is image/j2c.

  • If the stored transfer syntax is MPEG2, 1.2.840.10008.1.2.4.100, 1.2.840.10008.1.2.4.100.1, 1.2.840.10008.1.2.4.101, or 1.2.840.10008.1.2.4.101.1, the returned contentType is video/mpeg.

  • If the stored transfer syntax is MPEG-4 AVC/H.264, UID 1.2.840.10008.1.2.4.102, 1.2.840.10008.1.2.4.102.1, 1.2.840.10008.1.2.4.103, 1.2.840.10008.1.2.4.103.1, 1.2.840.10008.1.2.4.104, 1.2.840.10008.1.2.4.104.1, 1.2.840.10008.1.2.4.105, 1.2.840.10008.1.2.4.105.1, 1.2.840.10008.1.2.4.106, or 1.2.840.10008.1.2.4.106.1, the returned contentType is video/mp4.

  • If the stored transfer syntax is HEVC/H.265, UID 1.2.840.10008.1.2.4.107 or 1.2.840.10008.1.2.4.108, the returned contentType is video/H256.

  • If the stored transfer syntax is 1.2.840.10008.1.2.4.202 or if the stored transfer syntax is missing, the returned contentType is image/jph.

  • If the stored transfer syntax is 1.2.840.10008.1.2.4.203, the returned contentType is image/jphc.

", "location":"header", "locationName":"Content-Type" } @@ -1346,6 +1352,10 @@ "overrides":{ "shape":"Overrides", "documentation":"

This object contains the details of any overrides used while creating a specific image set version. If an image set was copied or updated using the force flag, this object will contain the forced flag.

" + }, + "isPrimary":{ + "shape":"Boolean", + "documentation":"

The flag to determine whether the image set is primary or not.

" } } }, @@ -1419,6 +1429,10 @@ "overrides":{ "shape":"Overrides", "documentation":"

Contains details on overrides used when creating the returned version of an image set. For example, if forced exists, the forced flag was used when creating the image set.

" + }, + "isPrimary":{ + "shape":"Boolean", + "documentation":"

The flag to determine whether the image set is primary or not.

" } }, "documentation":"

The image set properties.

" @@ -1477,6 +1491,10 @@ "DICOMTags":{ "shape":"DICOMTags", "documentation":"

The DICOM tags associated with the image set.

" + }, + "isPrimary":{ + "shape":"Boolean", + "documentation":"

The flag to determine whether the image set is primary or not.

" } }, "documentation":"

Summary of the image set metadata.

" @@ -1741,7 +1759,7 @@ "members":{ "forced":{ "shape":"Boolean", - "documentation":"

Setting this flag will force the CopyImageSet and UpdateImageSetMetadata operations, even if Patient, Study, or Series level metadata are mismatched.

" + "documentation":"

Providing this parameter will force completion of the CopyImageSet and UpdateImageSetMetadata actions, even if metadata is inconsistent at the Patient, Study, and/or Series levels.

" } }, "documentation":"

Specifies the overrides used in image set modification calls to CopyImageSet and UpdateImageSetMetadata.

" @@ -1809,6 +1827,10 @@ "DICOMStudyDateAndTime":{ "shape":"DICOMStudyDateAndTime", "documentation":"

The aggregated structure containing DICOM study date and study time for search.

" + }, + "isPrimary":{ + "shape":"Boolean", + "documentation":"

The primary image set flag provided for search.

" } }, "documentation":"

The search input attribute value.

", @@ -2067,8 +2089,7 @@ }, "TagResourceResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "TagValue":{ "type":"string", @@ -2111,8 +2132,7 @@ }, "UntagResourceResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateImageSetMetadataRequest":{ "type":"structure", @@ -2211,5 +2231,5 @@ "exception":true } }, - "documentation":"

This is the AWS HealthImaging API Reference. AWS HealthImaging is a HIPAA eligible service that empowers healthcare providers, life science organizations, and their software partners to store, analyze, and share medical images in the cloud at petabyte scale. For an introduction to the service, see the AWS HealthImaging Developer Guide .

We recommend using one of the AWS Software Development Kits (SDKs) for your programming language, as they take care of request authentication, serialization, and connection management. For more information, see Tools to build on AWS.

The following sections list AWS HealthImaging API actions categorized according to functionality. Links are provided to actions within this Reference, along with links back to corresponding sections in the AWS HealthImaging Developer Guide where you can view tested code examples.

Data store actions

Import job actions

Image set access actions

Image set modification actions

Tagging actions

" + "documentation":"

This is the AWS HealthImaging API Reference. For an introduction to the service, see What is AWS HealthImaging? in the AWS HealthImaging Developer Guide.

" } diff --git a/services/memorydb/pom.xml b/services/memorydb/pom.xml index 273db7427c9b..fa01dcd0169d 100644 --- a/services/memorydb/pom.xml +++ b/services/memorydb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT memorydb AWS Java SDK :: Services :: Memory DB diff --git a/services/mgn/pom.xml b/services/mgn/pom.xml index c8ae20756991..37a08a256e79 100644 --- a/services/mgn/pom.xml +++ b/services/mgn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mgn AWS Java SDK :: Services :: Mgn diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml index d47f3a475622..267eae837dbc 100644 --- a/services/migrationhub/pom.xml +++ b/services/migrationhub/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 migrationhub diff --git a/services/migrationhubconfig/pom.xml b/services/migrationhubconfig/pom.xml index ba0f2e10d8e7..8e969df1e6e2 100644 --- a/services/migrationhubconfig/pom.xml +++ b/services/migrationhubconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT migrationhubconfig AWS Java SDK :: Services :: MigrationHub Config diff --git a/services/migrationhuborchestrator/pom.xml b/services/migrationhuborchestrator/pom.xml index dbe7e35ca4f8..37de33ed403e 100644 --- a/services/migrationhuborchestrator/pom.xml +++ b/services/migrationhuborchestrator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT migrationhuborchestrator AWS Java SDK :: Services :: Migration Hub Orchestrator diff --git a/services/migrationhubrefactorspaces/pom.xml b/services/migrationhubrefactorspaces/pom.xml index af9f294294db..9e775ad4b871 100644 --- a/services/migrationhubrefactorspaces/pom.xml +++ b/services/migrationhubrefactorspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT migrationhubrefactorspaces AWS Java SDK :: Services :: Migration Hub Refactor Spaces diff --git a/services/migrationhubstrategy/pom.xml b/services/migrationhubstrategy/pom.xml index bb902c0e6f0c..d1e2538760fc 100644 --- a/services/migrationhubstrategy/pom.xml +++ b/services/migrationhubstrategy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT migrationhubstrategy AWS Java SDK :: Services :: Migration Hub Strategy diff --git a/services/mpa/pom.xml b/services/mpa/pom.xml index 90c58fe42d64..c7b9e4152e37 100644 --- a/services/mpa/pom.xml +++ b/services/mpa/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mpa AWS Java SDK :: Services :: MPA diff --git a/services/mq/pom.xml b/services/mq/pom.xml index 4f7a343d0409..58572660b2e9 100644 --- a/services/mq/pom.xml +++ b/services/mq/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 mq diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml index 63cde004f070..d2650d08f832 100644 --- a/services/mturk/pom.xml +++ b/services/mturk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mturk AWS Java SDK :: Services :: Amazon Mechanical Turk Requester diff --git a/services/mwaa/pom.xml b/services/mwaa/pom.xml index 79196ca5635b..8c5e2dd55b24 100644 --- a/services/mwaa/pom.xml +++ b/services/mwaa/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT mwaa AWS Java SDK :: Services :: MWAA diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml index fb03659c9dff..a1a16f9d60dd 100644 --- a/services/neptune/pom.xml +++ b/services/neptune/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT neptune AWS Java SDK :: Services :: Neptune diff --git a/services/neptunedata/pom.xml b/services/neptunedata/pom.xml index b4fbd3dc28b4..f2689f35520b 100644 --- a/services/neptunedata/pom.xml +++ b/services/neptunedata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT neptunedata AWS Java SDK :: Services :: Neptunedata diff --git a/services/neptunegraph/pom.xml b/services/neptunegraph/pom.xml index f1b4026a43bf..ffe2036be6ee 100644 --- a/services/neptunegraph/pom.xml +++ b/services/neptunegraph/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT neptunegraph AWS Java SDK :: Services :: Neptune Graph diff --git a/services/networkfirewall/pom.xml b/services/networkfirewall/pom.xml index 556583c227b1..b487776a76c9 100644 --- a/services/networkfirewall/pom.xml +++ b/services/networkfirewall/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT networkfirewall AWS Java SDK :: Services :: Network Firewall diff --git a/services/networkflowmonitor/pom.xml b/services/networkflowmonitor/pom.xml index 7b41ea33a59b..7bca92831f0f 100644 --- a/services/networkflowmonitor/pom.xml +++ b/services/networkflowmonitor/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT networkflowmonitor AWS Java SDK :: Services :: Network Flow Monitor diff --git a/services/networkflowmonitor/src/main/resources/codegen-resources/service-2.json b/services/networkflowmonitor/src/main/resources/codegen-resources/service-2.json index f0701de80bc3..af7edea6061b 100644 --- a/services/networkflowmonitor/src/main/resources/codegen-resources/service-2.json +++ b/services/networkflowmonitor/src/main/resources/codegen-resources/service-2.json @@ -84,6 +84,7 @@ "errors":[ {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, @@ -127,7 +128,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryMonitorTopContributors. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryMonitorTopContributors. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "GetQueryResultsWorkloadInsightsTopContributors":{ "name":"GetQueryResultsWorkloadInsightsTopContributors", @@ -146,7 +147,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name.

This query returns the top contributors for a scope for workload insights. Workload insights provide a high level view of network flow performance data collected by agents. To return the data for the top contributors, see GetQueryResultsWorkloadInsightsTopContributorsData.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributors. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name.

This query returns the top contributors for a scope for workload insights. Workload insights provide a high level view of network flow performance data collected by agents. To return the data for the top contributors, see GetQueryResultsWorkloadInsightsTopContributorsData.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributors. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "GetQueryResultsWorkloadInsightsTopContributorsData":{ "name":"GetQueryResultsWorkloadInsightsTopContributorsData", @@ -165,7 +166,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a scope ID.

This query returns the data for top contributors for workload insights for a specific scope. Workload insights provide a high level view of network flow performance data collected by agents for a scope. To return just the top contributors, see GetQueryResultsWorkloadInsightsTopContributors.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributorsData. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.

" + "documentation":"

Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a scope ID.

This query returns the data for top contributors for workload insights for a specific scope. Workload insights provide a high level view of network flow performance data collected by agents for a scope. To return just the top contributors, see GetQueryResultsWorkloadInsightsTopContributors.

Create a query ID for this call by calling the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributorsData. Use the scope ID that was returned for your account by CreateScope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

The top contributor network flows overall are for a specific metric type, for example, the number of retransmissions.

" }, "GetQueryStatusMonitorTopContributors":{ "name":"GetQueryStatusMonitorTopContributors", @@ -183,7 +184,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors for a monitor.

When you start a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you reviewStartQueryWorkloadInsightsTopContributorsData the results. Use the same query ID that you used for the corresponding API call to start the query, StartQueryMonitorTopContributors.

When you run a query, use this call to check the status of the query to make sure that the query has SUCCEEDED before you review the results.

" + "documentation":"

Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors for a monitor.

When you create a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you review the results. Use the same query ID that you used for the corresponding API call to start (create) the query, StartQueryMonitorTopContributors.

When you run a query, use this call to check the status of the query to make sure that the query has SUCCEEDED before you review the results.

" }, "GetQueryStatusWorkloadInsightsTopContributors":{ "name":"GetQueryStatusWorkloadInsightsTopContributors", @@ -201,7 +202,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for workload insights.

When you start a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you review the results. Use the same query ID that you used for the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributors.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for workload insights.

When you start a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you review the results. Use the same query ID that you used for the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributors.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "GetQueryStatusWorkloadInsightsTopContributorsData":{ "name":"GetQueryStatusWorkloadInsightsTopContributorsData", @@ -219,7 +220,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors data for workload insights.

When you start a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you review the results. Use the same query ID that you used for the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributorsData.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.

" + "documentation":"

Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors data for workload insights.

When you start a query, use this call to check the status of the query to make sure that it has has SUCCEEDED before you review the results. Use the same query ID that you used for the corresponding API call to start the query, StartQueryWorkloadInsightsTopContributorsData.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

The top contributor network flows overall are for a specific metric type, for example, the number of retransmissions.

" }, "GetScope":{ "name":"GetScope", @@ -310,7 +311,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Start a query to return the data with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Create a query that you can use with the Network Flow Monitor query interface to return the top contributors for a monitor. Specify the monitor that you want to create the query for.

The call returns a query ID that you can use with GetQueryResultsMonitorTopContributors to run the query and return the top contributors for a specific monitor.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable APIs for the top contributors that you want to be returned.

" }, "StartQueryWorkloadInsightsTopContributors":{ "name":"StartQueryWorkloadInsightsTopContributors", @@ -328,7 +329,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Start a query to return the data with the Network Flow Monitor query interface. Specify the query that you want to start by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Create a query with the Network Flow Monitor query interface that you can run to return workload insights top contributors. Specify the scope that you want to create a query for.

The call returns a query ID that you can use with GetQueryResultsWorkloadInsightsTopContributors to run the query and return the top contributors for the workload insights for a scope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable APIs for the top contributors that you want to be returned.

" }, "StartQueryWorkloadInsightsTopContributorsData":{ "name":"StartQueryWorkloadInsightsTopContributorsData", @@ -346,7 +347,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Start a query to return the with the Network Flow Monitor query interface. Specify the query that you want to start by providing a query ID and a monitor name. This query returns the data for top contributors for workload insights.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Create a query with the Network Flow Monitor query interface that you can run to return data for workload insights top contributors. Specify the scope that you want to create a query for.

The call returns a query ID that you can use with GetQueryResultsWorkloadInsightsTopContributorsData to run the query and return the data for the top contributors for the workload insights for a scope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "StopQueryMonitorTopContributors":{ "name":"StopQueryMonitorTopContributors", @@ -364,7 +365,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Stop a query with the Network Flow Monitor query interface. Specify the query that you want to stop by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

", + "documentation":"

Stop a top contributors query for a monitor. Specify the query that you want to stop by providing a query ID and a monitor name.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

", "idempotent":true }, "StopQueryWorkloadInsightsTopContributors":{ @@ -383,7 +384,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Stop a query with the Network Flow Monitor query interface. Specify the query that you want to stop by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

" + "documentation":"

Stop a top contributors query for workload insights. Specify the query that you want to stop by providing a query ID and a scope ID.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "StopQueryWorkloadInsightsTopContributorsData":{ "name":"StopQueryWorkloadInsightsTopContributorsData", @@ -401,7 +402,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a scope ID. This query returns data for the top contributors for workload insights. Workload insights provide a high level view of network flow performance data collected by agents for a scope.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.

The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.

" + "documentation":"

Stop a top contributors data query for workload insights. Specify the query that you want to stop by providing a query ID and a scope ID.

Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type. Top contributors can be across all workload insights, for a given scope, or for a specific monitor. Use the applicable call for the top contributors that you want to be returned.

" }, "TagResource":{ "name":"TagResource", @@ -474,6 +475,7 @@ "errors":[ {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, @@ -783,7 +785,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" }, @@ -833,7 +835,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" }, @@ -887,7 +889,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" }, @@ -1571,7 +1573,7 @@ }, "metricName":{ "shape":"MonitorMetric", - "documentation":"

The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within a specific category, such as network flows between Availability Zones.

" + "documentation":"

The metric that you want to query top contributors for. That is, you can specify a metric with this call and return the top contributor network flows, for that type of metric, for a monitor and (optionally) within a specific category, such as network flows between Availability Zones.

" }, "destinationCategory":{ "shape":"DestinationCategory", @@ -1700,7 +1702,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" } @@ -1726,7 +1728,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" } @@ -1752,7 +1754,7 @@ }, "queryId":{ "shape":"String", - "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.

", + "documentation":"

The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query.

", "location":"uri", "locationName":"queryId" } diff --git a/services/networkmanager/pom.xml b/services/networkmanager/pom.xml index 89411ab3957e..df23afc3124d 100644 --- a/services/networkmanager/pom.xml +++ b/services/networkmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT networkmanager AWS Java SDK :: Services :: NetworkManager diff --git a/services/networkmonitor/pom.xml b/services/networkmonitor/pom.xml index 7eee30d6cb7f..0075bc3a6625 100644 --- a/services/networkmonitor/pom.xml +++ b/services/networkmonitor/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT networkmonitor AWS Java SDK :: Services :: Network Monitor diff --git a/services/notifications/pom.xml b/services/notifications/pom.xml index 04a693ba117c..18f6bec9ea16 100644 --- a/services/notifications/pom.xml +++ b/services/notifications/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT notifications AWS Java SDK :: Services :: Notifications diff --git a/services/notificationscontacts/pom.xml b/services/notificationscontacts/pom.xml index 0488c84d7159..4b976b9a100c 100644 --- a/services/notificationscontacts/pom.xml +++ b/services/notificationscontacts/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT notificationscontacts AWS Java SDK :: Services :: Notifications Contacts diff --git a/services/oam/pom.xml b/services/oam/pom.xml index c97549b90139..afaed72ee87c 100644 --- a/services/oam/pom.xml +++ b/services/oam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT oam AWS Java SDK :: Services :: OAM diff --git a/services/observabilityadmin/pom.xml b/services/observabilityadmin/pom.xml index 2df8dd9fd907..f16598c12ff0 100644 --- a/services/observabilityadmin/pom.xml +++ b/services/observabilityadmin/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT observabilityadmin AWS Java SDK :: Services :: Observability Admin diff --git a/services/odb/pom.xml b/services/odb/pom.xml new file mode 100644 index 000000000000..790f5f5e8be5 --- /dev/null +++ b/services/odb/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + software.amazon.awssdk + services + 2.31.76-SNAPSHOT + + odb + AWS Java SDK :: Services :: Odb + The AWS Java SDK for Odb module holds the client classes that are used for + communicating with Odb. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.odb + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + software.amazon.awssdk + http-auth-aws + ${awsjavasdk.version} + + + diff --git a/services/odb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/odb/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..5d10cff9434b --- /dev/null +++ b/services/odb/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://odb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://odb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://odb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://odb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/services/odb/src/main/resources/codegen-resources/endpoint-tests.json b/services/odb/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..e8896a402d84 --- /dev/null +++ b/services/odb/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://odb.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://odb.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/odb/src/main/resources/codegen-resources/paginators-1.json b/services/odb/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..6bda94b16e8e --- /dev/null +++ b/services/odb/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,70 @@ +{ + "pagination": { + "ListAutonomousVirtualMachines": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "autonomousVirtualMachines" + }, + "ListCloudAutonomousVmClusters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "cloudAutonomousVmClusters" + }, + "ListCloudExadataInfrastructures": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "cloudExadataInfrastructures" + }, + "ListCloudVmClusters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "cloudVmClusters" + }, + "ListDbNodes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dbNodes" + }, + "ListDbServers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dbServers" + }, + "ListDbSystemShapes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dbSystemShapes" + }, + "ListGiVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "giVersions" + }, + "ListOdbNetworks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "odbNetworks" + }, + "ListOdbPeeringConnections": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "odbPeeringConnections" + }, + "ListSystemVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "systemVersions" + } + } +} diff --git a/services/odb/src/main/resources/codegen-resources/service-2.json b/services/odb/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..97f64af45b45 --- /dev/null +++ b/services/odb/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,5177 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2024-08-20", + "auth":["aws.auth#sigv4"], + "endpointPrefix":"odb", + "jsonVersion":"1.0", + "protocol":"json", + "protocols":["json"], + "serviceFullName":"odb", + "serviceId":"odb", + "signatureVersion":"v4", + "signingName":"odb", + "targetPrefix":"Odb", + "uid":"odb-2024-08-20" + }, + "operations":{ + "AcceptMarketplaceRegistration":{ + "name":"AcceptMarketplaceRegistration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptMarketplaceRegistrationInput"}, + "output":{"shape":"AcceptMarketplaceRegistrationOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Registers the Amazon Web Services Marketplace token for your Amazon Web Services account to activate your Oracle Database@Amazon Web Services subscription.

", + "idempotent":true + }, + "CreateCloudAutonomousVmCluster":{ + "name":"CreateCloudAutonomousVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCloudAutonomousVmClusterInput"}, + "output":{"shape":"CreateCloudAutonomousVmClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates a new Autonomous VM cluster in the specified Exadata infrastructure.

", + "idempotent":true + }, + "CreateCloudExadataInfrastructure":{ + "name":"CreateCloudExadataInfrastructure", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCloudExadataInfrastructureInput"}, + "output":{"shape":"CreateCloudExadataInfrastructureOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates an Exadata infrastructure.

", + "idempotent":true + }, + "CreateCloudVmCluster":{ + "name":"CreateCloudVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCloudVmClusterInput"}, + "output":{"shape":"CreateCloudVmClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates a VM cluster on the specified Exadata infrastructure.

", + "idempotent":true + }, + "CreateOdbNetwork":{ + "name":"CreateOdbNetwork", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOdbNetworkInput"}, + "output":{"shape":"CreateOdbNetworkOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates an ODB network.

", + "idempotent":true + }, + "CreateOdbPeeringConnection":{ + "name":"CreateOdbPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOdbPeeringConnectionInput"}, + "output":{"shape":"CreateOdbPeeringConnectionOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates a peering connection between an ODB network and either another ODB network or a customer-owned VPC.

A peering connection enables private connectivity between the networks for application-tier communication.

", + "idempotent":true + }, + "DeleteCloudAutonomousVmCluster":{ + "name":"DeleteCloudAutonomousVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCloudAutonomousVmClusterInput"}, + "output":{"shape":"DeleteCloudAutonomousVmClusterOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes an Autonomous VM cluster.

", + "idempotent":true + }, + "DeleteCloudExadataInfrastructure":{ + "name":"DeleteCloudExadataInfrastructure", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCloudExadataInfrastructureInput"}, + "output":{"shape":"DeleteCloudExadataInfrastructureOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the specified Exadata infrastructure. Before you use this operation, make sure to delete all of the VM clusters that are hosted on this Exadata infrastructure.

", + "idempotent":true + }, + "DeleteCloudVmCluster":{ + "name":"DeleteCloudVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCloudVmClusterInput"}, + "output":{"shape":"DeleteCloudVmClusterOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the specified VM cluster.

", + "idempotent":true + }, + "DeleteOdbNetwork":{ + "name":"DeleteOdbNetwork", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOdbNetworkInput"}, + "output":{"shape":"DeleteOdbNetworkOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the specified ODB network.

", + "idempotent":true + }, + "DeleteOdbPeeringConnection":{ + "name":"DeleteOdbPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOdbPeeringConnectionInput"}, + "output":{"shape":"DeleteOdbPeeringConnectionOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes an ODB peering connection.

When you delete an ODB peering connection, the underlying VPC peering connection is also deleted.

", + "idempotent":true + }, + "GetCloudAutonomousVmCluster":{ + "name":"GetCloudAutonomousVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCloudAutonomousVmClusterInput"}, + "output":{"shape":"GetCloudAutonomousVmClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets information about a specific Autonomous VM cluster.

" + }, + "GetCloudExadataInfrastructure":{ + "name":"GetCloudExadataInfrastructure", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCloudExadataInfrastructureInput"}, + "output":{"shape":"GetCloudExadataInfrastructureOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the specified Exadata infrastructure.

" + }, + "GetCloudExadataInfrastructureUnallocatedResources":{ + "name":"GetCloudExadataInfrastructureUnallocatedResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCloudExadataInfrastructureUnallocatedResourcesInput"}, + "output":{"shape":"GetCloudExadataInfrastructureUnallocatedResourcesOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves information about unallocated resources in a specified Cloud Exadata Infrastructure.

" + }, + "GetCloudVmCluster":{ + "name":"GetCloudVmCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCloudVmClusterInput"}, + "output":{"shape":"GetCloudVmClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the specified VM cluster.

" + }, + "GetDbNode":{ + "name":"GetDbNode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDbNodeInput"}, + "output":{"shape":"GetDbNodeOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the specified DB node.

" + }, + "GetDbServer":{ + "name":"GetDbServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDbServerInput"}, + "output":{"shape":"GetDbServerOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the specified database server.

" + }, + "GetOciOnboardingStatus":{ + "name":"GetOciOnboardingStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOciOnboardingStatusInput"}, + "output":{"shape":"GetOciOnboardingStatusOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns the tenancy activation link and onboarding status for your Amazon Web Services account.

" + }, + "GetOdbNetwork":{ + "name":"GetOdbNetwork", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOdbNetworkInput"}, + "output":{"shape":"GetOdbNetworkOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the specified ODB network.

" + }, + "GetOdbPeeringConnection":{ + "name":"GetOdbPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOdbPeeringConnectionInput"}, + "output":{"shape":"GetOdbPeeringConnectionOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves information about an ODB peering connection.

" + }, + "InitializeService":{ + "name":"InitializeService", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"InitializeServiceInput"}, + "output":{"shape":"InitializeServiceOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Initializes the ODB service for the first time in an account.

", + "idempotent":true + }, + "ListAutonomousVirtualMachines":{ + "name":"ListAutonomousVirtualMachines", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAutonomousVirtualMachinesInput"}, + "output":{"shape":"ListAutonomousVirtualMachinesOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all Autonomous VMs in an Autonomous VM cluster.

" + }, + "ListCloudAutonomousVmClusters":{ + "name":"ListCloudAutonomousVmClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCloudAutonomousVmClustersInput"}, + "output":{"shape":"ListCloudAutonomousVmClustersOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all Autonomous VM clusters in a specified Cloud Exadata infrastructure.

" + }, + "ListCloudExadataInfrastructures":{ + "name":"ListCloudExadataInfrastructures", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCloudExadataInfrastructuresInput"}, + "output":{"shape":"ListCloudExadataInfrastructuresOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about the Exadata infrastructures owned by your Amazon Web Services account.

" + }, + "ListCloudVmClusters":{ + "name":"ListCloudVmClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCloudVmClustersInput"}, + "output":{"shape":"ListCloudVmClustersOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the VM clusters owned by your Amazon Web Services account or only the ones on the specified Exadata infrastructure.

" + }, + "ListDbNodes":{ + "name":"ListDbNodes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDbNodesInput"}, + "output":{"shape":"ListDbNodesOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the DB nodes for the specified VM cluster.

" + }, + "ListDbServers":{ + "name":"ListDbServers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDbServersInput"}, + "output":{"shape":"ListDbServersOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the database servers that belong to the specified Exadata infrastructure.

" + }, + "ListDbSystemShapes":{ + "name":"ListDbSystemShapes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDbSystemShapesInput"}, + "output":{"shape":"ListDbSystemShapesOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about the shapes that are available for an Exadata infrastructure.

" + }, + "ListGiVersions":{ + "name":"ListGiVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGiVersionsInput"}, + "output":{"shape":"ListGiVersionsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about Oracle Grid Infrastructure (GI) software versions that are available for a VM cluster for the specified shape.

" + }, + "ListOdbNetworks":{ + "name":"ListOdbNetworks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOdbNetworksInput"}, + "output":{"shape":"ListOdbNetworksOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about the ODB networks owned by your Amazon Web Services account.

" + }, + "ListOdbPeeringConnections":{ + "name":"ListOdbPeeringConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOdbPeeringConnectionsInput"}, + "output":{"shape":"ListOdbPeeringConnectionsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all ODB peering connections or those associated with a specific ODB network.

" + }, + "ListSystemVersions":{ + "name":"ListSystemVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSystemVersionsInput"}, + "output":{"shape":"ListSystemVersionsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the system versions that are available for a VM cluster for the specified giVersion and shape.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns information about the tags applied to this resource.

" + }, + "RebootDbNode":{ + "name":"RebootDbNode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootDbNodeInput"}, + "output":{"shape":"RebootDbNodeOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Reboots the specified DB node in a VM cluster.

" + }, + "StartDbNode":{ + "name":"StartDbNode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDbNodeInput"}, + "output":{"shape":"StartDbNodeOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Starts the specified DB node in a VM cluster.

" + }, + "StopDbNode":{ + "name":"StopDbNode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopDbNodeInput"}, + "output":{"shape":"StopDbNodeOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Stops the specified DB node in a VM cluster.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Applies tags to the specified resource.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Removes tags from the specified resource.

", + "idempotent":true + }, + "UpdateCloudExadataInfrastructure":{ + "name":"UpdateCloudExadataInfrastructure", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCloudExadataInfrastructureInput"}, + "output":{"shape":"UpdateCloudExadataInfrastructureOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates the properties of an Exadata infrastructure resource.

" + }, + "UpdateOdbNetwork":{ + "name":"UpdateOdbNetwork", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateOdbNetworkInput"}, + "output":{"shape":"UpdateOdbNetworkOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates properties of a specified ODB network.

" + } + }, + "shapes":{ + "AcceptMarketplaceRegistrationInput":{ + "type":"structure", + "required":["marketplaceRegistrationToken"], + "members":{ + "marketplaceRegistrationToken":{ + "shape":"String", + "documentation":"

The registration token that's generated by Amazon Web Services Marketplace and sent to Oracle Database@Amazon Web Services.

" + } + } + }, + "AcceptMarketplaceRegistrationOutput":{ + "type":"structure", + "members":{} + }, + "Access":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You don't have sufficient access to perform this action. Make sure you have the required permissions and try again.

", + "exception":true + }, + "AutonomousVirtualMachineList":{ + "type":"list", + "member":{"shape":"AutonomousVirtualMachineSummary"} + }, + "AutonomousVirtualMachineSummary":{ + "type":"structure", + "members":{ + "autonomousVirtualMachineId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Autonomous VM.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the Autonomous VM, if applicable.

" + }, + "vmName":{ + "shape":"String", + "documentation":"

The name of the Autonomous VM.

" + }, + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the database server hosting this Autonomous VM.

" + }, + "dbServerDisplayName":{ + "shape":"String", + "documentation":"

The display name of the database server hosting this Autonomous VM.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores allocated to this Autonomous VM.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory allocated to this Autonomous VM, in gigabytes (GB).

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of storage allocated to this Autonomous Virtual Machine, in gigabytes (GB).

" + }, + "clientIpAddress":{ + "shape":"String", + "documentation":"

The IP address used by clients to connect to this Autonomous VM.

" + }, + "cloudAutonomousVmClusterId":{ + "shape":"String", + "documentation":"

The unique identifier of the Autonomous VM cluster containing this Autonomous VM.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The Oracle Cloud Identifier (OCID) of the Autonomous VM.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the Oracle Cloud Infrastructure (OCI) resource anchor associated with this Autonomous VM.

" + } + }, + "documentation":"

A summary of an Autonomous Virtual Machine (VM) within an Autonomous VM cluster.

" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CloudAutonomousVmCluster":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster.

" + }, + "cloudAutonomousVmClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the Autonomous VM cluster.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network associated with this Autonomous VM cluster.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor associated with this Autonomous VM cluster.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The progress of the current operation on the Autonomous VM cluster, as a percentage.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

The display name of the Autonomous VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current state of the Autonomous VM cluster. Possible values include CREATING, AVAILABLE, UPDATING, DELETING, DELETED, FAILED.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the Autonomous VM cluster.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Cloud Exadata Infrastructure containing this Autonomous VM cluster.

" + }, + "autonomousDataStoragePercentage":{ + "shape":"Float", + "documentation":"

The percentage of data storage currently in use for Autonomous Databases in the Autonomous VM cluster.

" + }, + "autonomousDataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The data storage size allocated for Autonomous Databases in the Autonomous VM cluster, in TB.

" + }, + "availableAutonomousDataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The available data storage space for Autonomous Databases in the Autonomous VM cluster, in TB.

" + }, + "availableContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs that you can create with the currently available storage.

" + }, + "availableCpus":{ + "shape":"Float", + "documentation":"

The number of CPU cores available for allocation to Autonomous Databases.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The compute model of the Autonomous VM cluster: ECPU or OCPU.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores in the Autonomous VM cluster.

" + }, + "cpuCoreCountPerNode":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled per node in the Autonomous VM cluster.

" + }, + "cpuPercentage":{ + "shape":"Float", + "documentation":"

The percentage of total CPU cores currently in use in the Autonomous VM cluster.

" + }, + "dataStorageSizeInGBs":{ + "shape":"Double", + "documentation":"

The total data storage allocated to the Autonomous VM cluster, in GB.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The total data storage allocated to the Autonomous VM cluster, in TB.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The local node storage allocated to the Autonomous VM cluster, in gigabytes (GB).

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers associated with the Autonomous VM cluster.

" + }, + "description":{ + "shape":"String", + "documentation":"

The user-provided description of the Autonomous VM cluster.

" + }, + "domain":{ + "shape":"String", + "documentation":"

The domain name for the Autonomous VM cluster.

" + }, + "exadataStorageInTBsLowestScaledValue":{ + "shape":"Double", + "documentation":"

The minimum value to which you can scale down the Exadata storage, in TB.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The hostname for the Autonomous VM cluster.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The Oracle Cloud Identifier (OCID) of the Autonomous VM cluster.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The URL for accessing the OCI console page for this Autonomous VM cluster.

" + }, + "isMtlsEnabledVmCluster":{ + "shape":"Boolean", + "documentation":"

Indicates whether mutual TLS (mTLS) authentication is enabled for the Autonomous VM cluster.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model that applies to the Autonomous VM cluster. Valid values are LICENSE_INCLUDED or BRING_YOUR_OWN_LICENSE.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "maxAcdsLowestScaledValue":{ + "shape":"Integer", + "documentation":"

The minimum value to which you can scale down the maximum number of Autonomous CDBs.

" + }, + "memoryPerOracleComputeUnitInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory allocated per Oracle Compute Unit, in GB.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of memory allocated to the Autonomous VM cluster, in gigabytes (GB).

" + }, + "nodeCount":{ + "shape":"Integer", + "documentation":"

The number of database server nodes in the Autonomous VM cluster.

" + }, + "nonProvisionableAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs that can't be provisioned because of resource constraints.

" + }, + "provisionableAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs that can be provisioned in the Autonomous VM cluster.

" + }, + "provisionedAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs currently provisioned in the Autonomous VM cluster.

" + }, + "provisionedCpus":{ + "shape":"Float", + "documentation":"

The number of CPU cores currently provisioned in the Autonomous VM cluster.

" + }, + "reclaimableCpus":{ + "shape":"Float", + "documentation":"

The number of CPU cores that can be reclaimed from terminated or scaled-down Autonomous Databases.

" + }, + "reservedCpus":{ + "shape":"Float", + "documentation":"

The number of CPU cores reserved for system operations and redundancy.

" + }, + "scanListenerPortNonTls":{ + "shape":"Integer", + "documentation":"

The SCAN listener port for non-TLS (TCP) protocol. The default is 1521.

" + }, + "scanListenerPortTls":{ + "shape":"Integer", + "documentation":"

The SCAN listener port for TLS (TCP) protocol. The default is 2484.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The shape of the Exadata infrastructure for the Autonomous VM cluster.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the Autonomous VM cluster was created.

" + }, + "timeDatabaseSslCertificateExpires":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The expiration date and time of the database SSL certificate.

" + }, + "timeOrdsCertificateExpires":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The expiration date and time of the Oracle REST Data Services (ORDS) certificate.

" + }, + "timeZone":{ + "shape":"String", + "documentation":"

The time zone of the Autonomous VM cluster.

" + }, + "totalContainerDatabases":{ + "shape":"Integer", + "documentation":"

The total number of Autonomous Container Databases that can be created with the allocated local storage.

" + } + }, + "documentation":"

Information about an Autonomous VM cluster resource.

" + }, + "CloudAutonomousVmClusterList":{ + "type":"list", + "member":{"shape":"CloudAutonomousVmClusterSummary"} + }, + "CloudAutonomousVmClusterResourceDetails":{ + "type":"structure", + "members":{ + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster.

" + }, + "unallocatedAdbStorageInTBs":{ + "shape":"Double", + "documentation":"

The amount of unallocated Autonomous Database storage in the Autonomous VM cluster, in terabytes.

" + } + }, + "documentation":"

Resource details of an Autonomous VM cluster.

" + }, + "CloudAutonomousVmClusterResourceDetailsList":{ + "type":"list", + "member":{"shape":"CloudAutonomousVmClusterResourceDetails"} + }, + "CloudAutonomousVmClusterSummary":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster.

" + }, + "cloudAutonomousVmClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the Autonomous VM cluster.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network associated with this Autonomous VM cluster.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor associated with this Autonomous VM cluster.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The progress of the current operation on the Autonomous VM cluster, as a percentage.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

The user-friendly name for the Autonomous VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Autonomous VM cluster.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the Autonomous VM cluster, if applicable.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure containing this Autonomous VM cluster.

" + }, + "autonomousDataStoragePercentage":{ + "shape":"Float", + "documentation":"

The percentage of data storage currently in use for Autonomous Databases in the Autonomous VM cluster.

" + }, + "autonomousDataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The total data storage allocated for Autonomous Databases in the Autonomous VM cluster, in TB.

" + }, + "availableAutonomousDataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The available data storage for Autonomous Databases in the Autonomous VM cluster, in TB.

" + }, + "availableContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous Container Databases that you can create with the currently available storage.

" + }, + "availableCpus":{ + "shape":"Float", + "documentation":"

The number of CPU cores available for allocation to Autonomous Databases.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The compute model of the Autonomous VM cluster: ECPU or OCPU.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores in the Autonomous VM cluster.

" + }, + "cpuCoreCountPerNode":{ + "shape":"Integer", + "documentation":"

The number of CPU cores per node in the Autonomous VM cluster.

" + }, + "cpuPercentage":{ + "shape":"Float", + "documentation":"

The percentage of total CPU cores currently in use in the Autonomous VM cluster.

" + }, + "dataStorageSizeInGBs":{ + "shape":"Double", + "documentation":"

The total data storage allocated to the Autonomous VM cluster, in GB.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The total data storage allocated to the Autonomous VM cluster, in TB.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The local node storage allocated to the Autonomous VM cluster, in GB.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers associated with the Autonomous VM cluster.

" + }, + "description":{ + "shape":"String", + "documentation":"

The user-provided description of the Autonomous VM cluster.

" + }, + "domain":{ + "shape":"String", + "documentation":"

The domain name for the Autonomous VM cluster.

" + }, + "exadataStorageInTBsLowestScaledValue":{ + "shape":"Double", + "documentation":"

The lowest value to which Exadata storage can be scaled down, in TB.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The host name for the Autonomous VM cluster.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The Oracle Cloud Identifier (OCID) of the Autonomous VM cluster.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The URL for accessing the OCI console page for this Autonomous VM cluster.

" + }, + "isMtlsEnabledVmCluster":{ + "shape":"Boolean", + "documentation":"

Indicates if mutual TLS (mTLS) authentication is enabled for the Autonomous VM cluster.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model that applies to the Autonomous VM cluster.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "maxAcdsLowestScaledValue":{ + "shape":"Integer", + "documentation":"

The lowest value to which you can scale down the maximum number of Autonomous CDBs.

" + }, + "memoryPerOracleComputeUnitInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory allocated per Oracle Compute Unit (OCU), in GB.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of memory allocated to the Autonomous VM cluster, in GB.

" + }, + "nodeCount":{ + "shape":"Integer", + "documentation":"

The number of database server nodes in the Autonomous VM cluster.

" + }, + "nonProvisionableAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs that can't be provisioned because of resource constraints.

" + }, + "provisionableAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous CDBs that you can provision in the Autonomous VM cluster.

" + }, + "provisionedAutonomousContainerDatabases":{ + "shape":"Integer", + "documentation":"

The number of Autonomous Container Databases currently provisioned in the Autonomous VM cluster.

" + }, + "provisionedCpus":{ + "shape":"Float", + "documentation":"

The number of CPUs currently provisioned in the Autonomous VM cluster.

" + }, + "reclaimableCpus":{ + "shape":"Float", + "documentation":"

The number of CPUs that can be reclaimed from terminated or scaled-down Autonomous Databases.

" + }, + "reservedCpus":{ + "shape":"Float", + "documentation":"

The number of CPUs reserved for system operations and redundancy.

" + }, + "scanListenerPortNonTls":{ + "shape":"Integer", + "documentation":"

The SCAN listener port for non-TLS (TCP) protocol.

" + }, + "scanListenerPortTls":{ + "shape":"Integer", + "documentation":"

The SCAN listener port for TLS (TCP) protocol.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The shape of the Exadata infrastructure for the Autonomous VM cluster.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the Autonomous VM cluster was created.

" + }, + "timeDatabaseSslCertificateExpires":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The expiration date and time of the database SSL certificate.

" + }, + "timeOrdsCertificateExpires":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The expiration date and time of the Oracle REST Data Services (ORDS) certificate.

" + }, + "timeZone":{ + "shape":"String", + "documentation":"

The time zone of the Autonomous VM cluster.

" + }, + "totalContainerDatabases":{ + "shape":"Integer", + "documentation":"

The total number of Autonomous Container Databases that can be created in the Autonomous VM cluster.

" + } + }, + "documentation":"

A summary of an Autonomous VM cluster.

" + }, + "CloudExadataInfrastructure":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier for the Exadata infrastructure.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the Exadata infrastructure.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Exadata infrastructure.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the Exadata infrastructure.

" + }, + "cloudExadataInfrastructureArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the Exadata infrastructure.

" + }, + "activatedStorageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers requested for the Exadata infrastructure.

" + }, + "additionalStorageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers requested for the Exadata infrastructure.

" + }, + "availableStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of available storage, in gigabytes (GB), for the Exadata infrastructure.

" + }, + "availabilityZone":{ + "shape":"String", + "documentation":"

The name of the Availability Zone (AZ) where the Exadata infrastructure is located.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The AZ ID of the AZ where the Exadata infrastructure is located.

" + }, + "computeCount":{ + "shape":"Integer", + "documentation":"

The number of database servers for the Exadata infrastructure.

" + }, + "cpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores that are allocated to the Exadata infrastructure.

" + }, + "customerContactsToSendToOCI":{ + "shape":"CustomerContacts", + "documentation":"

The email addresses of contacts to receive notification from Oracle about maintenance updates for the Exadata infrastructure.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The size of the Exadata infrastructure's data disk group, in terabytes (TB).

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The size of the Exadata infrastructure's local node storage, in gigabytes (GB).

" + }, + "dbServerVersion":{ + "shape":"String", + "documentation":"

The software version of the database servers (dom0) in the Exadata infrastructure.

" + }, + "lastMaintenanceRunId":{ + "shape":"String", + "documentation":"

The Oracle Cloud Identifier (OCID) of the last maintenance run for the Exadata infrastructure.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "maxCpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores available on the Exadata infrastructure.

" + }, + "maxDataStorageInTBs":{ + "shape":"Double", + "documentation":"

The total amount of data disk group storage, in terabytes (TB), that's available on the Exadata infrastructure.

" + }, + "maxDbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of local node storage, in gigabytes (GB), that's available on the Exadata infrastructure.

" + }, + "maxMemoryInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of memory, in gigabytes (GB), that's available on the Exadata infrastructure.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that's allocated on the Exadata infrastructure.

" + }, + "monthlyDbServerVersion":{ + "shape":"String", + "documentation":"

The monthly software version of the database servers installed on the Exadata infrastructure.

" + }, + "monthlyStorageServerVersion":{ + "shape":"String", + "documentation":"

The monthly software version of the storage servers installed on the Exadata infrastructure.

" + }, + "nextMaintenanceRunId":{ + "shape":"String", + "documentation":"

The OCID of the next maintenance run for the Exadata infrastructure.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the Exadata infrastructure.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The HTTPS link to the Exadata infrastructure in OCI.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the Exadata infrastructure.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The model name of the Exadata infrastructure.

" + }, + "storageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers that are activated for the Exadata infrastructure.

" + }, + "storageServerVersion":{ + "shape":"String", + "documentation":"

The software version of the storage servers on the Exadata infrastructure.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the Exadata infrastructure was created.

" + }, + "totalStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of storage, in gigabytes (GB), on the the Exadata infrastructure.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the Exadata infrastructure, expressed as a percentage.

" + }, + "databaseServerType":{ + "shape":"String", + "documentation":"

The database server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "storageServerType":{ + "shape":"String", + "documentation":"

The storage server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + } + }, + "documentation":"

Information about an Exadata infrastructure.

" + }, + "CloudExadataInfrastructureList":{ + "type":"list", + "member":{"shape":"CloudExadataInfrastructureSummary"} + }, + "CloudExadataInfrastructureSummary":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier for the Exadata infrastructure.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the Exadata infrastructure.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Exadata infrastructure.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the Exadata infrastructure.

" + }, + "cloudExadataInfrastructureArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the Exadata infrastructure.

" + }, + "activatedStorageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers requested for the Exadata infrastructure.

" + }, + "additionalStorageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers requested for the Exadata infrastructure.

" + }, + "availableStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of available storage, in gigabytes (GB), for the Exadata infrastructure.

" + }, + "availabilityZone":{ + "shape":"String", + "documentation":"

The name of the Availability Zone (AZ) where the Exadata infrastructure is located.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The AZ ID of the AZ where the Exadata infrastructure is located.

" + }, + "computeCount":{ + "shape":"Integer", + "documentation":"

The number of database servers for the Exadata infrastructure.

" + }, + "cpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores that are allocated to the Exadata infrastructure.

" + }, + "customerContactsToSendToOCI":{ + "shape":"CustomerContacts", + "documentation":"

The email addresses of contacts to receive notification from Oracle about maintenance updates for the Exadata infrastructure.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The size of the Exadata infrastructure's data disk group, in terabytes (TB).

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The size of the Exadata infrastructure's local node storage, in gigabytes (GB).

" + }, + "dbServerVersion":{ + "shape":"String", + "documentation":"

The software version of the database servers on the Exadata infrastructure.

" + }, + "lastMaintenanceRunId":{ + "shape":"String", + "documentation":"

The Oracle Cloud Identifier (OCID) of the last maintenance run for the Exadata infrastructure.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "maxCpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores available on the Exadata infrastructure.

" + }, + "maxDataStorageInTBs":{ + "shape":"Double", + "documentation":"

The total amount of data disk group storage, in terabytes (TB), that's available on the Exadata infrastructure.

" + }, + "maxDbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of local node storage, in gigabytes (GB), that's available on the Exadata infrastructure.

" + }, + "maxMemoryInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of memory, in gigabytes (GB), that's available on the Exadata infrastructure.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that's allocated on the Exadata infrastructure.

" + }, + "monthlyDbServerVersion":{ + "shape":"String", + "documentation":"

The monthly software version of the database servers (dom0) installed on the Exadata infrastructure.

" + }, + "monthlyStorageServerVersion":{ + "shape":"String", + "documentation":"

The monthly software version of the storage servers installed on the Exadata infrastructure.

" + }, + "nextMaintenanceRunId":{ + "shape":"String", + "documentation":"

The OCID of the next maintenance run for the Exadata infrastructure.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the Exadata infrastructure.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The HTTPS link to the Exadata infrastructure in OCI.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the Exadata infrastructure.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The model name of the Exadata infrastructure.

" + }, + "storageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers that are activated for the Exadata infrastructure.

" + }, + "storageServerVersion":{ + "shape":"String", + "documentation":"

The software version of the storage servers on the Exadata infrastructure.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the Exadata infrastructure was created.

" + }, + "totalStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of storage, in gigabytes (GB), on the the Exadata infrastructure.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the Exadata infrastructure, expressed as a percentage.

" + }, + "databaseServerType":{ + "shape":"String", + "documentation":"

The database server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "storageServerType":{ + "shape":"String", + "documentation":"

The storage server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + } + }, + "documentation":"

Information about an Exadata infrastructure.

" + }, + "CloudExadataInfrastructureUnallocatedResources":{ + "type":"structure", + "members":{ + "cloudAutonomousVmClusters":{ + "shape":"CloudAutonomousVmClusterResourceDetailsList", + "documentation":"

A list of Autonomous VM clusters associated with this Cloud Exadata Infrastructure.

" + }, + "cloudExadataInfrastructureDisplayName":{ + "shape":"String", + "documentation":"

The display name of the Cloud Exadata infrastructure.

" + }, + "exadataStorageInTBs":{ + "shape":"Double", + "documentation":"

The amount of unallocated Exadata storage available, in terabytes (TB).

" + }, + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Cloud Exadata infrastructure.

" + }, + "localStorageInGBs":{ + "shape":"Integer", + "documentation":"

The amount of unallocated local storage available, in gigabytes (GB).

" + }, + "memoryInGBs":{ + "shape":"Integer", + "documentation":"

The amount of unallocated memory available, in gigabytes (GB).

" + }, + "ocpus":{ + "shape":"Integer", + "documentation":"

The number of unallocated Oracle CPU Units (OCPUs) available.

" + } + }, + "documentation":"

Information about unallocated resources in the Cloud Exadata infrastructure.

" + }, + "CloudVmCluster":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the VM cluster.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the VM cluster.

" + }, + "cloudVmClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the VM cluster.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"String", + "documentation":"

The unique identifier of the Exadata infrastructure that this VM cluster belongs to.

" + }, + "clusterName":{ + "shape":"String", + "documentation":"

The name of the Grid Infrastructure (GI) cluster.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled on the VM cluster.

" + }, + "dataCollectionOptions":{ + "shape":"DataCollectionOptions", + "documentation":"

The set of diagnostic collection options enabled for the VM cluster.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The size of the data disk group, in terabytes (TB), that's allocated for the VM cluster.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated for the VM cluster.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers for the VM cluster.

" + }, + "diskRedundancy":{ + "shape":"DiskRedundancy", + "documentation":"

The type of redundancy configured for the VM cluster. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.

" + }, + "giVersion":{ + "shape":"String", + "documentation":"

The software version of the Oracle Grid Infrastructure (GI) for the VM cluster.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The host name for the VM cluster.

" + }, + "iormConfigCache":{ + "shape":"ExadataIormConfig", + "documentation":"

The ExadataIormConfig cache details for the VM cluster.

" + }, + "isLocalBackupEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether database backups to local Exadata storage is enabled for the VM cluster.

" + }, + "isSparseDiskgroupEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the VM cluster is configured with a sparse disk group.

" + }, + "lastUpdateHistoryEntryId":{ + "shape":"String", + "documentation":"

The Oracle Cloud ID (OCID) of the last maintenance update history entry.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model applied to the VM cluster.

" + }, + "listenerPort":{ + "shape":"Integer", + "documentation":"

The port number configured for the listener on the VM cluster.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that's allocated for the VM cluster.

" + }, + "nodeCount":{ + "shape":"Integer", + "documentation":"

The number of nodes in the VM cluster.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the VM cluster.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the VM cluster.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The HTTPS link to the VM cluster in OCI.

" + }, + "domain":{ + "shape":"String", + "documentation":"

The domain of the VM cluster.

" + }, + "scanDnsName":{ + "shape":"String", + "documentation":"

The FQDN of the DNS record for the Single Client Access Name (SCAN) IP addresses that are associated with the VM cluster.

" + }, + "scanDnsRecordId":{ + "shape":"String", + "documentation":"

The OCID of the DNS record for the SCAN IP addresses that are associated with the VM cluster.

" + }, + "scanIpIds":{ + "shape":"StringList", + "documentation":"

The OCID of the SCAN IP addresses that are associated with the VM cluster.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The hardware model name of the Exadata infrastructure that's running the VM cluster.

" + }, + "sshPublicKeys":{ + "shape":"SensitiveStringList", + "documentation":"

The public key portion of one or more key pairs used for SSH access to the VM cluster.

" + }, + "storageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated to the VM cluster.

" + }, + "systemVersion":{ + "shape":"String", + "documentation":"

The operating system version of the image chosen for the VM cluster.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the VM cluster was created.

" + }, + "timeZone":{ + "shape":"String", + "documentation":"

The time zone of the VM cluster.

" + }, + "vipIds":{ + "shape":"StringList", + "documentation":"

The virtual IP (VIP) addresses that are associated with the VM cluster. Oracle's Cluster Ready Services (CRS) creates and maintains one VIP address for each node in the VM cluster to enable failover. If one node fails, the VIP is reassigned to another active node in the cluster.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network for the VM cluster.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the VM cluster, expressed as a percentage.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + } + }, + "documentation":"

Information about a VM cluster.

" + }, + "CloudVmClusterList":{ + "type":"list", + "member":{"shape":"CloudVmClusterSummary"} + }, + "CloudVmClusterSummary":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the VM cluster.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the VM cluster.

" + }, + "cloudVmClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the VM cluster.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"String", + "documentation":"

The unique identifier of the Exadata infrastructure that this VM cluster belongs to.

" + }, + "clusterName":{ + "shape":"String", + "documentation":"

The name of the Grid Infrastructure (GI) cluster.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled on the VM cluster.

" + }, + "dataCollectionOptions":{"shape":"DataCollectionOptions"}, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The size of the data disk group, in terabytes (TB), that's allocated for the VM cluster.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated for the VM cluster.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers for the VM cluster.

" + }, + "diskRedundancy":{ + "shape":"DiskRedundancy", + "documentation":"

The type of redundancy configured for the VM cluster. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.

" + }, + "giVersion":{ + "shape":"String", + "documentation":"

The software version of the Oracle Grid Infrastructure (GI) for the VM cluster.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The host name for the VM cluster.

" + }, + "iormConfigCache":{"shape":"ExadataIormConfig"}, + "isLocalBackupEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether database backups to local Exadata storage is enabled for the VM cluster.

" + }, + "isSparseDiskgroupEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the VM cluster is configured with a sparse disk group.

" + }, + "lastUpdateHistoryEntryId":{ + "shape":"String", + "documentation":"

The Oracle Cloud ID (OCID) of the last maintenance update history entry.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model applied to the VM cluster.

" + }, + "listenerPort":{ + "shape":"Integer", + "documentation":"

The port number configured for the listener on the VM cluster.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that's allocated for the VM cluster.

" + }, + "nodeCount":{ + "shape":"Integer", + "documentation":"

The number of nodes in the VM cluster.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the VM cluster.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the VM cluster.

" + }, + "ociUrl":{ + "shape":"String", + "documentation":"

The HTTPS link to the VM cluster in OCI.

" + }, + "domain":{ + "shape":"String", + "documentation":"

The domain of the VM cluster.

" + }, + "scanDnsName":{ + "shape":"String", + "documentation":"

The FQDN of the DNS record for the Single Client Access Name (SCAN) IP addresses that are associated with the VM cluster.

" + }, + "scanDnsRecordId":{ + "shape":"String", + "documentation":"

The OCID of the DNS record for the SCAN IP addresses that are associated with the VM cluster.

" + }, + "scanIpIds":{ + "shape":"StringList", + "documentation":"

The OCID of the SCAN IP addresses that are associated with the VM cluster.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The hardware model name of the Exadata infrastructure that's running the VM cluster.

" + }, + "sshPublicKeys":{ + "shape":"SensitiveStringList", + "documentation":"

The public key portion of one or more key pairs used for SSH access to the VM cluster.

" + }, + "storageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated to the VM cluster.

" + }, + "systemVersion":{ + "shape":"String", + "documentation":"

The operating system version of the image chosen for the VM cluster.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the VM cluster was created.

" + }, + "timeZone":{ + "shape":"String", + "documentation":"

The time zone of the VM cluster.

" + }, + "vipIds":{ + "shape":"StringList", + "documentation":"

The virtual IP (VIP) addresses that are associated with the VM cluster. Oracle's Cluster Ready Services (CRS) creates and maintains one VIP address for each node in the VM cluster to enable failover. If one node fails, the VIP is reassigned to another active node in the cluster.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network for the VM cluster.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the VM cluster, expressed as a percentage.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + } + }, + "documentation":"

Information about a VM cluster.

" + }, + "ComputeModel":{ + "type":"string", + "enum":[ + "ECPU", + "OCPU" + ] + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The identifier of the resource that caused the conflict.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that caused the conflict.

" + } + }, + "documentation":"

Occurs when a conflict with the current status of your resource. Fix any inconsistencies with your resource and try again.

", + "exception":true + }, + "CreateCloudAutonomousVmClusterInput":{ + "type":"structure", + "required":[ + "cloudExadataInfrastructureId", + "odbNetworkId", + "displayName", + "autonomousDataStorageSizeInTBs", + "cpuCoreCountPerNode", + "memoryPerOracleComputeUnitInGBs", + "totalContainerDatabases" + ], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure where the VM cluster will be created.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network to be used for the VM cluster.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

The display name for the Autonomous VM cluster. The name does not need to be unique.

" + }, + "clientToken":{ + "shape":"CreateCloudAutonomousVmClusterInputClientTokenString", + "documentation":"

A client-provided token to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "autonomousDataStorageSizeInTBs":{ + "shape":"CreateCloudAutonomousVmClusterInputAutonomousDataStorageSizeInTBsDouble", + "documentation":"

The data disk group size to be allocated for Autonomous Databases, in terabytes (TB).

" + }, + "cpuCoreCountPerNode":{ + "shape":"CreateCloudAutonomousVmClusterInputCpuCoreCountPerNodeInteger", + "documentation":"

The number of CPU cores to be enabled per VM cluster node.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers to be used for the Autonomous VM cluster.

" + }, + "description":{ + "shape":"CreateCloudAutonomousVmClusterInputDescriptionString", + "documentation":"

A user-provided description of the Autonomous VM cluster.

" + }, + "isMtlsEnabledVmCluster":{ + "shape":"Boolean", + "documentation":"

Specifies whether to enable mutual TLS (mTLS) authentication for the Autonomous VM cluster.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model to apply to the Autonomous VM cluster.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "memoryPerOracleComputeUnitInGBs":{ + "shape":"CreateCloudAutonomousVmClusterInputMemoryPerOracleComputeUnitInGBsInteger", + "documentation":"

The amount of memory to be allocated per OCPU, in GB.

" + }, + "scanListenerPortNonTls":{ + "shape":"CreateCloudAutonomousVmClusterInputScanListenerPortNonTlsInteger", + "documentation":"

The SCAN listener port for non-TLS (TCP) protocol.

" + }, + "scanListenerPortTls":{ + "shape":"CreateCloudAutonomousVmClusterInputScanListenerPortTlsInteger", + "documentation":"

The SCAN listener port for TLS (TCP) protocol.

" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

Free-form tags for this resource. Each tag is a key-value pair with no predefined name, type, or namespace.

" + }, + "timeZone":{ + "shape":"CreateCloudAutonomousVmClusterInputTimeZoneString", + "documentation":"

The time zone to use for the Autonomous VM cluster.

" + }, + "totalContainerDatabases":{ + "shape":"CreateCloudAutonomousVmClusterInputTotalContainerDatabasesInteger", + "documentation":"

The total number of Autonomous CDBs that you can create in the Autonomous VM cluster.

" + } + } + }, + "CreateCloudAutonomousVmClusterInputAutonomousDataStorageSizeInTBsDouble":{ + "type":"double", + "box":true, + "min":0 + }, + "CreateCloudAutonomousVmClusterInputClientTokenString":{ + "type":"string", + "max":64, + "min":8, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudAutonomousVmClusterInputCpuCoreCountPerNodeInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "CreateCloudAutonomousVmClusterInputDescriptionString":{ + "type":"string", + "max":400, + "min":1 + }, + "CreateCloudAutonomousVmClusterInputMemoryPerOracleComputeUnitInGBsInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "CreateCloudAutonomousVmClusterInputScanListenerPortNonTlsInteger":{ + "type":"integer", + "box":true, + "max":8999, + "min":1024 + }, + "CreateCloudAutonomousVmClusterInputScanListenerPortTlsInteger":{ + "type":"integer", + "box":true, + "max":8999, + "min":1024 + }, + "CreateCloudAutonomousVmClusterInputTimeZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudAutonomousVmClusterInputTotalContainerDatabasesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "CreateCloudAutonomousVmClusterOutput":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The display name of the created Autonomous VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Autonomous VM cluster creation process.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the Autonomous VM cluster creation process, if applicable.

" + }, + "cloudAutonomousVmClusterId":{ + "shape":"String", + "documentation":"

The unique identifier of the created Autonomous VM cluster.

" + } + } + }, + "CreateCloudExadataInfrastructureInput":{ + "type":"structure", + "required":[ + "displayName", + "shape", + "computeCount", + "storageCount" + ], + "members":{ + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

A user-friendly name for the Exadata infrastructure.

" + }, + "shape":{ + "shape":"CreateCloudExadataInfrastructureInputShapeString", + "documentation":"

The model name of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "availabilityZone":{ + "shape":"CreateCloudExadataInfrastructureInputAvailabilityZoneString", + "documentation":"

The name of the Availability Zone (AZ) where the Exadata infrastructure is located.

This operation requires that you specify a value for either availabilityZone or availabilityZoneId.

Example: us-east-1a

" + }, + "availabilityZoneId":{ + "shape":"CreateCloudExadataInfrastructureInputAvailabilityZoneIdString", + "documentation":"

The AZ ID of the AZ where the Exadata infrastructure is located.

This operation requires that you specify a value for either availabilityZone or availabilityZoneId.

Example: use1-az1

" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

The list of resource tags to apply to the Exadata infrastructure.

" + }, + "computeCount":{ + "shape":"Integer", + "documentation":"

The number of database servers for the Exadata infrastructure. Valid values for this parameter depend on the shape. To get information about the minimum and maximum values, use the ListDbSystemShapes operation.

" + }, + "customerContactsToSendToOCI":{ + "shape":"CustomerContacts", + "documentation":"

The email addresses of contacts to receive notification from Oracle about maintenance updates for the Exadata infrastructure.

" + }, + "maintenanceWindow":{ + "shape":"MaintenanceWindow", + "documentation":"

The maintenance window configuration for the Exadata Cloud infrastructure.

This allows you to define when maintenance operations such as patching and updates can be performed on the infrastructure.

" + }, + "storageCount":{ + "shape":"Integer", + "documentation":"

The number of storage servers to activate for this Exadata infrastructure. Valid values for this parameter depend on the shape. To get information about the minimum and maximum values, use the ListDbSystemShapes operation.

" + }, + "clientToken":{ + "shape":"CreateCloudExadataInfrastructureInputClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The client token is valid for up to 24 hours after it's first used.

", + "idempotencyToken":true + }, + "databaseServerType":{ + "shape":"CreateCloudExadataInfrastructureInputDatabaseServerTypeString", + "documentation":"

The database server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + }, + "storageServerType":{ + "shape":"CreateCloudExadataInfrastructureInputStorageServerTypeString", + "documentation":"

The storage server model type of the Exadata infrastructure. For the list of valid model names, use the ListDbSystemShapes operation.

" + } + } + }, + "CreateCloudExadataInfrastructureInputAvailabilityZoneIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudExadataInfrastructureInputAvailabilityZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudExadataInfrastructureInputClientTokenString":{ + "type":"string", + "max":64, + "min":8, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudExadataInfrastructureInputDatabaseServerTypeString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudExadataInfrastructureInputShapeString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudExadataInfrastructureInputStorageServerTypeString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudExadataInfrastructureOutput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the Exadata infrastructure.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Exadata infrastructure.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the Exadata infrastructure.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"String", + "documentation":"

The unique identifier of the Exadata infrastructure.

" + } + } + }, + "CreateCloudVmClusterInput":{ + "type":"structure", + "required":[ + "cloudExadataInfrastructureId", + "cpuCoreCount", + "displayName", + "giVersion", + "hostname", + "sshPublicKeys", + "odbNetworkId" + ], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure for this VM cluster.

" + }, + "cpuCoreCount":{ + "shape":"CreateCloudVmClusterInputCpuCoreCountInteger", + "documentation":"

The number of CPU cores to enable on the VM cluster.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

A user-friendly name for the VM cluster.

" + }, + "giVersion":{ + "shape":"CreateCloudVmClusterInputGiVersionString", + "documentation":"

A valid software version of Oracle Grid Infrastructure (GI). To get the list of valid values, use the ListGiVersions operation and specify the shape of the Exadata infrastructure.

Example: 19.0.0.0

" + }, + "hostname":{ + "shape":"CreateCloudVmClusterInputHostnameString", + "documentation":"

The host name for the VM cluster.

Constraints:

  • Can't be \"localhost\" or \"hostname\".

  • Can't contain \"-version\".

  • The maximum length of the combined hostname and domain is 63 characters.

  • The hostname must be unique within the subnet.

" + }, + "sshPublicKeys":{ + "shape":"StringList", + "documentation":"

The public key portion of one or more key pairs used for SSH access to the VM cluster.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network for the VM cluster.

" + }, + "clusterName":{ + "shape":"CreateCloudVmClusterInputClusterNameString", + "documentation":"

A name for the Grid Infrastructure cluster. The name isn't case sensitive.

" + }, + "dataCollectionOptions":{ + "shape":"DataCollectionOptions", + "documentation":"

The set of preferences for the various diagnostic collection options for the VM cluster.

" + }, + "dataStorageSizeInTBs":{ + "shape":"Double", + "documentation":"

The size of the data disk group, in terabytes (TBs), to allocate for the VM cluster.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GBs), to allocate for the VM cluster.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The list of database servers for the VM cluster.

" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

The list of resource tags to apply to the VM cluster.

" + }, + "isLocalBackupEnabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether to enable database backups to local Exadata storage for the VM cluster.

" + }, + "isSparseDiskgroupEnabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether to create a sparse disk group for the VM cluster.

" + }, + "licenseModel":{ + "shape":"LicenseModel", + "documentation":"

The Oracle license model to apply to the VM cluster.

Default: LICENSE_INCLUDED

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GBs), to allocate for the VM cluster.

" + }, + "systemVersion":{ + "shape":"CreateCloudVmClusterInputSystemVersionString", + "documentation":"

The version of the operating system of the image for the VM cluster.

" + }, + "timeZone":{ + "shape":"CreateCloudVmClusterInputTimeZoneString", + "documentation":"

The time zone for the VM cluster. For a list of valid values for time zone, you can check the options in the console.

Default: UTC

" + }, + "clientToken":{ + "shape":"CreateCloudVmClusterInputClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The client token is valid for up to 24 hours after it's first used.

", + "idempotencyToken":true + }, + "scanListenerPortTcp":{ + "shape":"CreateCloudVmClusterInputScanListenerPortTcpInteger", + "documentation":"

The port number for TCP connections to the single client access name (SCAN) listener.

Valid values: 1024–8999 with the following exceptions: 2484, 6100, 6200, 7060, 7070, 7085, and 7879

Default: 1521

" + } + } + }, + "CreateCloudVmClusterInputClientTokenString":{ + "type":"string", + "max":64, + "min":8, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateCloudVmClusterInputClusterNameString":{ + "type":"string", + "max":11, + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9-]*" + }, + "CreateCloudVmClusterInputCpuCoreCountInteger":{ + "type":"integer", + "box":true, + "max":368, + "min":0 + }, + "CreateCloudVmClusterInputGiVersionString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudVmClusterInputHostnameString":{ + "type":"string", + "max":12, + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9]" + }, + "CreateCloudVmClusterInputScanListenerPortTcpInteger":{ + "type":"integer", + "box":true, + "max":8999, + "min":1024 + }, + "CreateCloudVmClusterInputSystemVersionString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudVmClusterInputTimeZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateCloudVmClusterOutput":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name for the VM cluster.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the VM cluster.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the VM cluster.

" + }, + "cloudVmClusterId":{ + "shape":"String", + "documentation":"

The unique identifier for the VM cluster.

" + } + } + }, + "CreateOdbNetworkInput":{ + "type":"structure", + "required":[ + "displayName", + "clientSubnetCidr" + ], + "members":{ + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

A user-friendly name for the ODB network.

" + }, + "availabilityZone":{ + "shape":"CreateOdbNetworkInputAvailabilityZoneString", + "documentation":"

The Amazon Web Services Availability Zone (AZ) where the ODB network is located.

This operation requires that you specify a value for either availabilityZone or availabilityZoneId.

" + }, + "availabilityZoneId":{ + "shape":"CreateOdbNetworkInputAvailabilityZoneIdString", + "documentation":"

The AZ ID of the AZ where the ODB network is located.

This operation requires that you specify a value for either availabilityZone or availabilityZoneId.

" + }, + "clientSubnetCidr":{ + "shape":"CreateOdbNetworkInputClientSubnetCidrString", + "documentation":"

The CIDR range of the client subnet for the ODB network.

Constraints:

  • Must not overlap with the CIDR range of the backup subnet.

  • Must not overlap with the CIDR ranges of the VPCs that are connected to the ODB network.

  • Must not use the following CIDR ranges that are reserved by OCI:

    • 100.106.0.0/16 and 100.107.0.0/16

    • 169.254.0.0/16

    • 224.0.0.0 - 239.255.255.255

    • 240.0.0.0 - 255.255.255.255

" + }, + "backupSubnetCidr":{ + "shape":"CreateOdbNetworkInputBackupSubnetCidrString", + "documentation":"

The CIDR range of the backup subnet for the ODB network.

Constraints:

  • Must not overlap with the CIDR range of the client subnet.

  • Must not overlap with the CIDR ranges of the VPCs that are connected to the ODB network.

  • Must not use the following CIDR ranges that are reserved by OCI:

    • 100.106.0.0/16 and 100.107.0.0/16

    • 169.254.0.0/16

    • 224.0.0.0 - 239.255.255.255

    • 240.0.0.0 - 255.255.255.255

" + }, + "customDomainName":{ + "shape":"CreateOdbNetworkInputCustomDomainNameString", + "documentation":"

The domain name to use for the resources in the ODB network.

" + }, + "defaultDnsPrefix":{ + "shape":"CreateOdbNetworkInputDefaultDnsPrefixString", + "documentation":"

The DNS prefix to the default DNS domain name. The default DNS domain name is oraclevcn.com.

" + }, + "clientToken":{ + "shape":"CreateOdbNetworkInputClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The client token is valid for up to 24 hours after it's first used.

", + "idempotencyToken":true + }, + "s3Access":{ + "shape":"Access", + "documentation":"

Specifies the configuration for Amazon S3 access from the ODB network.

" + }, + "zeroEtlAccess":{ + "shape":"Access", + "documentation":"

Specifies the configuration for Zero-ETL access from the ODB network.

" + }, + "s3PolicyDocument":{ + "shape":"PolicyDocument", + "documentation":"

Specifies the endpoint policy for Amazon S3 access from the ODB network.

" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

The list of resource tags to apply to the ODB network.

" + } + } + }, + "CreateOdbNetworkInputAvailabilityZoneIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateOdbNetworkInputAvailabilityZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateOdbNetworkInputBackupSubnetCidrString":{ + "type":"string", + "max":43, + "min":1 + }, + "CreateOdbNetworkInputClientSubnetCidrString":{ + "type":"string", + "max":43, + "min":1 + }, + "CreateOdbNetworkInputClientTokenString":{ + "type":"string", + "max":64, + "min":8, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateOdbNetworkInputCustomDomainNameString":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateOdbNetworkInputDefaultDnsPrefixString":{ + "type":"string", + "max":15, + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9]*" + }, + "CreateOdbNetworkOutput":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the ODB network.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the ODB network.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the ODB network.

" + }, + "odbNetworkId":{ + "shape":"String", + "documentation":"

The unique identifier of the ODB network.

" + } + } + }, + "CreateOdbPeeringConnectionInput":{ + "type":"structure", + "required":[ + "odbNetworkId", + "peerNetworkId" + ], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network that initiates the peering connection.

" + }, + "peerNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the peer network. This can be either a VPC ID or another ODB network ID.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

The display name for the ODB peering connection.

" + }, + "clientToken":{ + "shape":"CreateOdbPeeringConnectionInputClientTokenString", + "documentation":"

The client token for the ODB peering connection request.

Constraints:

  • Must be unique for each request.

", + "idempotencyToken":true + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

The tags to assign to the ODB peering connection.

" + } + } + }, + "CreateOdbPeeringConnectionInputClientTokenString":{ + "type":"string", + "max":64, + "min":8, + "pattern":"[a-zA-Z0-9_\\/.=-]+" + }, + "CreateOdbPeeringConnectionOutput":{ + "type":"structure", + "required":["odbPeeringConnectionId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The display name of the ODB peering connection.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The status of the ODB peering connection.

Valid Values: provisioning | active | terminating | terminated | failed

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the current status of the ODB peering connection.

" + }, + "odbPeeringConnectionId":{ + "shape":"String", + "documentation":"

The unique identifier of the ODB peering connection.

" + } + } + }, + "CustomerContact":{ + "type":"structure", + "members":{ + "email":{ + "shape":"CustomerContactEmailString", + "documentation":"

The email address of the contact.

" + } + }, + "documentation":"

A contact to receive notification from Oracle about maintenance updates for a specific Exadata infrastructure.

" + }, + "CustomerContactEmailString":{ + "type":"string", + "max":320, + "min":1, + "sensitive":true + }, + "CustomerContacts":{ + "type":"list", + "member":{"shape":"CustomerContact"} + }, + "DataCollectionOptions":{ + "type":"structure", + "members":{ + "isDiagnosticsEventsEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether diagnostic collection is enabled for the VM cluster.

" + }, + "isHealthMonitoringEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether health monitoring is enabled for the VM cluster.

" + }, + "isIncidentLogsEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether incident logs are enabled for the cloud VM cluster.

" + } + }, + "documentation":"

Information about the data collection options enabled for a VM cluster.

" + }, + "DayOfWeek":{ + "type":"structure", + "members":{ + "name":{ + "shape":"DayOfWeekName", + "documentation":"

The name of the day of the week.

" + } + }, + "documentation":"

An enumeration of days of the week used for scheduling maintenance windows.

" + }, + "DayOfWeekName":{ + "type":"string", + "enum":[ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "DaysOfWeek":{ + "type":"list", + "member":{"shape":"DayOfWeek"} + }, + "DbIormConfig":{ + "type":"structure", + "members":{ + "dbName":{ + "shape":"String", + "documentation":"

The database name. For the default DbPlan, the dbName is default.

" + }, + "flashCacheLimit":{ + "shape":"String", + "documentation":"

The flash cache limit for this database. This value is internally configured based on the share value assigned to the database.

" + }, + "share":{ + "shape":"Integer", + "documentation":"

The relative priority of this database.

" + } + }, + "documentation":"

The IORM configuration settings for the database.

" + }, + "DbIormConfigList":{ + "type":"list", + "member":{"shape":"DbIormConfig"} + }, + "DbNode":{ + "type":"structure", + "members":{ + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node.

" + }, + "dbNodeArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the DB node.

" + }, + "status":{ + "shape":"DbNodeResourceStatus", + "documentation":"

The current status of the DB node.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the DB node.

" + }, + "additionalDetails":{ + "shape":"String", + "documentation":"

Additional information about the planned maintenance.

" + }, + "backupIpId":{ + "shape":"String", + "documentation":"

The Oracle Cloud ID (OCID) of the backup IP address that's associated with the DB node.

" + }, + "backupVnic2Id":{ + "shape":"String", + "documentation":"

The OCID of the second backup VNIC.

" + }, + "backupVnicId":{ + "shape":"String", + "documentation":"

The OCID of the backup VNIC.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

Number of CPU cores enabled on the DB node.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GBs), that's allocated on the DB node.

" + }, + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Db server that is associated with the DB node.

" + }, + "dbSystemId":{ + "shape":"String", + "documentation":"

The OCID of the DB system.

" + }, + "faultDomain":{ + "shape":"String", + "documentation":"

The name of the fault domain the instance is contained in.

" + }, + "hostIpId":{ + "shape":"String", + "documentation":"

The OCID of the host IP address that's associated with the DB node.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The host name for the DB node.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the DB node.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the DB node.

" + }, + "maintenanceType":{ + "shape":"DbNodeMaintenanceType", + "documentation":"

The type of database node maintenance. Either VMDB_REBOOT_MIGRATION or EXADBXS_REBOOT_MIGRATION.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The allocated memory in GBs on the DB node.

" + }, + "softwareStorageSizeInGB":{ + "shape":"Integer", + "documentation":"

The size (in GB) of the block storage volume allocation for the DB system.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the DB node was created.

" + }, + "timeMaintenanceWindowEnd":{ + "shape":"String", + "documentation":"

End date and time of maintenance window.

" + }, + "timeMaintenanceWindowStart":{ + "shape":"String", + "documentation":"

Start date and time of maintenance window.

" + }, + "totalCpuCoreCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores reserved on the DB node.

" + }, + "vnic2Id":{ + "shape":"String", + "documentation":"

The OCID of the second VNIC.

" + }, + "vnicId":{ + "shape":"String", + "documentation":"

The OCID of the VNIC.

" + }, + "privateIpAddress":{ + "shape":"String", + "documentation":"

The private IP address assigned to the DB node.

" + }, + "floatingIpAddress":{ + "shape":"String", + "documentation":"

The floating IP address assigned to the DB node.

" + } + }, + "documentation":"

Information about a DB node.

" + }, + "DbNodeList":{ + "type":"list", + "member":{"shape":"DbNodeSummary"} + }, + "DbNodeMaintenanceType":{ + "type":"string", + "enum":["VMDB_REBOOT_MIGRATION"] + }, + "DbNodeResourceStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "FAILED", + "PROVISIONING", + "TERMINATED", + "TERMINATING", + "UPDATING", + "STOPPING", + "STOPPED", + "STARTING" + ] + }, + "DbNodeSummary":{ + "type":"structure", + "members":{ + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node.

" + }, + "dbNodeArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the DB node.

" + }, + "status":{ + "shape":"DbNodeResourceStatus", + "documentation":"

The current status of the DB node.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the DB node.

" + }, + "additionalDetails":{ + "shape":"String", + "documentation":"

Additional information about the planned maintenance.

" + }, + "backupIpId":{ + "shape":"String", + "documentation":"

The Oracle Cloud ID (OCID) of the backup IP address that's associated with the DB node.

" + }, + "backupVnic2Id":{ + "shape":"String", + "documentation":"

The OCID of the second backup virtual network interface card (VNIC) for the DB node.

" + }, + "backupVnicId":{ + "shape":"String", + "documentation":"

The OCID of the backup VNIC for the DB node.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled on the DB node.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated on the DB node.

" + }, + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the database server that's associated with the DB node.

" + }, + "dbSystemId":{ + "shape":"String", + "documentation":"

The OCID of the DB system.

" + }, + "faultDomain":{ + "shape":"String", + "documentation":"

The name of the fault domain where the DB node is located.

" + }, + "hostIpId":{ + "shape":"String", + "documentation":"

The OCID of the host IP address that's associated with the DB node.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The host name for the DB node.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the DB node.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the DB node.

" + }, + "maintenanceType":{ + "shape":"DbNodeMaintenanceType", + "documentation":"

The type of maintenance the DB node.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that allocated on the DB node.

" + }, + "softwareStorageSizeInGB":{ + "shape":"Integer", + "documentation":"

The size of the block storage volume, in gigabytes (GB), that's allocated for the DB system. This attribute applies only for virtual machine DB systems.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the DB node was created.

" + }, + "timeMaintenanceWindowEnd":{ + "shape":"String", + "documentation":"

The end date and time of the maintenance window.

" + }, + "timeMaintenanceWindowStart":{ + "shape":"String", + "documentation":"

The start date and time of the maintenance window.

" + }, + "totalCpuCoreCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores reserved on the DB node.

" + }, + "vnic2Id":{ + "shape":"String", + "documentation":"

The OCID of the second VNIC.

" + }, + "vnicId":{ + "shape":"String", + "documentation":"

The OCID of the VNIC.

" + } + }, + "documentation":"

Information about a DB node.

" + }, + "DbServer":{ + "type":"structure", + "members":{ + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier for the database server.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the database server.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the database server.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled on the database server.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The allocated local node storage in GBs on the database server.

" + }, + "dbServerPatchingDetails":{ + "shape":"DbServerPatchingDetails", + "documentation":"

The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the database server.

" + }, + "exadataInfrastructureId":{ + "shape":"String", + "documentation":"

The ID of the Exadata infrastructure the database server belongs to.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the database server.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the database server.

" + }, + "maxCpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores available.

" + }, + "maxDbNodeStorageInGBs":{ + "shape":"Integer", + "documentation":"

The total local node storage available in GBs.

" + }, + "maxMemoryInGBs":{ + "shape":"Integer", + "documentation":"

The total memory available in GBs.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The allocated memory in GBs on the database server.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The shape of the database server. The shape determines the amount of CPU, storage, and memory resources available.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the database server was created.

" + }, + "vmClusterIds":{ + "shape":"StringList", + "documentation":"

The OCID of the VM clusters that are associated with the database server.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The compute model of the database server (ECPU or OCPU).

" + }, + "autonomousVmClusterIds":{ + "shape":"StringList", + "documentation":"

The list of identifiers for the Autonomous VM clusters associated with this database server.

" + }, + "autonomousVirtualMachineIds":{ + "shape":"StringList", + "documentation":"

The list of unique identifiers for the Autonomous VMs associated with this database server.

" + } + }, + "documentation":"

Information about a database server.

" + }, + "DbServerList":{ + "type":"list", + "member":{"shape":"DbServerSummary"} + }, + "DbServerPatchingDetails":{ + "type":"structure", + "members":{ + "estimatedPatchDuration":{ + "shape":"Integer", + "documentation":"

Estimated time, in minutes, to patch one database server.

" + }, + "patchingStatus":{ + "shape":"DbServerPatchingStatus", + "documentation":"

The status of the patching operation. Possible values are SCHEDULED, MAINTENANCE_IN_PROGRESS, FAILED, and COMPLETE.

" + }, + "timePatchingEnded":{ + "shape":"String", + "documentation":"

The time when the patching operation ended.

" + }, + "timePatchingStarted":{ + "shape":"String", + "documentation":"

The time when the patching operation started.

" + } + }, + "documentation":"

The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "DbServerPatchingStatus":{ + "type":"string", + "enum":[ + "COMPLETE", + "FAILED", + "MAINTENANCE_IN_PROGRESS", + "SCHEDULED" + ] + }, + "DbServerSummary":{ + "type":"structure", + "members":{ + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the database server.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the database server.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the database server.

" + }, + "cpuCoreCount":{ + "shape":"Integer", + "documentation":"

The number of CPU cores enabled on the database server.

" + }, + "dbNodeStorageSizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of local node storage, in gigabytes (GB), that's allocated on the database server.

" + }, + "dbServerPatchingDetails":{"shape":"DbServerPatchingDetails"}, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the database server. The name doesn't need to be unique.

" + }, + "exadataInfrastructureId":{ + "shape":"String", + "documentation":"

The ID of the Exadata infrastructure that hosts the database server.

" + }, + "ocid":{ + "shape":"String", + "documentation":"

The OCID of the database server.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor for the database server.

" + }, + "maxCpuCount":{ + "shape":"Integer", + "documentation":"

The total number of CPU cores available on the database server.

" + }, + "maxDbNodeStorageInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of local node storage, in gigabytes (GB), that's available on the database server.

" + }, + "maxMemoryInGBs":{ + "shape":"Integer", + "documentation":"

The total amount of memory, in gigabytes (GB), that's available on the database server.

" + }, + "memorySizeInGBs":{ + "shape":"Integer", + "documentation":"

The amount of memory, in gigabytes (GB), that's allocated on the database server.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The hardware system model of the Exadata infrastructure that the database server is hosted on. The shape determines the amount of CPU, storage, and memory resources available.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the database server was created.

" + }, + "vmClusterIds":{ + "shape":"StringList", + "documentation":"

The IDs of the VM clusters that are associated with the database server.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + }, + "autonomousVmClusterIds":{ + "shape":"StringList", + "documentation":"

A list of identifiers for the Autonomous VM clusters.

" + }, + "autonomousVirtualMachineIds":{ + "shape":"StringList", + "documentation":"

A list of unique identifiers for the Autonomous VMs.

" + } + }, + "documentation":"

Information about a database server.

" + }, + "DbSystemShapeList":{ + "type":"list", + "member":{"shape":"DbSystemShapeSummary"} + }, + "DbSystemShapeSummary":{ + "type":"structure", + "members":{ + "availableCoreCount":{ + "shape":"Integer", + "documentation":"

The maximum number of CPU cores that can be enabled for the shape.

" + }, + "availableCoreCountPerNode":{ + "shape":"Integer", + "documentation":"

The maximum number of CPU cores per DB node that can be enabled for the shape.

" + }, + "availableDataStorageInTBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of data storage, in terabytes (TB), that can be enabled for the shape.

" + }, + "availableDataStoragePerServerInTBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of data storage, in terabytes (TB), that's available per storage server for the shape.

" + }, + "availableDbNodePerNodeInGBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of DB node storage, in gigabytes (GB), that's available per DB node for the shape.

" + }, + "availableDbNodeStorageInGBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of DB node storage, in gigabytes (GB), that can be enabled for the shape.

" + }, + "availableMemoryInGBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of memory, in gigabytes (GB), that can be enabled for the shape.

" + }, + "availableMemoryPerNodeInGBs":{ + "shape":"Integer", + "documentation":"

The maximum amount of memory, in gigabytes (GB), that's available per DB node for the shape.

" + }, + "coreCountIncrement":{ + "shape":"Integer", + "documentation":"

The discrete number by which the CPU core count for the shape can be increased or decreased.

" + }, + "maxStorageCount":{ + "shape":"Integer", + "documentation":"

The maximum number of Exadata storage servers that's available for the shape.

" + }, + "maximumNodeCount":{ + "shape":"Integer", + "documentation":"

The maximum number of compute servers that is available for the shape.

" + }, + "minCoreCountPerNode":{ + "shape":"Integer", + "documentation":"

The minimum number of CPU cores that can be enabled per node for the shape.

" + }, + "minDataStorageInTBs":{ + "shape":"Integer", + "documentation":"

The minimum amount of data storage, in terabytes (TB), that must be allocated for the shape.

" + }, + "minDbNodeStoragePerNodeInGBs":{ + "shape":"Integer", + "documentation":"

The minimum amount of DB node storage, in gigabytes (GB), that must be allocated per DB node for the shape.

" + }, + "minMemoryPerNodeInGBs":{ + "shape":"Integer", + "documentation":"

The minimum amount of memory, in gigabytes (GB), that must be allocated per DB node for the shape.

" + }, + "minStorageCount":{ + "shape":"Integer", + "documentation":"

The minimum number of Exadata storage servers that are available for the shape.

" + }, + "minimumCoreCount":{ + "shape":"Integer", + "documentation":"

The minimum number of CPU cores that can be enabled for the shape.

" + }, + "minimumNodeCount":{ + "shape":"Integer", + "documentation":"

The minimum number of compute servers that are available for the shape.

" + }, + "runtimeMinimumCoreCount":{ + "shape":"Integer", + "documentation":"

The runtime minimum number of CPU cores that can be enabled for the shape.

" + }, + "shapeFamily":{ + "shape":"String", + "documentation":"

The family of the shape.

" + }, + "shapeType":{ + "shape":"ShapeType", + "documentation":"

The shape type. This property is determined by the CPU hardware.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the shape.

" + }, + "computeModel":{ + "shape":"ComputeModel", + "documentation":"

The OCI model compute model used when you create or clone an instance: ECPU or OCPU. An ECPU is an abstracted measure of compute resources. ECPUs are based on the number of cores elastically allocated from a pool of compute and storage servers. An OCPU is a legacy physical measure of compute resources. OCPUs are based on the physical core of a processor with hyper-threading enabled.

" + }, + "areServerTypesSupported":{ + "shape":"Boolean", + "documentation":"

Indicates whether the hardware system model supports configurable database and server storage types.

" + } + }, + "documentation":"

Information about a hardware system model (shape) that's available for an Exadata infrastructure. The shape determines resources, such as CPU cores, memory, and storage, to allocate to the Exadata infrastructure.

" + }, + "DeleteCloudAutonomousVmClusterInput":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster to delete.

" + } + } + }, + "DeleteCloudAutonomousVmClusterOutput":{ + "type":"structure", + "members":{} + }, + "DeleteCloudExadataInfrastructureInput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure to delete.

" + } + } + }, + "DeleteCloudExadataInfrastructureOutput":{ + "type":"structure", + "members":{} + }, + "DeleteCloudVmClusterInput":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster to delete.

" + } + } + }, + "DeleteCloudVmClusterOutput":{ + "type":"structure", + "members":{} + }, + "DeleteOdbNetworkInput":{ + "type":"structure", + "required":[ + "odbNetworkId", + "deleteAssociatedResources" + ], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network to delete.

" + }, + "deleteAssociatedResources":{ + "shape":"Boolean", + "documentation":"

Specifies whether to delete associated OCI networking resources along with the ODB network.

" + } + } + }, + "DeleteOdbNetworkOutput":{ + "type":"structure", + "members":{} + }, + "DeleteOdbPeeringConnectionInput":{ + "type":"structure", + "required":["odbPeeringConnectionId"], + "members":{ + "odbPeeringConnectionId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB peering connection to delete.

" + } + } + }, + "DeleteOdbPeeringConnectionOutput":{ + "type":"structure", + "members":{} + }, + "DiskRedundancy":{ + "type":"string", + "enum":[ + "HIGH", + "NORMAL" + ] + }, + "Double":{ + "type":"double", + "box":true + }, + "ExadataIormConfig":{ + "type":"structure", + "members":{ + "dbPlans":{ + "shape":"DbIormConfigList", + "documentation":"

An array of IORM settings for all the database in the Exadata DB system.

" + }, + "lifecycleDetails":{ + "shape":"String", + "documentation":"

Additional information about the current lifecycleState.

" + }, + "lifecycleState":{ + "shape":"IormLifecycleState", + "documentation":"

The current state of IORM configuration for the Exadata DB system.

" + }, + "objective":{ + "shape":"Objective", + "documentation":"

The current value for the IORM objective. The default is AUTO.

" + } + }, + "documentation":"

The IORM settings of the Exadata DB system.

" + }, + "Float":{ + "type":"float", + "box":true + }, + "GetCloudAutonomousVmClusterInput":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster to retrieve information about.

" + } + } + }, + "GetCloudAutonomousVmClusterOutput":{ + "type":"structure", + "members":{ + "cloudAutonomousVmCluster":{ + "shape":"CloudAutonomousVmCluster", + "documentation":"

The details of the requested Autonomous VM cluster.

" + } + } + }, + "GetCloudExadataInfrastructureInput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure.

" + } + } + }, + "GetCloudExadataInfrastructureOutput":{ + "type":"structure", + "members":{ + "cloudExadataInfrastructure":{ + "shape":"CloudExadataInfrastructure", + "documentation":"

The Exadata infrastructure.

" + } + } + }, + "GetCloudExadataInfrastructureUnallocatedResourcesInput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Cloud Exadata infrastructure for which to retrieve unallocated resources.

" + }, + "dbServers":{ + "shape":"StringList", + "documentation":"

The database servers to include in the unallocated resources query.

" + } + } + }, + "GetCloudExadataInfrastructureUnallocatedResourcesOutput":{ + "type":"structure", + "members":{ + "cloudExadataInfrastructureUnallocatedResources":{ + "shape":"CloudExadataInfrastructureUnallocatedResources", + "documentation":"

Details about the unallocated resources in the specified Cloud Exadata infrastructure.

" + } + } + }, + "GetCloudVmClusterInput":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster.

" + } + } + }, + "GetCloudVmClusterOutput":{ + "type":"structure", + "members":{ + "cloudVmCluster":{ + "shape":"CloudVmCluster", + "documentation":"

The VM cluster.

" + } + } + }, + "GetDbNodeInput":{ + "type":"structure", + "required":[ + "cloudVmClusterId", + "dbNodeId" + ], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster that contains the DB node.

" + }, + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node to retrieve information about.

" + } + } + }, + "GetDbNodeOutput":{ + "type":"structure", + "members":{ + "dbNode":{"shape":"DbNode"} + } + }, + "GetDbServerInput":{ + "type":"structure", + "required":[ + "cloudExadataInfrastructureId", + "dbServerId" + ], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Oracle Exadata infrastructure that contains the database server.

" + }, + "dbServerId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the database server to retrieve information about.

" + } + } + }, + "GetDbServerOutput":{ + "type":"structure", + "members":{ + "dbServer":{ + "shape":"DbServer", + "documentation":"

The details of the requested database server.

" + } + } + }, + "GetOciOnboardingStatusInput":{ + "type":"structure", + "members":{} + }, + "GetOciOnboardingStatusOutput":{ + "type":"structure", + "members":{ + "status":{"shape":"OciOnboardingStatus"}, + "existingTenancyActivationLink":{ + "shape":"String", + "documentation":"

The existing OCI tenancy activation link for your Amazon Web Services account.

" + }, + "newTenancyActivationLink":{ + "shape":"String", + "documentation":"

A new OCI tenancy activation link for your Amazon Web Services account.

" + } + } + }, + "GetOdbNetworkInput":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network.

" + } + } + }, + "GetOdbNetworkOutput":{ + "type":"structure", + "members":{ + "odbNetwork":{ + "shape":"OdbNetwork", + "documentation":"

The ODB network.

" + } + } + }, + "GetOdbPeeringConnectionInput":{ + "type":"structure", + "required":["odbPeeringConnectionId"], + "members":{ + "odbPeeringConnectionId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB peering connection to retrieve information about.

" + } + } + }, + "GetOdbPeeringConnectionOutput":{ + "type":"structure", + "members":{ + "odbPeeringConnection":{"shape":"OdbPeeringConnection"} + } + }, + "GiVersionList":{ + "type":"list", + "member":{"shape":"GiVersionSummary"} + }, + "GiVersionSummary":{ + "type":"structure", + "members":{ + "version":{ + "shape":"String", + "documentation":"

The GI software version.

" + } + }, + "documentation":"

Information about a specific version of Oracle Grid Infrastructure (GI) software that can be installed on a VM cluster.

" + }, + "HoursOfDay":{ + "type":"list", + "member":{"shape":"Integer"} + }, + "InitializeServiceInput":{ + "type":"structure", + "members":{} + }, + "InitializeServiceOutput":{ + "type":"structure", + "members":{} + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request after an internal server error.

" + } + }, + "documentation":"

Occurs when there is an internal failure in the Oracle Database@Amazon Web Services service. Wait and try again.

", + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "IormLifecycleState":{ + "type":"string", + "enum":[ + "BOOTSTRAPPING", + "DISABLED", + "ENABLED", + "FAILED", + "UPDATING" + ] + }, + "LicenseModel":{ + "type":"string", + "enum":[ + "BRING_YOUR_OWN_LICENSE", + "LICENSE_INCLUDED" + ] + }, + "ListAutonomousVirtualMachinesInput":{ + "type":"structure", + "required":["cloudAutonomousVmClusterId"], + "members":{ + "maxResults":{ + "shape":"ListAutonomousVirtualMachinesInputMaxResultsInteger", + "documentation":"

The maximum number of items to return per page.

" + }, + "nextToken":{ + "shape":"ListAutonomousVirtualMachinesInputNextTokenString", + "documentation":"

The pagination token to continue listing from.

" + }, + "cloudAutonomousVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the Autonomous VM cluster whose virtual machines you're listing.

" + } + } + }, + "ListAutonomousVirtualMachinesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListAutonomousVirtualMachinesInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListAutonomousVirtualMachinesOutput":{ + "type":"structure", + "required":["autonomousVirtualMachines"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The pagination token from which to continue listing.

" + }, + "autonomousVirtualMachines":{ + "shape":"AutonomousVirtualMachineList", + "documentation":"

The list of Autonomous VMs in the specified Autonomous VM cluster.

" + } + } + }, + "ListCloudAutonomousVmClustersInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListCloudAutonomousVmClustersInputMaxResultsInteger", + "documentation":"

The maximum number of items to return per page.

" + }, + "nextToken":{ + "shape":"ListCloudAutonomousVmClustersInputNextTokenString", + "documentation":"

The pagination token to continue listing from.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Cloud Exadata Infrastructure that hosts the Autonomous VM clusters to be listed.

" + } + } + }, + "ListCloudAutonomousVmClustersInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListCloudAutonomousVmClustersInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListCloudAutonomousVmClustersOutput":{ + "type":"structure", + "required":["cloudAutonomousVmClusters"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The pagination token to continue listing from.

" + }, + "cloudAutonomousVmClusters":{ + "shape":"CloudAutonomousVmClusterList", + "documentation":"

The list of Autonomous VM clusters in the specified Cloud Exadata Infrastructure.

" + } + } + }, + "ListCloudExadataInfrastructuresInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListCloudExadataInfrastructuresInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListCloudExadataInfrastructuresInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "ListCloudExadataInfrastructuresInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListCloudExadataInfrastructuresInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListCloudExadataInfrastructuresOutput":{ + "type":"structure", + "required":["cloudExadataInfrastructures"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "cloudExadataInfrastructures":{ + "shape":"CloudExadataInfrastructureList", + "documentation":"

The list of Exadata infrastructures along with their properties.

" + } + } + }, + "ListCloudVmClustersInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListCloudVmClustersInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListCloudVmClustersInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Oracle Exadata infrastructure.

" + } + } + }, + "ListCloudVmClustersInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListCloudVmClustersInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListCloudVmClustersOutput":{ + "type":"structure", + "required":["cloudVmClusters"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "cloudVmClusters":{ + "shape":"CloudVmClusterList", + "documentation":"

The list of VM clusters along with their properties.

" + } + } + }, + "ListDbNodesInput":{ + "type":"structure", + "required":["cloudVmClusterId"], + "members":{ + "maxResults":{ + "shape":"ListDbNodesInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListDbNodesInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster.

" + } + } + }, + "ListDbNodesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListDbNodesInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListDbNodesOutput":{ + "type":"structure", + "required":["dbNodes"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "dbNodes":{ + "shape":"DbNodeList", + "documentation":"

The list of DB nodes along with their properties.

" + } + } + }, + "ListDbServersInput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Oracle Exadata infrastructure.

" + }, + "maxResults":{ + "shape":"ListDbServersInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListDbServersInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "ListDbServersInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListDbServersInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListDbServersOutput":{ + "type":"structure", + "required":["dbServers"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "dbServers":{ + "shape":"DbServerList", + "documentation":"

The list of database servers along with their properties.

" + } + } + }, + "ListDbSystemShapesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListDbSystemShapesInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListDbSystemShapesInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "availabilityZone":{ + "shape":"ListDbSystemShapesInputAvailabilityZoneString", + "documentation":"

The logical name of the AZ, for example, us-east-1a. This name varies depending on the account.

" + }, + "availabilityZoneId":{ + "shape":"ListDbSystemShapesInputAvailabilityZoneIdString", + "documentation":"

The physical ID of the AZ, for example, use1-az4. This ID persists across accounts.

" + } + } + }, + "ListDbSystemShapesInputAvailabilityZoneIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "ListDbSystemShapesInputAvailabilityZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "ListDbSystemShapesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListDbSystemShapesInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListDbSystemShapesOutput":{ + "type":"structure", + "required":["dbSystemShapes"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "dbSystemShapes":{ + "shape":"DbSystemShapeList", + "documentation":"

The list of shapes and their properties.

" + } + } + }, + "ListGiVersionsInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListGiVersionsInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListGiVersionsInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "shape":{ + "shape":"ListGiVersionsInputShapeString", + "documentation":"

The shape to return GI versions for. For a list of valid shapes, use the ListDbSystemShapes operation..

" + } + } + }, + "ListGiVersionsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListGiVersionsInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListGiVersionsInputShapeString":{ + "type":"string", + "max":255, + "min":1 + }, + "ListGiVersionsOutput":{ + "type":"structure", + "required":["giVersions"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "giVersions":{ + "shape":"GiVersionList", + "documentation":"

The list of GI versions and their properties.

" + } + } + }, + "ListOdbNetworksInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListOdbNetworksInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListOdbNetworksInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "ListOdbNetworksInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListOdbNetworksInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListOdbNetworksOutput":{ + "type":"structure", + "required":["odbNetworks"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "odbNetworks":{ + "shape":"OdbNetworkList", + "documentation":"

The list of ODB networks.

" + } + } + }, + "ListOdbPeeringConnectionsInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListOdbPeeringConnectionsInputMaxResultsInteger", + "documentation":"

The maximum number of ODB peering connections to return in the response.

Default: 20

Constraints:

  • Must be between 1 and 100.

" + }, + "nextToken":{ + "shape":"ListOdbPeeringConnectionsInputNextTokenString", + "documentation":"

The pagination token for the next page of ODB peering connections.

" + }, + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The identifier of the ODB network to list peering connections for.

If not specified, lists all ODB peering connections in the account.

" + } + } + }, + "ListOdbPeeringConnectionsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListOdbPeeringConnectionsInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListOdbPeeringConnectionsOutput":{ + "type":"structure", + "required":["odbPeeringConnections"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The pagination token for the next page of ODB peering connections.

" + }, + "odbPeeringConnections":{ + "shape":"OdbPeeringConnectionList", + "documentation":"

The list of ODB peering connections.

" + } + } + }, + "ListSystemVersionsInput":{ + "type":"structure", + "required":[ + "giVersion", + "shape" + ], + "members":{ + "maxResults":{ + "shape":"ListSystemVersionsInputMaxResultsInteger", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output.

Default: 10

" + }, + "nextToken":{ + "shape":"ListSystemVersionsInputNextTokenString", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + }, + "giVersion":{ + "shape":"ListSystemVersionsInputGiVersionString", + "documentation":"

The software version of the Exadata Grid Infrastructure (GI).

" + }, + "shape":{ + "shape":"ListSystemVersionsInputShapeString", + "documentation":"

The Exadata hardware system model.

" + } + } + }, + "ListSystemVersionsInputGiVersionString":{ + "type":"string", + "max":30, + "min":1 + }, + "ListSystemVersionsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListSystemVersionsInputNextTokenString":{ + "type":"string", + "max":8192, + "min":1 + }, + "ListSystemVersionsInputShapeString":{ + "type":"string", + "max":255, + "min":1 + }, + "ListSystemVersionsOutput":{ + "type":"structure", + "required":["systemVersions"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

" + }, + "systemVersions":{ + "shape":"SystemVersionList", + "documentation":"

The list of system versions.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to list tags for.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"ResponseTagMap", + "documentation":"

The list of tags applied to the resource.

" + } + } + }, + "MaintenanceWindow":{ + "type":"structure", + "members":{ + "customActionTimeoutInMins":{ + "shape":"MaintenanceWindowCustomActionTimeoutInMinsInteger", + "documentation":"

The custom action timeout in minutes for the maintenance window.

" + }, + "daysOfWeek":{ + "shape":"DaysOfWeek", + "documentation":"

The days of the week when maintenance can be performed.

" + }, + "hoursOfDay":{ + "shape":"HoursOfDay", + "documentation":"

The hours of the day when maintenance can be performed.

" + }, + "isCustomActionTimeoutEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether custom action timeout is enabled for the maintenance window.

" + }, + "leadTimeInWeeks":{ + "shape":"MaintenanceWindowLeadTimeInWeeksInteger", + "documentation":"

The lead time in weeks before the maintenance window.

" + }, + "months":{ + "shape":"Months", + "documentation":"

The months when maintenance can be performed.

" + }, + "patchingMode":{ + "shape":"PatchingModeType", + "documentation":"

The patching mode for the maintenance window.

" + }, + "preference":{ + "shape":"PreferenceType", + "documentation":"

The preference for the maintenance window scheduling.

" + }, + "skipRu":{ + "shape":"Boolean", + "documentation":"

Indicates whether to skip release updates during maintenance.

" + }, + "weeksOfMonth":{ + "shape":"WeeksOfMonth", + "documentation":"

The weeks of the month when maintenance can be performed.

" + } + }, + "documentation":"

The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

" + }, + "MaintenanceWindowCustomActionTimeoutInMinsInteger":{ + "type":"integer", + "box":true, + "max":120, + "min":15 + }, + "MaintenanceWindowLeadTimeInWeeksInteger":{ + "type":"integer", + "box":true, + "max":4, + "min":1 + }, + "ManagedResourceStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "ENABLING", + "DISABLED", + "DISABLING" + ] + }, + "ManagedS3BackupAccess":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ManagedResourceStatus", + "documentation":"

The status of the managed Amazon S3 backup access.

Valid Values: enabled | disabled

" + }, + "ipv4Addresses":{ + "shape":"StringList", + "documentation":"

The IPv4 addresses for the managed Amazon S3 backup access.

" + } + }, + "documentation":"

The configuration for managed Amazon S3 backup access from the ODB network.

" + }, + "ManagedServices":{ + "type":"structure", + "members":{ + "serviceNetworkArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the service network.

" + }, + "resourceGatewayArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource gateway.

" + }, + "managedServicesIpv4Cidrs":{ + "shape":"StringList", + "documentation":"

The IPv4 CIDR blocks for the managed services.

" + }, + "serviceNetworkEndpoint":{ + "shape":"ServiceNetworkEndpoint", + "documentation":"

The service network endpoint configuration.

" + }, + "managedS3BackupAccess":{ + "shape":"ManagedS3BackupAccess", + "documentation":"

The managed Amazon S3 backup access configuration.

" + }, + "zeroEtlAccess":{ + "shape":"ZeroEtlAccess", + "documentation":"

The Zero-ETL access configuration.

" + }, + "s3Access":{ + "shape":"S3Access", + "documentation":"

The Amazon S3 access configuration.

" + } + }, + "documentation":"

The managed services configuration for the ODB network.

" + }, + "Month":{ + "type":"structure", + "members":{ + "name":{ + "shape":"MonthName", + "documentation":"

The name of the month.

" + } + }, + "documentation":"

An enumeration of months used for scheduling maintenance windows.

" + }, + "MonthName":{ + "type":"string", + "enum":[ + "JANUARY", + "FEBRUARY", + "MARCH", + "APRIL", + "MAY", + "JUNE", + "JULY", + "AUGUST", + "SEPTEMBER", + "OCTOBER", + "NOVEMBER", + "DECEMBER" + ] + }, + "Months":{ + "type":"list", + "member":{"shape":"Month"} + }, + "Objective":{ + "type":"string", + "enum":[ + "AUTO", + "BALANCED", + "BASIC", + "HIGH_THROUGHPUT", + "LOW_LATENCY" + ] + }, + "OciDnsForwardingConfig":{ + "type":"structure", + "members":{ + "domainName":{ + "shape":"OciDnsForwardingConfigDomainNameString", + "documentation":"

Domain name to which DNS resolver forwards to.

" + }, + "ociDnsListenerIp":{ + "shape":"String", + "documentation":"

OCI DNS listener IP for custom DNS setup.

" + } + }, + "documentation":"

DNS configuration to forward DNS resolver endpoints to your OCI Private Zone.

" + }, + "OciDnsForwardingConfigDomainNameString":{ + "type":"string", + "max":255, + "min":1 + }, + "OciDnsForwardingConfigList":{ + "type":"list", + "member":{"shape":"OciDnsForwardingConfig"} + }, + "OciOnboardingStatus":{ + "type":"string", + "documentation":"

", + "enum":[ + "NOT_STARTED", + "PENDING_LINK_GENERATION", + "PENDING_CUSTOMER_ACTION", + "PENDING_INITIALIZATION", + "ACTIVATING", + "ACTIVE_IN_HOME_REGION", + "ACTIVE", + "ACTIVE_LIMITED", + "FAILED", + "PUBLIC_OFFER_UNSUPPORTED", + "SUSPENDED", + "CANCELED" + ] + }, + "OdbNetwork":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the ODB network.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the ODB network.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the ODB network.

" + }, + "odbNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB network.

" + }, + "availabilityZone":{ + "shape":"OdbNetworkAvailabilityZoneString", + "documentation":"

The Amazon Web Services Availability Zone (AZ) where the ODB network is located.

" + }, + "availabilityZoneId":{ + "shape":"OdbNetworkAvailabilityZoneIdString", + "documentation":"

The AZ ID of the AZ where the ODB network is located.

" + }, + "clientSubnetCidr":{ + "shape":"OdbNetworkClientSubnetCidrString", + "documentation":"

The CIDR range of the client subnet in the ODB network.

" + }, + "backupSubnetCidr":{ + "shape":"OdbNetworkBackupSubnetCidrString", + "documentation":"

The CIDR range of the backup subnet in the ODB network.

" + }, + "customDomainName":{ + "shape":"OdbNetworkCustomDomainNameString", + "documentation":"

The domain name for the resources in the ODB network.

" + }, + "defaultDnsPrefix":{ + "shape":"OdbNetworkDefaultDnsPrefixString", + "documentation":"

The DNS prefix to the default DNS domain name. The default DNS domain name is oraclevcn.com.

" + }, + "peeredCidrs":{ + "shape":"StringList", + "documentation":"

The list of CIDR ranges from the peered VPC that are allowed access to the ODB network.

" + }, + "ociNetworkAnchorId":{ + "shape":"OdbNetworkOciNetworkAnchorIdString", + "documentation":"

The unique identifier of the OCI network anchor for the ODB network.

" + }, + "ociNetworkAnchorUrl":{ + "shape":"String", + "documentation":"

The URL of the OCI network anchor for the ODB network.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor that's associated with the ODB network.

" + }, + "ociVcnId":{ + "shape":"OdbNetworkOciVcnIdString", + "documentation":"

The Oracle Cloud ID (OCID) for the Virtual Cloud Network (VCN) that's associated with the ODB network.

" + }, + "ociVcnUrl":{ + "shape":"String", + "documentation":"

The URL for the VCN that's associated with the ODB network.

" + }, + "ociDnsForwardingConfigs":{ + "shape":"OciDnsForwardingConfigList", + "documentation":"

The DNS resolver endpoint in OCI for forwarding DNS queries for the ociPrivateZone domain.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the ODB network was created.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the ODB network, expressed as a percentage.

" + }, + "managedServices":{ + "shape":"ManagedServices", + "documentation":"

The managed services configuration for the ODB network.

" + } + }, + "documentation":"

Information about an ODB network.

" + }, + "OdbNetworkAvailabilityZoneIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkAvailabilityZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkBackupSubnetCidrString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkClientSubnetCidrString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkCustomDomainNameString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkDefaultDnsPrefixString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkList":{ + "type":"list", + "member":{"shape":"OdbNetworkSummary"} + }, + "OdbNetworkOciNetworkAnchorIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkOciVcnIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummary":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the ODB network.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the ODB network.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the current status of the ODB network.

" + }, + "odbNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB network.

" + }, + "availabilityZone":{ + "shape":"OdbNetworkSummaryAvailabilityZoneString", + "documentation":"

The Amazon Web Services Availability Zone (AZ) where the ODB network is located.

" + }, + "availabilityZoneId":{ + "shape":"OdbNetworkSummaryAvailabilityZoneIdString", + "documentation":"

The AZ ID of the AZ where the ODB network is located.

" + }, + "clientSubnetCidr":{ + "shape":"OdbNetworkSummaryClientSubnetCidrString", + "documentation":"

The CIDR range of the client subnet in the ODB network.

" + }, + "backupSubnetCidr":{ + "shape":"OdbNetworkSummaryBackupSubnetCidrString", + "documentation":"

The CIDR range of the backup subnet in the ODB network.

" + }, + "customDomainName":{ + "shape":"OdbNetworkSummaryCustomDomainNameString", + "documentation":"

The domain name for the resources in the ODB network.

" + }, + "defaultDnsPrefix":{ + "shape":"OdbNetworkSummaryDefaultDnsPrefixString", + "documentation":"

The DNS prefix to the default DNS domain name. The default DNS domain name is oraclevcn.com.

" + }, + "peeredCidrs":{ + "shape":"StringList", + "documentation":"

The list of CIDR ranges from the peered VPC that are allowed access to the ODB network.

" + }, + "ociNetworkAnchorId":{ + "shape":"OdbNetworkSummaryOciNetworkAnchorIdString", + "documentation":"

The unique identifier of the OCI network anchor for the ODB network.

" + }, + "ociNetworkAnchorUrl":{ + "shape":"String", + "documentation":"

The URL of the OCI network anchor for the ODB network.

" + }, + "ociResourceAnchorName":{ + "shape":"String", + "documentation":"

The name of the OCI resource anchor associated with the ODB network.

" + }, + "ociVcnId":{ + "shape":"OdbNetworkSummaryOciVcnIdString", + "documentation":"

The Oracle Cloud ID (OCID) for the Virtual Cloud Network (VCN) associated with the ODB network.

" + }, + "ociVcnUrl":{ + "shape":"String", + "documentation":"

The URL for the VCN that's associated with the ODB network.

" + }, + "ociDnsForwardingConfigs":{ + "shape":"OciDnsForwardingConfigList", + "documentation":"

The DNS resolver endpoint in OCI for forwarding DNS queries for the ociPrivateZone domain.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the ODB network was created.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The amount of progress made on the current operation on the ODB network, expressed as a percentage.

" + }, + "managedServices":{ + "shape":"ManagedServices", + "documentation":"

The managed services configuration for the ODB network.

" + } + }, + "documentation":"

Information about an ODB network.

" + }, + "OdbNetworkSummaryAvailabilityZoneIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryAvailabilityZoneString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryBackupSubnetCidrString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryClientSubnetCidrString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryCustomDomainNameString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryDefaultDnsPrefixString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryOciNetworkAnchorIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbNetworkSummaryOciVcnIdString":{ + "type":"string", + "max":255, + "min":1 + }, + "OdbPeeringConnection":{ + "type":"structure", + "required":["odbPeeringConnectionId"], + "members":{ + "odbPeeringConnectionId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB peering connection. A sample ID is odbpcx-abcdefgh12345678.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The display name of the ODB peering connection.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The status of the ODB peering connection.

Valid Values: provisioning | active | terminating | terminated | failed

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the current status of the ODB peering connection.

" + }, + "odbPeeringConnectionArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB peering connection.

Example: arn:aws:odb:us-east-1:123456789012:odb-peering-connection/odbpcx-abcdefgh12345678

" + }, + "odbNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB network that initiated the peering connection.

" + }, + "peerNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the peer network.

" + }, + "odbPeeringConnectionType":{ + "shape":"String", + "documentation":"

The type of the ODB peering connection.

Valid Values: ODB-VPC | ODB-ODB

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The timestamp when the ODB peering connection was created.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The percentage progress of the ODB peering connection creation or deletion.

" + } + }, + "documentation":"

A peering connection between an ODB network and either another ODB network or a customer-owned VPC.

" + }, + "OdbPeeringConnectionList":{ + "type":"list", + "member":{"shape":"OdbPeeringConnectionSummary"} + }, + "OdbPeeringConnectionSummary":{ + "type":"structure", + "required":["odbPeeringConnectionId"], + "members":{ + "odbPeeringConnectionId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB peering connection. A sample ID is odbpcx-abcdefgh12345678.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The display name of the ODB peering connection.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The status of the ODB peering connection.

Valid Values: provisioning | active | terminating | terminated | failed

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the current status of the ODB peering connection.

" + }, + "odbPeeringConnectionArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB peering connection.

" + }, + "odbNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the ODB network that initiated the peering connection.

" + }, + "peerNetworkArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the peer network.

" + }, + "odbPeeringConnectionType":{ + "shape":"String", + "documentation":"

The type of the ODB peering connection.

Valid Values: ODB-VPC | ODB-ODB

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The timestamp when the ODB peering connection was created.

" + }, + "percentProgress":{ + "shape":"Float", + "documentation":"

The percentage progress of the ODB peering connection creation or deletion.

" + } + }, + "documentation":"

A summary of an ODB peering connection.

" + }, + "PatchingModeType":{ + "type":"string", + "enum":[ + "ROLLING", + "NONROLLING" + ] + }, + "PolicyDocument":{ + "type":"string", + "max":20480, + "min":3 + }, + "PreferenceType":{ + "type":"string", + "enum":[ + "NO_PREFERENCE", + "CUSTOM_PREFERENCE" + ] + }, + "RebootDbNodeInput":{ + "type":"structure", + "required":[ + "cloudVmClusterId", + "dbNodeId" + ], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster that contains the DB node to reboot.

" + }, + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node to reboot.

" + } + } + }, + "RebootDbNodeOutput":{ + "type":"structure", + "required":["dbNodeId"], + "members":{ + "dbNodeId":{ + "shape":"String", + "documentation":"

The unique identifier of the DB node that was rebooted.

" + }, + "status":{ + "shape":"DbNodeResourceStatus", + "documentation":"

The current status of the DB node after the reboot operation.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the DB node after the reboot operation.

" + } + } + }, + "RequestTagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":1 + }, + "ResourceArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(?:aws|aws-cn|aws-us-gov|aws-iso-{0,1}[a-z]{0,1}):[a-z0-9-]+:[a-z0-9-]*:[0-9]+:[a-z0-9-]+/[a-z0-9-_]{6,64}" + }, + "ResourceDisplayName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z_](?!.*--)[a-zA-Z0-9_-]*" + }, + "ResourceId":{ + "type":"string", + "max":64, + "min":6, + "pattern":"[a-zA-Z0-9_~.-]+" + }, + "ResourceIdOrArn":{ + "type":"string", + "max":2048, + "min":6, + "pattern":"(arn:(?:aws|aws-cn|aws-us-gov|aws-iso-{0,1}[a-z]{0,1}):[a-z0-9-]+:[a-z0-9-]*:[0-9]+:[a-z0-9-]+/[a-zA-Z0-9_~.-]{6,64}|[a-zA-Z0-9_~.-]{6,64})" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The identifier of the resource that was not found.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that was not found.

" + } + }, + "documentation":"

The operation tried to access a resource that doesn't exist. Make sure you provided the correct resource and try again.

", + "exception":true + }, + "ResourceStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "FAILED", + "PROVISIONING", + "TERMINATED", + "TERMINATING", + "UPDATING", + "MAINTENANCE_IN_PROGRESS" + ] + }, + "ResponseTagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "S3Access":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ManagedResourceStatus", + "documentation":"

The status of the Amazon S3 access.

Valid Values: enabled | disabled

" + }, + "ipv4Addresses":{ + "shape":"StringList", + "documentation":"

The IPv4 addresses for the Amazon S3 access.

" + }, + "domainName":{ + "shape":"String", + "documentation":"

The domain name for the Amazon S3 access.

" + }, + "s3PolicyDocument":{ + "shape":"String", + "documentation":"

The endpoint policy for the Amazon S3 access.

" + } + }, + "documentation":"

The configuration for Amazon S3 access from the ODB network.

" + }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "SensitiveStringList":{ + "type":"list", + "member":{"shape":"SensitiveString"} + }, + "ServiceNetworkEndpoint":{ + "type":"structure", + "members":{ + "vpcEndpointId":{ + "shape":"String", + "documentation":"

The identifier of the VPC endpoint.

" + }, + "vpcEndpointType":{ + "shape":"VpcEndpointType", + "documentation":"

The type of the VPC endpoint.

Valid Values: Interface | Gateway

" + } + }, + "documentation":"

The configuration for a service network endpoint.

" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType", + "quotaCode" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The identifier of the resource that exceeded the service quota.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that exceeded the service quota.

" + }, + "quotaCode":{ + "shape":"String", + "documentation":"

The unqiue identifier of the service quota that was exceeded.

" + } + }, + "documentation":"

You have exceeded the service quota.

", + "exception":true + }, + "ShapeType":{ + "type":"string", + "enum":[ + "AMD", + "INTEL", + "INTEL_FLEX_X9", + "AMPERE_FLEX_A1" + ] + }, + "StartDbNodeInput":{ + "type":"structure", + "required":[ + "cloudVmClusterId", + "dbNodeId" + ], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster that contains the DB node to start.

" + }, + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node to start.

" + } + } + }, + "StartDbNodeOutput":{ + "type":"structure", + "required":["dbNodeId"], + "members":{ + "dbNodeId":{ + "shape":"String", + "documentation":"

The unique identifier of the DB node that was started.

" + }, + "status":{ + "shape":"DbNodeResourceStatus", + "documentation":"

The current status of the DB node after the start operation.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the DB node after the start operation.

" + } + } + }, + "StopDbNodeInput":{ + "type":"structure", + "required":[ + "cloudVmClusterId", + "dbNodeId" + ], + "members":{ + "cloudVmClusterId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the VM cluster that contains the DB node to stop.

" + }, + "dbNodeId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the DB node to stop.

" + } + } + }, + "StopDbNodeOutput":{ + "type":"structure", + "required":["dbNodeId"], + "members":{ + "dbNodeId":{ + "shape":"String", + "documentation":"

The unique identifier of the DB node that was stopped.

" + }, + "status":{ + "shape":"DbNodeResourceStatus", + "documentation":"

The current status of the DB node after the stop operation.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the DB node after the stop operation.

" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"}, + "max":1024, + "min":1 + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "SystemVersionList":{ + "type":"list", + "member":{"shape":"SystemVersionSummary"} + }, + "SystemVersionSummary":{ + "type":"structure", + "members":{ + "giVersion":{ + "shape":"String", + "documentation":"

The version of GI software.

" + }, + "shape":{ + "shape":"String", + "documentation":"

The Exadata hardware model.

" + }, + "systemVersions":{ + "shape":"StringList", + "documentation":"

The Exadata system versions that are compatible with the specified Exadata shape and GI version.

" + } + }, + "documentation":"

Information about the compatible system versions that can be used with a specific Exadata shape and Grid Infrastructure (GI) version.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to apply tags to.

" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"

The list of tags to apply to the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{} + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request after being throttled.

" + } + }, + "documentation":"

The request was denied due to request throttling.

", + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to remove tags from.

" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

The names (keys) of the tags to remove from the resource.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{} + }, + "UpdateCloudExadataInfrastructureInput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "cloudExadataInfrastructureId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the Exadata infrastructure to update.

" + }, + "maintenanceWindow":{"shape":"MaintenanceWindow"} + } + }, + "UpdateCloudExadataInfrastructureOutput":{ + "type":"structure", + "required":["cloudExadataInfrastructureId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the updated Exadata infrastructure.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the Exadata infrastructure after the update operation.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the Exadata infrastructure after the update operation.

" + }, + "cloudExadataInfrastructureId":{ + "shape":"String", + "documentation":"

The unique identifier of the updated Exadata infrastructure.

" + } + } + }, + "UpdateOdbNetworkInput":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "odbNetworkId":{ + "shape":"ResourceIdOrArn", + "documentation":"

The unique identifier of the ODB network to update.

" + }, + "displayName":{ + "shape":"ResourceDisplayName", + "documentation":"

The new user-friendly name of the ODB network.

" + }, + "peeredCidrsToBeAdded":{ + "shape":"StringList", + "documentation":"

The list of CIDR ranges from the peered VPC that allow access to the ODB network.

" + }, + "peeredCidrsToBeRemoved":{ + "shape":"StringList", + "documentation":"

The list of CIDR ranges from the peered VPC to remove from the ODB network.

" + }, + "s3Access":{ + "shape":"Access", + "documentation":"

Specifies the updated configuration for Amazon S3 access from the ODB network.

" + }, + "zeroEtlAccess":{ + "shape":"Access", + "documentation":"

Specifies the updated configuration for Zero-ETL access from the ODB network.

" + }, + "s3PolicyDocument":{ + "shape":"PolicyDocument", + "documentation":"

Specifies the updated endpoint policy for Amazon S3 access from the ODB network.

" + } + } + }, + "UpdateOdbNetworkOutput":{ + "type":"structure", + "required":["odbNetworkId"], + "members":{ + "displayName":{ + "shape":"String", + "documentation":"

The user-friendly name of the ODB network.

" + }, + "status":{ + "shape":"ResourceStatus", + "documentation":"

The current status of the ODB network.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

Additional information about the status of the ODB network.

" + }, + "odbNetworkId":{ + "shape":"String", + "documentation":"

The unique identifier of the ODB network.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason why the validation failed.

" + }, + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

A list of fields that failed validation.

" + } + }, + "documentation":"

The request has failed validation because it is missing required fields or has invalid inputs.

", + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The field name for which validation failed.

" + }, + "message":{ + "shape":"String", + "documentation":"

The description of the error.

" + } + }, + "documentation":"

The input failed to meet the constraints specified by the service in a specified field. Make sure you provided the correct input and try again.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "VpcEndpointType":{ + "type":"string", + "enum":["SERVICENETWORK"] + }, + "WeeksOfMonth":{ + "type":"list", + "member":{"shape":"Integer"} + }, + "ZeroEtlAccess":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ManagedResourceStatus", + "documentation":"

The status of the Zero-ETL access.

Valid Values: enabled | disabled

" + }, + "cidr":{ + "shape":"String", + "documentation":"

The CIDR block for the Zero-ETL access.

" + } + }, + "documentation":"

The configuration for Zero-ETL access from the ODB network.

" + } + }, + "documentation":"

Oracle Database@Amazon Web Services is an offering that enables you to access Oracle Exadata infrastructure managed by Oracle Cloud Infrastructure (OCI) inside Amazon Web Services data centers. You can migrate your Oracle Exadata workloads, establish low-latency connectivity with applications running on Amazon Web Services, and integrate with Amazon Web Services services. For example, you can run application servers in a virtual private cloud (VPC) and access an Oracle Exadata system running in Oracle Database@Amazon Web Services. You can get started with Oracle Database@Amazon Web Services by using the familiar Amazon Web Services Management Console, APIs, or CLI.

This interface reference for Oracle Database@Amazon Web Services contains documentation for a programming or command line interface that you can use to manage Oracle Database@Amazon Web Services. Oracle Database@Amazon Web Services is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. The reference structure is as follows.

In this preview release documentation, the links in the \"See Also\" sections do not work.

Oracle Database@Amazon Web Services API Reference

  • For the alphabetical list of API actions, see .

  • For the alphabetical list of data types, see .

  • For a list of common parameters, see CommonParameters.

  • For descriptions of the error codes, see CommonErrors.

" +} diff --git a/services/odb/src/main/resources/codegen-resources/waiters-2.json b/services/odb/src/main/resources/codegen-resources/waiters-2.json new file mode 100644 index 000000000000..13f60ee66be6 --- /dev/null +++ b/services/odb/src/main/resources/codegen-resources/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/services/omics/pom.xml b/services/omics/pom.xml index de11c2eb2bc3..f3429edf9ca1 100644 --- a/services/omics/pom.xml +++ b/services/omics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT omics AWS Java SDK :: Services :: Omics diff --git a/services/opensearch/pom.xml b/services/opensearch/pom.xml index 35d990617863..bd33174b70b9 100644 --- a/services/opensearch/pom.xml +++ b/services/opensearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT opensearch AWS Java SDK :: Services :: Open Search diff --git a/services/opensearchserverless/pom.xml b/services/opensearchserverless/pom.xml index feae05c3c08c..61c070fe7205 100644 --- a/services/opensearchserverless/pom.xml +++ b/services/opensearchserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT opensearchserverless AWS Java SDK :: Services :: Open Search Serverless diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml index 07a024f2d783..e52346465894 100644 --- a/services/opsworks/pom.xml +++ b/services/opsworks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT opsworks AWS Java SDK :: Services :: AWS OpsWorks diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml index e485a88af5a0..7252d87245ff 100644 --- a/services/opsworkscm/pom.xml +++ b/services/opsworkscm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT opsworkscm AWS Java SDK :: Services :: AWS OpsWorks for Chef Automate diff --git a/services/organizations/pom.xml b/services/organizations/pom.xml index 207bcc17bd64..596f45f0591c 100644 --- a/services/organizations/pom.xml +++ b/services/organizations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT organizations AWS Java SDK :: Services :: AWS Organizations diff --git a/services/osis/pom.xml b/services/osis/pom.xml index de201ff47243..0ce05fb40680 100644 --- a/services/osis/pom.xml +++ b/services/osis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT osis AWS Java SDK :: Services :: OSIS diff --git a/services/outposts/pom.xml b/services/outposts/pom.xml index abf7fa8d36a6..9ca0531b1230 100644 --- a/services/outposts/pom.xml +++ b/services/outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT outposts AWS Java SDK :: Services :: Outposts diff --git a/services/outposts/src/main/resources/codegen-resources/service-2.json b/services/outposts/src/main/resources/codegen-resources/service-2.json index 9631f5d0c9f2..f96140532f08 100644 --- a/services/outposts/src/main/resources/codegen-resources/service-2.json +++ b/services/outposts/src/main/resources/codegen-resources/service-2.json @@ -589,6 +589,8 @@ "Address":{ "type":"structure", "required":[ + "ContactName", + "ContactPhoneNumber", "AddressLine1", "City", "StateOrRegion", @@ -868,8 +870,7 @@ }, "CancelCapacityTaskOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "CancelOrderInput":{ "type":"structure", @@ -885,8 +886,7 @@ }, "CancelOrderOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "CapacityTaskFailure":{ "type":"structure", @@ -1278,8 +1278,7 @@ }, "DeleteOutpostOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteSiteInput":{ "type":"structure", @@ -1295,8 +1294,7 @@ }, "DeleteSiteOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "DeviceSerialNumber":{ "type":"string", @@ -2937,8 +2935,7 @@ }, "TagResourceResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "TagValue":{ "type":"string", @@ -2994,8 +2991,7 @@ }, "UntagResourceResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateOutpostInput":{ "type":"structure", diff --git a/services/panorama/pom.xml b/services/panorama/pom.xml index ebb8456a8998..0db4a60aeb6d 100644 --- a/services/panorama/pom.xml +++ b/services/panorama/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT panorama AWS Java SDK :: Services :: Panorama diff --git a/services/partnercentralselling/pom.xml b/services/partnercentralselling/pom.xml index 8dbb0910c03a..eac6509c5236 100644 --- a/services/partnercentralselling/pom.xml +++ b/services/partnercentralselling/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT partnercentralselling AWS Java SDK :: Services :: Partner Central Selling diff --git a/services/paymentcryptography/pom.xml b/services/paymentcryptography/pom.xml index 31cc1e747785..6136d159a56e 100644 --- a/services/paymentcryptography/pom.xml +++ b/services/paymentcryptography/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT paymentcryptography AWS Java SDK :: Services :: Payment Cryptography diff --git a/services/paymentcryptographydata/pom.xml b/services/paymentcryptographydata/pom.xml index 6c5dcc0e4326..12c8033c8ad3 100644 --- a/services/paymentcryptographydata/pom.xml +++ b/services/paymentcryptographydata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT paymentcryptographydata AWS Java SDK :: Services :: Payment Cryptography Data diff --git a/services/pcaconnectorad/pom.xml b/services/pcaconnectorad/pom.xml index 9be2f02b11fd..12bdf1808c9e 100644 --- a/services/pcaconnectorad/pom.xml +++ b/services/pcaconnectorad/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pcaconnectorad AWS Java SDK :: Services :: Pca Connector Ad diff --git a/services/pcaconnectorscep/pom.xml b/services/pcaconnectorscep/pom.xml index f6c3ab453398..e98a84005ea7 100644 --- a/services/pcaconnectorscep/pom.xml +++ b/services/pcaconnectorscep/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pcaconnectorscep AWS Java SDK :: Services :: Pca Connector Scep diff --git a/services/pcs/pom.xml b/services/pcs/pom.xml index 87704d2cab41..b4f6a80c9ed6 100644 --- a/services/pcs/pom.xml +++ b/services/pcs/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pcs AWS Java SDK :: Services :: PCS diff --git a/services/pcs/src/main/resources/codegen-resources/service-2.json b/services/pcs/src/main/resources/codegen-resources/service-2.json index 9f2597a82478..59e2cc94da33 100644 --- a/services/pcs/src/main/resources/codegen-resources/service-2.json +++ b/services/pcs/src/main/resources/codegen-resources/service-2.json @@ -1168,7 +1168,7 @@ }, "InstanceProfileArn":{ "type":"string", - "pattern":"arn:aws([a-zA-Z-]{0,10})?:iam::[0-9]{12}:instance-profile/[\\w+=,.@-]{1,128}" + "pattern":"arn:aws([a-zA-Z-]{0,10})?:iam::[0-9]{12}:instance-profile/[/\\w+=,.@-]{1,128}" }, "Integer":{ "type":"integer", diff --git a/services/personalize/pom.xml b/services/personalize/pom.xml index a83d97f3ed58..cb589a147756 100644 --- a/services/personalize/pom.xml +++ b/services/personalize/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT personalize AWS Java SDK :: Services :: Personalize diff --git a/services/personalizeevents/pom.xml b/services/personalizeevents/pom.xml index bea1a4e7999c..f25ef1651497 100644 --- a/services/personalizeevents/pom.xml +++ b/services/personalizeevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT personalizeevents AWS Java SDK :: Services :: Personalize Events diff --git a/services/personalizeruntime/pom.xml b/services/personalizeruntime/pom.xml index 6adeeac227e5..c8c589806e6e 100644 --- a/services/personalizeruntime/pom.xml +++ b/services/personalizeruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT personalizeruntime AWS Java SDK :: Services :: Personalize Runtime diff --git a/services/pi/pom.xml b/services/pi/pom.xml index 5899ad1524a6..f245b4f6376b 100644 --- a/services/pi/pom.xml +++ b/services/pi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pi AWS Java SDK :: Services :: PI diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml index ad3162bb981e..4483fbfcf376 100644 --- a/services/pinpoint/pom.xml +++ b/services/pinpoint/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pinpoint AWS Java SDK :: Services :: Amazon Pinpoint diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml index 7099a2d11cb3..0920d09a64d7 100644 --- a/services/pinpointemail/pom.xml +++ b/services/pinpointemail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pinpointemail AWS Java SDK :: Services :: Pinpoint Email diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml index 0f10c14ec7e6..bbb20111295f 100644 --- a/services/pinpointsmsvoice/pom.xml +++ b/services/pinpointsmsvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pinpointsmsvoice AWS Java SDK :: Services :: Pinpoint SMS Voice diff --git a/services/pinpointsmsvoicev2/pom.xml b/services/pinpointsmsvoicev2/pom.xml index ade44c4f4b1b..88cb51ebc779 100644 --- a/services/pinpointsmsvoicev2/pom.xml +++ b/services/pinpointsmsvoicev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pinpointsmsvoicev2 AWS Java SDK :: Services :: Pinpoint SMS Voice V2 diff --git a/services/pipes/pom.xml b/services/pipes/pom.xml index aee44f530e69..b300d9c04b3a 100644 --- a/services/pipes/pom.xml +++ b/services/pipes/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT pipes AWS Java SDK :: Services :: Pipes diff --git a/services/polly/pom.xml b/services/polly/pom.xml index 4180d4b8dc15..7df87b20dc0d 100644 --- a/services/polly/pom.xml +++ b/services/polly/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT polly AWS Java SDK :: Services :: Amazon Polly diff --git a/services/pom.xml b/services/pom.xml index e2715f9158d0..9179a6cc1a0b 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT services AWS Java SDK :: Services @@ -429,6 +429,7 @@ aiops workspacesinstances keyspacesstreams + odb The AWS Java SDK services https://aws.amazon.com/sdkforjava diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml index 2770c969a4d3..246e1b0dbef9 100644 --- a/services/pricing/pom.xml +++ b/services/pricing/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 pricing diff --git a/services/proton/pom.xml b/services/proton/pom.xml index 16ebf73b9f87..7214d0eeae7f 100644 --- a/services/proton/pom.xml +++ b/services/proton/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT proton AWS Java SDK :: Services :: Proton diff --git a/services/qapps/pom.xml b/services/qapps/pom.xml index 7125564b78b6..73668ab8f1a5 100644 --- a/services/qapps/pom.xml +++ b/services/qapps/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT qapps AWS Java SDK :: Services :: Q Apps diff --git a/services/qbusiness/pom.xml b/services/qbusiness/pom.xml index fb4aabf36a44..32c081b38fd9 100644 --- a/services/qbusiness/pom.xml +++ b/services/qbusiness/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT qbusiness AWS Java SDK :: Services :: Q Business diff --git a/services/qbusiness/src/main/resources/codegen-resources/paginators-1.json b/services/qbusiness/src/main/resources/codegen-resources/paginators-1.json index 5d1f84682682..5b8489e98502 100644 --- a/services/qbusiness/src/main/resources/codegen-resources/paginators-1.json +++ b/services/qbusiness/src/main/resources/codegen-resources/paginators-1.json @@ -18,6 +18,12 @@ "limit_key": "maxResults", "result_key": "attachments" }, + "ListChatResponseConfigurations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "chatResponseConfigurations" + }, "ListConversations": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/qbusiness/src/main/resources/codegen-resources/service-2.json b/services/qbusiness/src/main/resources/codegen-resources/service-2.json index 26290966631a..ae893a55095e 100644 --- a/services/qbusiness/src/main/resources/codegen-resources/service-2.json +++ b/services/qbusiness/src/main/resources/codegen-resources/service-2.json @@ -192,6 +192,27 @@ "documentation":"

Creates an Amazon Q Business application.

There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are also available in Amazon Q Business Lite. For information on what's included in Amazon Q Business Lite and what's included in Amazon Q Business Pro, see Amazon Q Business tiers. You must use the Amazon Q Business console to assign subscription tiers to users.

An Amazon Q Apps service linked role will be created if it's absent in the Amazon Web Services account when QAppsConfiguration is enabled in the request. For more information, see Using service-linked roles for Q Apps.

When you create an application, Amazon Q Business may securely transmit data for processing from your selected Amazon Web Services region, but within your geography. For more information, see Cross region inference in Amazon Q Business.

", "idempotent":true }, + "CreateChatResponseConfiguration":{ + "name":"CreateChatResponseConfiguration", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/chatresponseconfigurations", + "responseCode":200 + }, + "input":{"shape":"CreateChatResponseConfigurationRequest"}, + "output":{"shape":"CreateChatResponseConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a new chat response configuration for an Amazon Q Business application. This operation establishes a set of parameters that define how the system generates and formats responses to user queries in chat interactions.

", + "idempotent":true + }, "CreateDataAccessor":{ "name":"CreateDataAccessor", "http":{ @@ -415,6 +436,26 @@ "documentation":"

Deletes chat controls configured for an existing Amazon Q Business application.

", "idempotent":true }, + "DeleteChatResponseConfiguration":{ + "name":"DeleteChatResponseConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{applicationId}/chatresponseconfigurations/{chatResponseConfigurationId}", + "responseCode":200 + }, + "input":{"shape":"DeleteChatResponseConfigurationRequest"}, + "output":{"shape":"DeleteChatResponseConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a specified chat response configuration from an Amazon Q Business application.

", + "idempotent":true + }, "DeleteConversation":{ "name":"DeleteConversation", "http":{ @@ -651,6 +692,24 @@ ], "documentation":"

Gets information about chat controls configured for an existing Amazon Q Business application.

" }, + "GetChatResponseConfiguration":{ + "name":"GetChatResponseConfiguration", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/chatresponseconfigurations/{chatResponseConfigurationId}", + "responseCode":200 + }, + "input":{"shape":"GetChatResponseConfigurationRequest"}, + "output":{"shape":"GetChatResponseConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves detailed information about a specific chat response configuration from an Amazon Q Business application. This operation returns the complete configuration settings and metadata.

" + }, "GetDataAccessor":{ "name":"GetDataAccessor", "http":{ @@ -871,6 +930,24 @@ ], "documentation":"

Gets a list of attachments associated with an Amazon Q Business web experience or a list of attachements associated with a specific Amazon Q Business conversation.

" }, + "ListChatResponseConfigurations":{ + "name":"ListChatResponseConfigurations", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/chatresponseconfigurations", + "responseCode":200 + }, + "input":{"shape":"ListChatResponseConfigurationsRequest"}, + "output":{"shape":"ListChatResponseConfigurationsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of all chat response configurations available in a specified Amazon Q Business application. This operation returns summary information about each configuration to help administrators manage and select appropriate response settings.

" + }, "ListConversations":{ "name":"ListConversations", "http":{ @@ -1338,6 +1415,26 @@ "documentation":"

Updates a set of chat controls configured for an existing Amazon Q Business application.

", "idempotent":true }, + "UpdateChatResponseConfiguration":{ + "name":"UpdateChatResponseConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/applications/{applicationId}/chatresponseconfigurations/{chatResponseConfigurationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateChatResponseConfigurationRequest"}, + "output":{"shape":"UpdateChatResponseConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing chat response configuration in an Amazon Q Business application. This operation allows administrators to modify configuration settings, display name, and response parameters to refine how the system generates responses.

", + "idempotent":true + }, "UpdateDataAccessor":{ "name":"UpdateDataAccessor", "http":{ @@ -2714,6 +2811,94 @@ "documentation":"

The streaming output for the Chat API.

", "eventstream":true }, + "ChatResponseConfiguration":{ + "type":"structure", + "required":[ + "chatResponseConfigurationId", + "chatResponseConfigurationArn", + "displayName", + "status" + ], + "members":{ + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

A unique identifier for your chat response configuration settings, used to reference and manage the configuration within the Amazon Q Business service.

" + }, + "chatResponseConfigurationArn":{ + "shape":"ChatResponseConfigurationArn", + "documentation":"

The Amazon Resource Name (ARN) of the chat response configuration, which uniquely identifies the resource across all Amazon Web Services services and accounts.

" + }, + "displayName":{ + "shape":"DisplayName", + "documentation":"

A human-readable name for the chat response configuration, making it easier to identify and manage multiple configurations within an organization.

" + }, + "responseConfigurationSummary":{ + "shape":"ResponseConfigurationSummary", + "documentation":"

A summary of the response configuration settings, providing a concise overview of the key parameters that define how responses are generated and formatted.

" + }, + "status":{ + "shape":"ChatResponseConfigurationStatus", + "documentation":"

The current status of the chat response configuration, indicating whether it is active, pending, or in another state that affects its availability for use in chat interactions.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating when the chat response configuration was initially created, useful for tracking the lifecycle of configuration resources.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating when the chat response configuration was last modified, helping administrators track changes and maintain version awareness.

" + } + }, + "documentation":"

Configuration details that define how Amazon Q Business generates and formats responses to user queries in chat interactions. This configuration allows administrators to customize response characteristics to meet specific organizational needs and communication standards.

" + }, + "ChatResponseConfigurationArn":{ + "type":"string", + "max":1284, + "min":1, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "ChatResponseConfigurationDetail":{ + "type":"structure", + "members":{ + "responseConfigurations":{ + "shape":"ResponseConfigurations", + "documentation":"

A collection of specific response configuration settings that collectively define how responses are generated, formatted, and presented to users in chat interactions.

" + }, + "responseConfigurationSummary":{ + "shape":"String", + "documentation":"

A summary of the response configuration details, providing a concise overview of the key parameters and settings that define the response generation behavior.

" + }, + "status":{ + "shape":"ChatResponseConfigurationStatus", + "documentation":"

The current status of the chat response configuration, indicating whether it is active, pending, or in another state that affects its availability for use.

" + }, + "error":{"shape":"ErrorDetail"}, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating when the detailed chat response configuration was last modified, helping administrators track changes and maintain version awareness.

" + } + }, + "documentation":"

Detailed information about a chat response configuration, including comprehensive settings and parameters that define how Amazon Q Business generates and formats responses.

" + }, + "ChatResponseConfigurationId":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9-]{35}" + }, + "ChatResponseConfigurationStatus":{ + "type":"string", + "enum":[ + "CREATING", + "UPDATING", + "FAILED", + "ACTIVE" + ] + }, + "ChatResponseConfigurations":{ + "type":"list", + "member":{"shape":"ChatResponseConfiguration"} + }, "ChatSyncInput":{ "type":"structure", "required":["applicationId"], @@ -3156,6 +3341,56 @@ } } }, + "CreateChatResponseConfigurationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "displayName", + "responseConfigurations" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of the Amazon Q Business application for which to create the new chat response configuration.

", + "location":"uri", + "locationName":"applicationId" + }, + "displayName":{ + "shape":"DisplayName", + "documentation":"

A human-readable name for the new chat response configuration, making it easier to identify and manage among multiple configurations.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This helps prevent the same configuration from being created multiple times if retries occur.

", + "idempotencyToken":true + }, + "responseConfigurations":{ + "shape":"ResponseConfigurations", + "documentation":"

A collection of response configuration settings that define how Amazon Q Business will generate and format responses to user queries in chat interactions.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A list of key-value pairs to apply as tags to the new chat response configuration, enabling categorization and management of resources across Amazon Web Services services.

" + } + } + }, + "CreateChatResponseConfigurationResponse":{ + "type":"structure", + "required":[ + "chatResponseConfigurationId", + "chatResponseConfigurationArn" + ], + "members":{ + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

The unique identifier assigned to a newly created chat response configuration, used for subsequent operations on this resource.

" + }, + "chatResponseConfigurationArn":{ + "shape":"ChatResponseConfigurationArn", + "documentation":"

The Amazon Resource Name (ARN) of the newly created chat response configuration, which uniquely identifies the resource across all Amazon Web Services services.

" + } + } + }, "CreateDataAccessorRequest":{ "type":"structure", "required":[ @@ -3646,8 +3881,7 @@ "type":"structure", "required":[ "description", - "apiSchemaType", - "apiSchema" + "apiSchemaType" ], "members":{ "description":{ @@ -3991,7 +4225,7 @@ "members":{ "boostingLevel":{ "shape":"DocumentAttributeBoostingLevel", - "documentation":"

Specifies how much a document attribute is boosted.

" + "documentation":"

Specifies the priority tier ranking of boosting applied to document attributes. For version 2, this parameter indicates the relative ranking between boosted fields (ONE being highest priority, TWO being second highest, etc.) and determines the order in which attributes influence document ranking in search results. For version 1, this parameter specifies the boosting intensity. For version 2, boosting intensity (VERY HIGH, HIGH, MEDIUM, LOW, NONE) are not supported. Note that in version 2, you are not allowed to boost on only one field and make this value TWO.

" }, "boostingDurationInSeconds":{ "shape":"BoostingDurationInSeconds", @@ -4073,6 +4307,32 @@ "members":{ } }, + "DeleteChatResponseConfigurationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "chatResponseConfigurationId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of theAmazon Q Business application from which to delete the chat response configuration.

", + "location":"uri", + "locationName":"applicationId" + }, + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

The unique identifier of the chat response configuration to delete from the specified application.

", + "location":"uri", + "locationName":"chatResponseConfigurationId" + } + } + }, + "DeleteChatResponseConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteConversationRequest":{ "type":"structure", "required":[ @@ -4380,6 +4640,11 @@ "members":{ } }, + "DisplayName":{ + "type":"string", + "max":100, + "min":1 + }, "Document":{ "type":"structure", "required":["id"], @@ -4528,22 +4793,22 @@ "members":{ "numberConfiguration":{ "shape":"NumberAttributeBoostingConfiguration", - "documentation":"

Provides information on boosting NUMBER type document attributes.

" + "documentation":"

Provides information on boosting NUMBER type document attributes.

NUMBER attributes are not supported when using NativeIndexConfiguration version 2, which focuses on DATE attributes for recency and STRING attributes for source prioritization.

" }, "stringConfiguration":{ "shape":"StringAttributeBoostingConfiguration", - "documentation":"

Provides information on boosting STRING type document attributes.

" + "documentation":"

Provides information on boosting STRING type document attributes.

Version 2 assigns priority tiers to STRING attributes, establishing clear hierarchical relationships with other boosted attributes.

" }, "dateConfiguration":{ "shape":"DateAttributeBoostingConfiguration", - "documentation":"

Provides information on boosting DATE type document attributes.

" + "documentation":"

Provides information on boosting DATE type document attributes.

Version 2 assigns priority tiers to DATE attributes, establishing clear hierarchical relationships with other boosted attributes.

" }, "stringListConfiguration":{ "shape":"StringListAttributeBoostingConfiguration", - "documentation":"

Provides information on boosting STRING_LIST type document attributes.

" + "documentation":"

Provides information on boosting STRING_LIST type document attributes.

STRING_LIST attributes are not supported when using NativeIndexConfiguration version 2, which focuses on DATE attributes for recency and STRING attributes for source prioritization.

" } }, - "documentation":"

Provides information on boosting supported Amazon Q Business document attribute types. When an end user chat query matches document attributes that have been boosted, Amazon Q Business prioritizes generating responses from content that matches the boosted document attributes.

For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

", + "documentation":"

Provides information on boosting supported Amazon Q Business document attribute types. When an end user chat query matches document attributes that have been boosted, Amazon Q Business prioritizes generating responses from content that matches the boosted document attributes.

In version 2, boosting uses numeric values (ONE, TWO) to indicate priority tiers that establish clear hierarchical relationships between boosted attributes. This allows for more precise control over how different attributes influence search results.

For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

", "union":true }, "DocumentAttributeBoostingLevel":{ @@ -4553,7 +4818,9 @@ "LOW", "MEDIUM", "HIGH", - "VERY_HIGH" + "VERY_HIGH", + "ONE", + "TWO" ] }, "DocumentAttributeBoostingOverrideMap":{ @@ -5074,6 +5341,56 @@ } } }, + "GetChatResponseConfigurationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "chatResponseConfigurationId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of the Amazon Q Business application containing the chat response configuration to retrieve.

", + "location":"uri", + "locationName":"applicationId" + }, + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

The unique identifier of the chat response configuration to retrieve from the specified application.

", + "location":"uri", + "locationName":"chatResponseConfigurationId" + } + } + }, + "GetChatResponseConfigurationResponse":{ + "type":"structure", + "members":{ + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

The unique identifier of the retrieved chat response configuration.

" + }, + "chatResponseConfigurationArn":{ + "shape":"ChatResponseConfigurationArn", + "documentation":"

The Amazon Resource Name (ARN) of the retrieved chat response configuration, which uniquely identifies the resource across all Amazon Web Services services.

" + }, + "displayName":{ + "shape":"DisplayName", + "documentation":"

The human-readable name of the retrieved chat response configuration, making it easier to identify among multiple configurations.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating when the chat response configuration was initially created.

" + }, + "inUseConfiguration":{ + "shape":"ChatResponseConfigurationDetail", + "documentation":"

The currently active configuration settings that are being used to generate responses in the Amazon Q Business application.

" + }, + "lastUpdateConfiguration":{ + "shape":"ChatResponseConfigurationDetail", + "documentation":"

Information about the most recent update to the configuration, including timestamp and modification details.

" + } + } + }, "GetDataAccessorRequest":{ "type":"structure", "required":[ @@ -6019,6 +6336,50 @@ "min":10, "pattern":"arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}" }, + "Instruction":{ + "type":"string", + "max":1000, + "min":5, + "pattern":"[\\s\\S]*" + }, + "InstructionCollection":{ + "type":"structure", + "members":{ + "responseLength":{ + "shape":"Instruction", + "documentation":"

Specifies the desired length of responses generated by Amazon Q Business. This parameter allows administrators to control whether responses are concise and brief or more detailed and comprehensive.

" + }, + "targetAudience":{ + "shape":"Instruction", + "documentation":"

Defines the intended audience for the responses, allowing Amazon Q Business to tailor its language, terminology, and explanations appropriately. This could range from technical experts to general users with varying levels of domain knowledge.

" + }, + "perspective":{ + "shape":"Instruction", + "documentation":"

Determines the point of view or perspective from which Amazon Q Business generates responses, such as first-person, second-person, or third-person perspective, affecting how information is presented to users.

" + }, + "outputStyle":{ + "shape":"Instruction", + "documentation":"

Specifies the formatting and structural style of responses, such as bullet points, paragraphs, step-by-step instructions, or other organizational formats that enhance readability and comprehension.

" + }, + "identity":{ + "shape":"Instruction", + "documentation":"

Defines the persona or identity that Amazon Q Business should adopt when responding to users, allowing for customization of the assistant's character, role, or representation within an organization.

" + }, + "tone":{ + "shape":"Instruction", + "documentation":"

Controls the emotional tone and communication style of responses, such as formal, casual, technical, friendly, or professional, to align with organizational communication standards and user expectations.

" + }, + "customInstructions":{ + "shape":"Instruction", + "documentation":"

Allows administrators to provide specific, custom instructions that guide how Amazon Q Business should respond in particular scenarios or to certain types of queries, enabling fine-grained control over response generation.

" + }, + "examples":{ + "shape":"Instruction", + "documentation":"

Provides sample responses or templates that Amazon Q Business can reference when generating responses, helping to establish consistent patterns and formats for different types of user queries.

" + } + }, + "documentation":"

A set of instructions that define how Amazon Q Business should generate and format responses to user queries. This collection includes parameters for controlling response characteristics such as length, audience targeting, perspective, style, identity, tone, and custom instructions.

" + }, "Integer":{ "type":"integer", "box":true @@ -6155,6 +6516,43 @@ } } }, + "ListChatResponseConfigurationsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of the Amazon Q Business application for which to list available chat response configurations.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of chat response configurations to return in a single response. This parameter helps control pagination of results when many configurations exist.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token used to retrieve the next set of results when the number of configurations exceeds the specified maxResults value.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListChatResponseConfigurationsResponse":{ + "type":"structure", + "members":{ + "chatResponseConfigurations":{ + "shape":"ChatResponseConfigurations", + "documentation":"

A list of chat response configuration summaries, each containing key information about an available configuration in the specified application.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that can be used in a subsequent request to retrieve additional chat response configurations if the results were truncated due to the maxResults parameter.

" + } + } + }, "ListConversationsRequest":{ "type":"structure", "required":["applicationId"], @@ -7199,6 +7597,10 @@ "shape":"IndexId", "documentation":"

The identifier for the Amazon Q Business index.

" }, + "version":{ + "shape":"Long", + "documentation":"

A read-only field that specifies the version of the NativeIndexConfiguration.

Amazon Q Business introduces enhanced document retrieval capabilities in version 2 of NativeIndexConfiguration, focusing on streamlined metadata boosting that prioritizes recency and source relevance to deliver more accurate responses to your queries. Version 2 has the following differences from version 1:

  • Version 2 supports a single Date field (created_at OR last_updated_at) for recency boosting

  • Version 2 supports a single String field with an ordered list of up to 5 values

  • Version 2 introduces number-based boost levels (ONE, TWO) alongside the text-based levels

  • Version 2 allows specifying prioritization between Date and String fields

  • Version 2 maintains backward compatibility with existing configurations

" + }, "boostingOverride":{ "shape":"DocumentAttributeBoostingOverrideMap", "documentation":"

Overrides the default boosts applied by Amazon Q Business to supported document attribute data types.

" @@ -7228,14 +7630,14 @@ "members":{ "boostingLevel":{ "shape":"DocumentAttributeBoostingLevel", - "documentation":"

Specifies the duration, in seconds, of a boost applies to a NUMBER type document attribute.

" + "documentation":"

Specifies the priority of boosted document attributes in relation to other boosted attributes. This parameter determines how strongly the attribute influences document ranking in search results. NUMBER attributes can serve as additional boosting factors when needed, but are not supported when using NativeIndexConfiguration version 2.

" }, "boostingType":{ "shape":"NumberAttributeBoostingType", - "documentation":"

Specifies how much a document attribute is boosted.

" + "documentation":"

Specifies whether higher or lower numeric values should be prioritized when boosting. Valid values are ASCENDING (higher numbers are more important) and DESCENDING (lower numbers are more important).

" } }, - "documentation":"

Provides information on boosting NUMBER type document attributes.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

" + "documentation":"

Provides information on boosting NUMBER type document attributes.

In the current boosting implementation, boosting focuses primarily on DATE attributes for recency and STRING attributes for source prioritization. NUMBER attributes can serve as additional boosting factors when needed, but are not supported when using NativeIndexConfiguration version 2.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

" }, "NumberAttributeBoostingType":{ "type":"string", @@ -7811,6 +8213,32 @@ }, "exception":true }, + "ResponseConfiguration":{ + "type":"structure", + "members":{ + "instructionCollection":{ + "shape":"InstructionCollection", + "documentation":"

A collection of instructions that guide how Amazon Q Business generates responses, including parameters for response length, target audience, perspective, output style, identity, tone, and custom instructions.

" + } + }, + "documentation":"

Configuration settings to define how Amazon Q Business generates and formats responses to user queries. This includes customization options for response style, tone, length, and other characteristics.

" + }, + "ResponseConfigurationSummary":{ + "type":"string", + "max":1000, + "min":1 + }, + "ResponseConfigurationType":{ + "type":"string", + "enum":["ALL"] + }, + "ResponseConfigurations":{ + "type":"map", + "key":{"shape":"ResponseConfigurationType"}, + "value":{"shape":"ResponseConfiguration"}, + "max":1, + "min":1 + }, "ResponseScope":{ "type":"string", "enum":[ @@ -8327,11 +8755,11 @@ "members":{ "boostingLevel":{ "shape":"DocumentAttributeBoostingLevel", - "documentation":"

Specifies how much a document attribute is boosted.

" + "documentation":"

Specifies the priority tier ranking of boosting applied to document attributes. For version 2, this parameter indicates the relative ranking between boosted fields (ONE being highest priority, TWO being second highest, etc.) and determines the order in which attributes influence document ranking in search results. For version 1, this parameter specifies the boosting intensity. For version 2, boosting intensity (VERY HIGH, HIGH, MEDIUM, LOW, NONE) are not supported. Note that in version 2, you are not allowed to boost on only one field and make this value TWO.

" }, "attributeValueBoosting":{ "shape":"StringAttributeValueBoosting", - "documentation":"

Specifies specific values of a STRING type document attribute being boosted.

" + "documentation":"

Specifies specific values of a STRING type document attribute being boosted. When using NativeIndexConfiguration version 2, you can specify up to five values in order of priority.

" } }, "documentation":"

Provides information on boosting STRING type document attributes.

For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

" @@ -8349,7 +8777,12 @@ "LOW", "MEDIUM", "HIGH", - "VERY_HIGH" + "VERY_HIGH", + "ONE", + "TWO", + "THREE", + "FOUR", + "FIVE" ] }, "StringListAttributeBoostingConfiguration":{ @@ -8358,10 +8791,10 @@ "members":{ "boostingLevel":{ "shape":"DocumentAttributeBoostingLevel", - "documentation":"

Specifies how much a document attribute is boosted.

" + "documentation":"

Specifies the priority of boosted document attributes in relation to other boosted attributes. This parameter determines how strongly the attribute influences document ranking in search results. STRING_LIST attributes can serve as additional boosting factors when needed, but are not supported when using NativeIndexConfiguration version 2.

" } }, - "documentation":"

Provides information on boosting STRING_LIST type document attributes.

For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

" + "documentation":"

Provides information on boosting STRING_LIST type document attributes.

In the current boosting implementation, boosting focuses primarily on DATE attributes for recency and STRING attributes for source prioritization. STRING_LIST attributes can serve as additional boosting factors when needed, but are not supported when using NativeIndexConfiguration version 2.

For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

For more information on how boosting document attributes work in Amazon Q Business, see Boosting using document attributes.

" }, "SubnetId":{ "type":"string", @@ -8816,6 +9249,46 @@ "members":{ } }, + "UpdateChatResponseConfigurationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "chatResponseConfigurationId", + "responseConfigurations" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of the Amazon Q Business application containing the chat response configuration to update.

", + "location":"uri", + "locationName":"applicationId" + }, + "chatResponseConfigurationId":{ + "shape":"ChatResponseConfigurationId", + "documentation":"

The unique identifier of the chat response configuration to update within the specified application.

", + "location":"uri", + "locationName":"chatResponseConfigurationId" + }, + "displayName":{ + "shape":"DisplayName", + "documentation":"

The new human-readable name to assign to the chat response configuration, making it easier to identify among multiple configurations.

" + }, + "responseConfigurations":{ + "shape":"ResponseConfigurations", + "documentation":"

The updated collection of response configuration settings that define how Amazon Q Business generates and formats responses to user queries.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This helps prevent the same update from being processed multiple times if retries occur.

", + "idempotencyToken":true + } + } + }, + "UpdateChatResponseConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateDataAccessorRequest":{ "type":"structure", "required":[ diff --git a/services/qconnect/pom.xml b/services/qconnect/pom.xml index d0626045b8b4..0c8e1466405b 100644 --- a/services/qconnect/pom.xml +++ b/services/qconnect/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT qconnect AWS Java SDK :: Services :: Q Connect diff --git a/services/qldb/pom.xml b/services/qldb/pom.xml index 0e761351c519..22de73a69d75 100644 --- a/services/qldb/pom.xml +++ b/services/qldb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT qldb AWS Java SDK :: Services :: QLDB diff --git a/services/qldbsession/pom.xml b/services/qldbsession/pom.xml index 4160178a05c5..71697541c48c 100644 --- a/services/qldbsession/pom.xml +++ b/services/qldbsession/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT qldbsession AWS Java SDK :: Services :: QLDB Session diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml index 970ec7adda11..cdb8f8c2d5c9 100644 --- a/services/quicksight/pom.xml +++ b/services/quicksight/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT quicksight AWS Java SDK :: Services :: QuickSight diff --git a/services/quicksight/src/main/resources/codegen-resources/service-2.json b/services/quicksight/src/main/resources/codegen-resources/service-2.json index 169a23594cc6..16a29be392b3 100644 --- a/services/quicksight/src/main/resources/codegen-resources/service-2.json +++ b/services/quicksight/src/main/resources/codegen-resources/service-2.json @@ -4209,8 +4209,7 @@ }, "AllSheetsFilterScopeConfiguration":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

An empty object that represents that the AllSheets option is the chosen value for the FilterScopeConfiguration parameter. This structure applies the filter to all visuals on all sheets of an Analysis, Dashboard, or Template.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" }, "AltText":{ @@ -6118,6 +6117,10 @@ "RoleArn":{ "shape":"RoleArn", "documentation":"

Use the RoleArn structure to override an account-wide role for a specific Athena data source. For example, say an account administrator has turned off all Athena access with an account-wide role. The administrator can then use RoleArn to bypass the account-wide role and allow Athena access for the single Athena data source that is specified in the structure, even if the account-wide role forbidding Athena access is still active.

" + }, + "IdentityCenterConfiguration":{ + "shape":"IdentityCenterConfiguration", + "documentation":"

An optional parameter that configures IAM Identity Center authentication to grant Amazon QuickSight access to your workgroup.

This parameter can only be specified if your Amazon QuickSight account is configured with IAM Identity Center.

" } }, "documentation":"

Parameters for Amazon Athena.

" @@ -6286,8 +6289,7 @@ }, "AxisDisplayDataDrivenRange":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The options that are saved for future extension.

" }, "AxisDisplayMinMaxRange":{ @@ -7450,11 +7452,19 @@ "members":{ "ExportToCsv":{ "shape":"CapabilityState", - "documentation":"

The ability to export to CSV files.

" + "documentation":"

The ability to export to CSV files from the UI.

" }, "ExportToExcel":{ "shape":"CapabilityState", - "documentation":"

The ability to export to Excel files.

" + "documentation":"

The ability to export to Excel files from the UI.

" + }, + "ExportToPdf":{ + "shape":"CapabilityState", + "documentation":"

The ability to export to PDF files from the UI.

" + }, + "PrintReports":{ + "shape":"CapabilityState", + "documentation":"

The ability to print reports.

" }, "CreateAndUpdateThemes":{ "shape":"CapabilityState", @@ -7515,6 +7525,22 @@ "CreateSPICEDataset":{ "shape":"CapabilityState", "documentation":"

The ability to create a SPICE dataset.

" + }, + "ExportToPdfInScheduledReports":{ + "shape":"CapabilityState", + "documentation":"

The ability to export to PDF files in scheduled email reports.

" + }, + "ExportToCsvInScheduledReports":{ + "shape":"CapabilityState", + "documentation":"

The ability to export to CSV files in scheduled email reports.

" + }, + "ExportToExcelInScheduledReports":{ + "shape":"CapabilityState", + "documentation":"

The ability to export to Excel files in scheduled email reports.

" + }, + "IncludeContentInScheduledReportsEmail":{ + "shape":"CapabilityState", + "documentation":"

The ability to include content in scheduled email reports.

" } }, "documentation":"

A set of actions that correspond to Amazon QuickSight permissions.

" @@ -11652,7 +11678,7 @@ }, "DataSetId":{ "shape":"ResourceId", - "documentation":"

The ID of the dataset.

" + "documentation":"

The ID of the dataset. Limited to 96 characters.

" }, "Name":{ "shape":"ResourceName", @@ -30041,7 +30067,8 @@ "type":"string", "enum":[ "REDSHIFT", - "QBUSINESS" + "QBUSINESS", + "ATHENA" ] }, "SessionLifetimeInMinutes":{ @@ -30515,6 +30542,10 @@ "Content":{ "shape":"SheetTextBoxContent", "documentation":"

The content that is displayed in the text box.

" + }, + "Interactions":{ + "shape":"TextBoxInteractionOptions", + "documentation":"

The general textbox interactions setup for a textbox.

" } }, "documentation":"

A text box.

" @@ -32802,6 +32833,26 @@ }, "documentation":"

The display options of a control.

" }, + "TextBoxInteractionOptions":{ + "type":"structure", + "members":{ + "TextBoxMenuOption":{ + "shape":"TextBoxMenuOption", + "documentation":"

The menu options for the textbox.

" + } + }, + "documentation":"

The general textbox interactions setup for textbox publish options.

" + }, + "TextBoxMenuOption":{ + "type":"structure", + "members":{ + "AvailabilityStatus":{ + "shape":"DashboardBehavior", + "documentation":"

The availability status of the textbox menu. If the value of this property is set to ENABLED, dashboard readers can interact with the textbox menu.

" + } + }, + "documentation":"

The menu options for the interactions of a textbox.

" + }, "TextConditionalFormat":{ "type":"structure", "members":{ diff --git a/services/ram/pom.xml b/services/ram/pom.xml index 4a6363d9c431..2484ed833603 100644 --- a/services/ram/pom.xml +++ b/services/ram/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ram AWS Java SDK :: Services :: RAM diff --git a/services/rbin/pom.xml b/services/rbin/pom.xml index 79e28edd3b60..f057530ed5ce 100644 --- a/services/rbin/pom.xml +++ b/services/rbin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rbin AWS Java SDK :: Services :: Rbin diff --git a/services/rds/pom.xml b/services/rds/pom.xml index a0af62fa06ed..bf06d885ed30 100644 --- a/services/rds/pom.xml +++ b/services/rds/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rds AWS Java SDK :: Services :: Amazon RDS diff --git a/services/rds/src/main/resources/codegen-resources/service-2.json b/services/rds/src/main/resources/codegen-resources/service-2.json index b07a2708c750..ef0963fa7819 100644 --- a/services/rds/src/main/resources/codegen-resources/service-2.json +++ b/services/rds/src/main/resources/codegen-resources/service-2.json @@ -4522,7 +4522,7 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

Specifies whether the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)

  • RDS Custom

" + "documentation":"

Specifies whether the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

This setting doesn't apply to Amazon Aurora because the DB instance Availability Zones (AZs) are managed by the DB cluster.

" }, "EngineVersion":{ "shape":"String", diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml index 107cc5d030a3..e1b58e24a112 100644 --- a/services/rdsdata/pom.xml +++ b/services/rdsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rdsdata AWS Java SDK :: Services :: RDS Data diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml index cc7a9b09c898..5bfbc691680e 100644 --- a/services/redshift/pom.xml +++ b/services/redshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT redshift AWS Java SDK :: Services :: Amazon Redshift diff --git a/services/redshiftdata/pom.xml b/services/redshiftdata/pom.xml index 3e2ee3f8d925..b852f344593c 100644 --- a/services/redshiftdata/pom.xml +++ b/services/redshiftdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT redshiftdata AWS Java SDK :: Services :: Redshift Data diff --git a/services/redshiftserverless/pom.xml b/services/redshiftserverless/pom.xml index 72b4fae9c9d0..2143d8577b13 100644 --- a/services/redshiftserverless/pom.xml +++ b/services/redshiftserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT redshiftserverless AWS Java SDK :: Services :: Redshift Serverless diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml index 6746cd87cee1..0b35651c736e 100644 --- a/services/rekognition/pom.xml +++ b/services/rekognition/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rekognition AWS Java SDK :: Services :: Amazon Rekognition diff --git a/services/repostspace/pom.xml b/services/repostspace/pom.xml index 3cf18a401c6d..8a742558fe87 100644 --- a/services/repostspace/pom.xml +++ b/services/repostspace/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT repostspace AWS Java SDK :: Services :: Repostspace diff --git a/services/resiliencehub/pom.xml b/services/resiliencehub/pom.xml index 740bbe2448d2..0d1f4041719f 100644 --- a/services/resiliencehub/pom.xml +++ b/services/resiliencehub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT resiliencehub AWS Java SDK :: Services :: Resiliencehub diff --git a/services/resourceexplorer2/pom.xml b/services/resourceexplorer2/pom.xml index d1e0c3e11917..938552b4e29d 100644 --- a/services/resourceexplorer2/pom.xml +++ b/services/resourceexplorer2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT resourceexplorer2 AWS Java SDK :: Services :: Resource Explorer 2 diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml index 1974cbcd8fd7..bc2b6955e662 100644 --- a/services/resourcegroups/pom.xml +++ b/services/resourcegroups/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 resourcegroups diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml index 019e65067a9a..0209c3cf394d 100644 --- a/services/resourcegroupstaggingapi/pom.xml +++ b/services/resourcegroupstaggingapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT resourcegroupstaggingapi AWS Java SDK :: Services :: AWS Resource Groups Tagging API diff --git a/services/robomaker/pom.xml b/services/robomaker/pom.xml index 1e6c7cc81fb8..6bf2b0c60262 100644 --- a/services/robomaker/pom.xml +++ b/services/robomaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT robomaker AWS Java SDK :: Services :: RoboMaker diff --git a/services/rolesanywhere/pom.xml b/services/rolesanywhere/pom.xml index a2e98d279ce7..9764edea6cfd 100644 --- a/services/rolesanywhere/pom.xml +++ b/services/rolesanywhere/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rolesanywhere AWS Java SDK :: Services :: Roles Anywhere diff --git a/services/route53/pom.xml b/services/route53/pom.xml index 0a2f836756e1..70478705c218 100644 --- a/services/route53/pom.xml +++ b/services/route53/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53 AWS Java SDK :: Services :: Amazon Route53 diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml index 494bbe57ff9f..6cbf592408fe 100644 --- a/services/route53domains/pom.xml +++ b/services/route53domains/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53domains AWS Java SDK :: Services :: Amazon Route53 Domains diff --git a/services/route53profiles/pom.xml b/services/route53profiles/pom.xml index d3ec4516e540..85b9d12e8f23 100644 --- a/services/route53profiles/pom.xml +++ b/services/route53profiles/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53profiles AWS Java SDK :: Services :: Route53 Profiles diff --git a/services/route53recoverycluster/pom.xml b/services/route53recoverycluster/pom.xml index e2b1074440f1..7ca65cfeea21 100644 --- a/services/route53recoverycluster/pom.xml +++ b/services/route53recoverycluster/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53recoverycluster AWS Java SDK :: Services :: Route53 Recovery Cluster diff --git a/services/route53recoverycontrolconfig/pom.xml b/services/route53recoverycontrolconfig/pom.xml index 22c95e9db3de..6c54a562a936 100644 --- a/services/route53recoverycontrolconfig/pom.xml +++ b/services/route53recoverycontrolconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53recoverycontrolconfig AWS Java SDK :: Services :: Route53 Recovery Control Config diff --git a/services/route53recoveryreadiness/pom.xml b/services/route53recoveryreadiness/pom.xml index be35876c21c5..4500241a3116 100644 --- a/services/route53recoveryreadiness/pom.xml +++ b/services/route53recoveryreadiness/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53recoveryreadiness AWS Java SDK :: Services :: Route53 Recovery Readiness diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml index 73a835119004..fad23ac6c084 100644 --- a/services/route53resolver/pom.xml +++ b/services/route53resolver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT route53resolver AWS Java SDK :: Services :: Route53Resolver diff --git a/services/rum/pom.xml b/services/rum/pom.xml index a3c5f554b4ad..452e1af15bd8 100644 --- a/services/rum/pom.xml +++ b/services/rum/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT rum AWS Java SDK :: Services :: RUM diff --git a/services/s3/pom.xml b/services/s3/pom.xml index dbb6a5b00d7c..4ad75975f8f6 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT s3 AWS Java SDK :: Services :: Amazon S3 diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml index 7cd8033bd937..1cae5efb9fe5 100644 --- a/services/s3control/pom.xml +++ b/services/s3control/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT s3control AWS Java SDK :: Services :: Amazon S3 Control diff --git a/services/s3outposts/pom.xml b/services/s3outposts/pom.xml index cf72954512d8..4105920f2259 100644 --- a/services/s3outposts/pom.xml +++ b/services/s3outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT s3outposts AWS Java SDK :: Services :: S3 Outposts diff --git a/services/s3tables/pom.xml b/services/s3tables/pom.xml index 862ee2205296..98d64b6c316a 100644 --- a/services/s3tables/pom.xml +++ b/services/s3tables/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT s3tables AWS Java SDK :: Services :: S3 Tables diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml index 0145b0c1c0a2..f6a8abd5faa3 100644 --- a/services/sagemaker/pom.xml +++ b/services/sagemaker/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 sagemaker diff --git a/services/sagemaker/src/main/resources/codegen-resources/service-2.json b/services/sagemaker/src/main/resources/codegen-resources/service-2.json index ff6e83029ce3..f08717507018 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemaker/src/main/resources/codegen-resources/service-2.json @@ -9707,10 +9707,7 @@ }, "CreateClusterRequest":{ "type":"structure", - "required":[ - "ClusterName", - "InstanceGroups" - ], + "required":["ClusterName"], "members":{ "ClusterName":{ "shape":"ClusterName", @@ -13421,8 +13418,7 @@ }, "DeleteFlowDefinitionResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteHubContentReferenceRequest":{ "type":"structure", @@ -13495,8 +13491,7 @@ }, "DeleteHumanTaskUiResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteHyperParameterTuningJobRequest":{ "type":"structure", @@ -13520,8 +13515,7 @@ }, "DeleteImageResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteImageVersionRequest":{ "type":"structure", @@ -13543,8 +13537,7 @@ }, "DeleteImageVersionResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteInferenceComponentInput":{ "type":"structure", @@ -13822,8 +13815,7 @@ }, "DeleteTagsOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteTrialComponentRequest":{ "type":"structure", @@ -13892,8 +13884,7 @@ }, "DeleteWorkforceResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteWorkteamRequest":{ "type":"structure", @@ -19180,13 +19171,11 @@ "DisableProfiler":{"type":"boolean"}, "DisableSagemakerServicecatalogPortfolioInput":{ "type":"structure", - "members":{ - } + "members":{} }, "DisableSagemakerServicecatalogPortfolioOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "DisassociateAdditionalCodeRepositories":{"type":"boolean"}, "DisassociateDefaultCodeRepository":{"type":"boolean"}, @@ -20033,13 +20022,11 @@ }, "EnableSagemakerServicecatalogPortfolioInput":{ "type":"structure", - "members":{ - } + "members":{} }, "EnableSagemakerServicecatalogPortfolioOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "EnableSessionTagChaining":{ "type":"boolean", @@ -21556,8 +21543,7 @@ }, "GetSagemakerServicecatalogPortfolioStatusInput":{ "type":"structure", - "members":{ - } + "members":{} }, "GetSagemakerServicecatalogPortfolioStatusOutput":{ "type":"structure", @@ -25649,7 +25635,7 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set the maximum number of SageMaker HyperPod clusters to list.

" + "documentation":"

Specifies the maximum number of clusters to evaluate for the operation (not necessarily the number of matching items). After SageMaker processes the number of clusters up to MaxResults, it stops the operation and returns the matching clusters up to that point. If all the matching clusters are desired, SageMaker will go through all the clusters until NextToken is empty.

" }, "NameContains":{ "shape":"NameContains", @@ -31857,8 +31843,7 @@ }, "MonitoringParquetDatasetFormat":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

Represents the Parquet dataset format used when running a monitoring job.

" }, "MonitoringProblemType":{ @@ -41700,10 +41685,7 @@ }, "UpdateClusterRequest":{ "type":"structure", - "required":[ - "ClusterName", - "InstanceGroups" - ], + "required":["ClusterName"], "members":{ "ClusterName":{ "shape":"ClusterNameOrArn", @@ -42794,13 +42776,11 @@ }, "UpdateNotebookInstanceLifecycleConfigOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateNotebookInstanceOutput":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdatePartnerAppRequest":{ "type":"structure", diff --git a/services/sagemakera2iruntime/pom.xml b/services/sagemakera2iruntime/pom.xml index 2bdd767bd14b..82068dd700a7 100644 --- a/services/sagemakera2iruntime/pom.xml +++ b/services/sagemakera2iruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakera2iruntime AWS Java SDK :: Services :: SageMaker A2I Runtime diff --git a/services/sagemakeredge/pom.xml b/services/sagemakeredge/pom.xml index 4d3356b4a2e1..0f65f530944b 100644 --- a/services/sagemakeredge/pom.xml +++ b/services/sagemakeredge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakeredge AWS Java SDK :: Services :: Sagemaker Edge diff --git a/services/sagemakerfeaturestoreruntime/pom.xml b/services/sagemakerfeaturestoreruntime/pom.xml index f9f1287795a0..a30776a25f38 100644 --- a/services/sagemakerfeaturestoreruntime/pom.xml +++ b/services/sagemakerfeaturestoreruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakerfeaturestoreruntime AWS Java SDK :: Services :: Sage Maker Feature Store Runtime diff --git a/services/sagemakergeospatial/pom.xml b/services/sagemakergeospatial/pom.xml index f2f7be4aaaaa..7f831454a9cd 100644 --- a/services/sagemakergeospatial/pom.xml +++ b/services/sagemakergeospatial/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakergeospatial AWS Java SDK :: Services :: Sage Maker Geospatial diff --git a/services/sagemakermetrics/pom.xml b/services/sagemakermetrics/pom.xml index 9cc357e1b138..45a673acc0dd 100644 --- a/services/sagemakermetrics/pom.xml +++ b/services/sagemakermetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakermetrics AWS Java SDK :: Services :: Sage Maker Metrics diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml index 832f89e98420..6a5a9ebab99e 100644 --- a/services/sagemakerruntime/pom.xml +++ b/services/sagemakerruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sagemakerruntime AWS Java SDK :: Services :: SageMaker Runtime diff --git a/services/savingsplans/pom.xml b/services/savingsplans/pom.xml index da66c9a402d5..56dc536a4ad5 100644 --- a/services/savingsplans/pom.xml +++ b/services/savingsplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT savingsplans AWS Java SDK :: Services :: Savingsplans diff --git a/services/scheduler/pom.xml b/services/scheduler/pom.xml index 21183ce2e624..d319a9eb7f93 100644 --- a/services/scheduler/pom.xml +++ b/services/scheduler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT scheduler AWS Java SDK :: Services :: Scheduler diff --git a/services/schemas/pom.xml b/services/schemas/pom.xml index f628c47d3d6e..0a63693fd4ba 100644 --- a/services/schemas/pom.xml +++ b/services/schemas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT schemas AWS Java SDK :: Services :: Schemas diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml index 3b95366082b7..fea68f78f96b 100644 --- a/services/secretsmanager/pom.xml +++ b/services/secretsmanager/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT secretsmanager AWS Java SDK :: Services :: AWS Secrets Manager diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml index b5e7ca000606..e687e39d282c 100644 --- a/services/securityhub/pom.xml +++ b/services/securityhub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT securityhub AWS Java SDK :: Services :: SecurityHub diff --git a/services/securityir/pom.xml b/services/securityir/pom.xml index 3b6dab9102e7..b3071fd50063 100644 --- a/services/securityir/pom.xml +++ b/services/securityir/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT securityir AWS Java SDK :: Services :: Security IR diff --git a/services/securitylake/pom.xml b/services/securitylake/pom.xml index 55935f80cbf9..2141a1ae0317 100644 --- a/services/securitylake/pom.xml +++ b/services/securitylake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT securitylake AWS Java SDK :: Services :: Security Lake diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml index 1d6295abab79..1219f6b8f7b3 100644 --- a/services/serverlessapplicationrepository/pom.xml +++ b/services/serverlessapplicationrepository/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 serverlessapplicationrepository diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml index 0b10e04d6f98..b23164cf5bf3 100644 --- a/services/servicecatalog/pom.xml +++ b/services/servicecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT servicecatalog AWS Java SDK :: Services :: AWS Service Catalog diff --git a/services/servicecatalogappregistry/pom.xml b/services/servicecatalogappregistry/pom.xml index 7b5ec8ea5632..bd5f5e1d3429 100644 --- a/services/servicecatalogappregistry/pom.xml +++ b/services/servicecatalogappregistry/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT servicecatalogappregistry AWS Java SDK :: Services :: Service Catalog App Registry diff --git a/services/servicediscovery/pom.xml b/services/servicediscovery/pom.xml index 1e352e7927ea..3b33f958d310 100644 --- a/services/servicediscovery/pom.xml +++ b/services/servicediscovery/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 servicediscovery diff --git a/services/servicequotas/pom.xml b/services/servicequotas/pom.xml index a3630f4f808a..9021f7377639 100644 --- a/services/servicequotas/pom.xml +++ b/services/servicequotas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT servicequotas AWS Java SDK :: Services :: Service Quotas diff --git a/services/ses/pom.xml b/services/ses/pom.xml index 7946fb282fbc..56c749ad60a9 100644 --- a/services/ses/pom.xml +++ b/services/ses/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ses AWS Java SDK :: Services :: Amazon SES diff --git a/services/sesv2/pom.xml b/services/sesv2/pom.xml index 4bee594c7cfd..92f3b6a74ffd 100644 --- a/services/sesv2/pom.xml +++ b/services/sesv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sesv2 AWS Java SDK :: Services :: SESv2 diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml index 9187501947a0..ec591cf61cee 100644 --- a/services/sfn/pom.xml +++ b/services/sfn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sfn AWS Java SDK :: Services :: AWS Step Functions diff --git a/services/shield/pom.xml b/services/shield/pom.xml index 67fa73f0cbb7..49994df2ad6f 100644 --- a/services/shield/pom.xml +++ b/services/shield/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT shield AWS Java SDK :: Services :: AWS Shield diff --git a/services/signer/pom.xml b/services/signer/pom.xml index 0c6eea4b40c3..319a9f3ae4fa 100644 --- a/services/signer/pom.xml +++ b/services/signer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT signer AWS Java SDK :: Services :: Signer diff --git a/services/simspaceweaver/pom.xml b/services/simspaceweaver/pom.xml index 6b1e2559166f..2214b9132aee 100644 --- a/services/simspaceweaver/pom.xml +++ b/services/simspaceweaver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT simspaceweaver AWS Java SDK :: Services :: Sim Space Weaver diff --git a/services/sms/pom.xml b/services/sms/pom.xml index a0a7837bca4a..eb3d5d4421e9 100644 --- a/services/sms/pom.xml +++ b/services/sms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sms AWS Java SDK :: Services :: AWS Server Migration diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml index 839856491477..3fbab7e4eac2 100644 --- a/services/snowball/pom.xml +++ b/services/snowball/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT snowball AWS Java SDK :: Services :: Amazon Snowball diff --git a/services/snowdevicemanagement/pom.xml b/services/snowdevicemanagement/pom.xml index c52a99d9c66d..1161f76ee1e9 100644 --- a/services/snowdevicemanagement/pom.xml +++ b/services/snowdevicemanagement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT snowdevicemanagement AWS Java SDK :: Services :: Snow Device Management diff --git a/services/sns/pom.xml b/services/sns/pom.xml index ce927aed4cc6..3a3e69de400c 100644 --- a/services/sns/pom.xml +++ b/services/sns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sns AWS Java SDK :: Services :: Amazon SNS diff --git a/services/socialmessaging/pom.xml b/services/socialmessaging/pom.xml index 2113a4e8f0b5..c7b18018bdfc 100644 --- a/services/socialmessaging/pom.xml +++ b/services/socialmessaging/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT socialmessaging AWS Java SDK :: Services :: Social Messaging diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml index dbd524bb3752..360082ae17ad 100644 --- a/services/sqs/pom.xml +++ b/services/sqs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sqs AWS Java SDK :: Services :: Amazon SQS diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml index 9615dcfad7d4..cff3cc06a9a9 100644 --- a/services/ssm/pom.xml +++ b/services/ssm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssm AWS Java SDK :: Services :: AWS Simple Systems Management (SSM) diff --git a/services/ssm/src/main/resources/codegen-resources/service-2.json b/services/ssm/src/main/resources/codegen-resources/service-2.json index 3192fe96beb8..f08a434fc821 100644 --- a/services/ssm/src/main/resources/codegen-resources/service-2.json +++ b/services/ssm/src/main/resources/codegen-resources/service-2.json @@ -157,7 +157,8 @@ {"shape":"InternalServerError"}, {"shape":"InvalidDocumentContent"}, {"shape":"DocumentLimitExceeded"}, - {"shape":"InvalidDocumentSchemaVersion"} + {"shape":"InvalidDocumentSchemaVersion"}, + {"shape":"TooManyUpdates"} ], "documentation":"

Creates a Amazon Web Services Systems Manager (SSM document). An SSM document defines the actions that Systems Manager performs on your managed nodes. For more information about SSM documents, including information about supported schemas, features, and syntax, see Amazon Web Services Systems Manager Documents in the Amazon Web Services Systems Manager User Guide.

" }, @@ -286,7 +287,8 @@ {"shape":"InternalServerError"}, {"shape":"InvalidDocument"}, {"shape":"InvalidDocumentOperation"}, - {"shape":"AssociatedInstances"} + {"shape":"AssociatedInstances"}, + {"shape":"TooManyUpdates"} ], "documentation":"

Deletes the Amazon Web Services Systems Manager document (SSM document) and all managed node associations to the document.

Before you delete the document, we recommend that you use DeleteAssociation to disassociate all managed nodes that are associated with the document.

" }, @@ -2184,7 +2186,8 @@ {"shape":"InternalServerError"}, {"shape":"InvalidDocument"}, {"shape":"InvalidDocumentOperation"}, - {"shape":"InvalidDocumentVersion"} + {"shape":"InvalidDocumentVersion"}, + {"shape":"TooManyUpdates"} ], "documentation":"

Updates information related to approval reviews for a specific version of a change template in Change Manager.

" }, @@ -2358,6 +2361,13 @@ "Pending" ] }, + "AccessType":{ + "type":"string", + "enum":[ + "Standard", + "JustInTime" + ] + }, "Account":{"type":"string"}, "AccountId":{ "type":"string", @@ -2481,8 +2491,7 @@ }, "AddTagsToResourceResult":{ "type":"structure", - "members":{ - } + "members":{} }, "AgentErrorCode":{ "type":"string", @@ -2621,8 +2630,7 @@ }, "AssociatedInstances":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

You must disassociate a document from all managed nodes before you can delete it.

", "exception":true }, @@ -2689,8 +2697,7 @@ }, "AssociationAlreadyExists":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The specified association already exists.

", "exception":true }, @@ -3078,8 +3085,7 @@ }, "AssociationLimitExceeded":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

You can have at most 2,000 active associations.

", "exception":true }, @@ -3982,8 +3988,7 @@ }, "CancelCommandResult":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

Whether or not the command was successfully canceled. There is no guarantee that a request can be canceled.

" }, "CancelMaintenanceWindowExecutionRequest":{ @@ -5279,8 +5284,7 @@ }, "CreateResourceDataSyncResult":{ "type":"structure", - "members":{ - } + "members":{} }, "CreatedDate":{"type":"timestamp"}, "Credentials":{ @@ -5339,8 +5343,7 @@ }, "DeleteActivationResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteAssociationRequest":{ "type":"structure", @@ -5361,8 +5364,7 @@ }, "DeleteAssociationResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteDocumentRequest":{ "type":"structure", @@ -5388,8 +5390,7 @@ }, "DeleteDocumentResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteInventoryRequest":{ "type":"structure", @@ -5462,8 +5463,7 @@ }, "DeleteOpsItemResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteOpsMetadataRequest":{ "type":"structure", @@ -5477,8 +5477,7 @@ }, "DeleteOpsMetadataResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteParameterRequest":{ "type":"structure", @@ -5492,8 +5491,7 @@ }, "DeleteParameterResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteParametersRequest":{ "type":"structure", @@ -5553,8 +5551,7 @@ }, "DeleteResourceDataSyncResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeleteResourcePolicyRequest":{ "type":"structure", @@ -5580,8 +5577,7 @@ }, "DeleteResourcePolicyResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DeliveryTimedOutCount":{"type":"integer"}, "DeregisterManagedInstanceRequest":{ @@ -5596,8 +5592,7 @@ }, "DeregisterManagedInstanceResult":{ "type":"structure", - "members":{ - } + "members":{} }, "DeregisterPatchBaselineForPatchGroupRequest":{ "type":"structure", @@ -5972,7 +5967,7 @@ "members":{ "Name":{ "shape":"DocumentName", - "documentation":"

The name of the document for which you are the owner.

" + "documentation":"

The name of the document for which you are the owner.

" }, "PermissionType":{ "shape":"DocumentPermissionType", @@ -5994,7 +5989,7 @@ "members":{ "AccountIds":{ "shape":"AccountIdList", - "documentation":"

The account IDs that have permission to use this document. The ID can be either an Amazon Web Services account or All.

" + "documentation":"

The account IDs that have permission to use this document. The ID can be either an Amazon Web Services account number or all.

" }, "AccountSharingInfoList":{ "shape":"AccountSharingInfoList", @@ -6012,7 +6007,7 @@ "members":{ "Name":{ "shape":"DocumentARN", - "documentation":"

The name of the SSM document.

" + "documentation":"

The name of the SSM document.

If you're calling a shared SSM document from a different Amazon Web Services account, Name is the full Amazon Resource Name (ARN) of the document.

" }, "DocumentVersion":{ "shape":"DocumentVersion", @@ -6945,8 +6940,7 @@ }, "DisassociateOpsItemRelatedItemResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "DocumentARN":{ "type":"string", @@ -7602,8 +7596,7 @@ }, "DuplicateInstanceId":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

You can't specify a managed node ID in more than one association.

", "exception":true }, @@ -9409,7 +9402,7 @@ "members":{ "Key":{ "shape":"InstanceInformationStringFilterKey", - "documentation":"

The filter key name to describe your managed nodes.

Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | \"tag-key\" | \"tag:{keyname}

  • Valid values for the AssociationStatus filter key: Success | Pending | Failed

  • Valid values for the PingStatus filter key: Online | ConnectionLost | Inactive (deprecated)

  • Valid values for the PlatformType filter key: Windows | Linux | MacOS

  • Valid values for the ResourceType filter key: EC2Instance | ManagedInstance

  • Valid values for the SourceType filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing

  • Valid tag examples: Key=tag-key,Values=Purpose | Key=tag:Purpose,Values=Test.

" + "documentation":"

The filter key name to describe your managed nodes.

Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformType | ResourceType | SourceIds | SourceTypes | \"tag-key\" | \"tag:{keyname}

  • Valid values for the AssociationStatus filter key: Success | Pending | Failed

  • Valid values for the PingStatus filter key: Online | ConnectionLost | Inactive (deprecated)

  • Valid values for the PlatformType filter key: Windows | Linux | MacOS

  • Valid values for the ResourceType filter key: EC2Instance | ManagedInstance

  • Valid values for the SourceType filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing

  • Valid tag examples: Key=tag-key,Values=Purpose | Key=tag:Purpose,Values=Test.

" }, "Values":{ "shape":"InstanceInformationFilterValueSet", @@ -9918,8 +9911,7 @@ }, "InvalidCommandId":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The specified command ID isn't valid. Verify the ID and try again.

", "exception":true }, @@ -10003,8 +9995,7 @@ }, "InvalidFilterKey":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The specified key isn't valid.

", "exception":true }, @@ -10118,15 +10109,13 @@ }, "InvalidOutputFolder":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The S3 bucket doesn't exist.

", "exception":true }, "InvalidOutputLocation":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The output location isn't valid or doesn't exist.

", "exception":true }, @@ -10148,8 +10137,7 @@ }, "InvalidPluginName":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The plugin name isn't valid.

", "exception":true }, @@ -10171,15 +10159,13 @@ }, "InvalidResourceId":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The resource ID isn't valid. Verify that you entered the correct ID and try again.

", "exception":true }, "InvalidResourceType":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The resource type isn't valid. For example, if you are attempting to tag an EC2 instance, the instance must be a registered managed node.

", "exception":true }, @@ -10656,8 +10642,7 @@ "InventoryTypeDisplayName":{"type":"string"}, "InvocationDoesNotExist":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The command ID and managed node ID you specified didn't match any invocations. Verify the command ID and the managed node ID and try again.

", "exception":true }, @@ -12234,8 +12219,7 @@ }, "ModifyDocumentPermissionResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "NextToken":{"type":"string"}, "Node":{ @@ -14679,8 +14663,7 @@ }, "PutComplianceItemsResult":{ "type":"structure", - "members":{ - } + "members":{} }, "PutInventoryMessage":{"type":"string"}, "PutInventoryRequest":{ @@ -15104,8 +15087,7 @@ }, "RemoveTagsFromResourceResult":{ "type":"structure", - "members":{ - } + "members":{} }, "RequireType":{ "type":"string", @@ -15818,8 +15800,7 @@ }, "SendAutomationSignalResult":{ "type":"structure", - "members":{ - } + "members":{} }, "SendCommandRequest":{ "type":"structure", @@ -16033,6 +16014,10 @@ "MaxSessionDuration":{ "shape":"MaxSessionDuration", "documentation":"

The maximum duration of a session before it terminates.

" + }, + "AccessType":{ + "shape":"AccessType", + "documentation":"

Standard access type is the default for Session Manager sessions. JustInTime is the access type for Just-in-time node access.

" } }, "documentation":"

Information about a Session Manager connection to a managed node.

" @@ -16068,7 +16053,8 @@ "Target", "Owner", "Status", - "SessionId" + "SessionId", + "AccessType" ] }, "SessionFilterList":{ @@ -16295,8 +16281,7 @@ }, "StartAssociationsOnceResult":{ "type":"structure", - "members":{ - } + "members":{} }, "StartAutomationExecutionRequest":{ "type":"structure", @@ -16517,8 +16502,7 @@ "StatusName":{"type":"string"}, "StatusUnchanged":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The updated status is the same as the current status.

", "exception":true }, @@ -16705,8 +16689,7 @@ }, "StopAutomationExecutionResult":{ "type":"structure", - "members":{ - } + "members":{} }, "StopType":{ "type":"string", @@ -16992,8 +16975,7 @@ }, "TooManyTagsError":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The Targets parameter includes too many tags. Remove one or more tags and try the command again.

", "exception":true }, @@ -17298,8 +17280,7 @@ }, "UpdateDocumentMetadataResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateDocumentRequest":{ "type":"structure", @@ -17697,8 +17678,7 @@ }, "UpdateManagedInstanceRoleResult":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateOpsItemRequest":{ "type":"structure", @@ -17772,8 +17752,7 @@ }, "UpdateOpsItemResponse":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateOpsMetadataRequest":{ "type":"structure", @@ -17952,8 +17931,7 @@ }, "UpdateResourceDataSyncResult":{ "type":"structure", - "members":{ - } + "members":{} }, "UpdateServiceSettingRequest":{ "type":"structure", @@ -17975,8 +17953,7 @@ }, "UpdateServiceSettingResult":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The result body of the UpdateServiceSetting API operation.

" }, "Url":{"type":"string"}, @@ -18006,5 +17983,5 @@ "pattern":"^[0-9]{1,6}(\\.[0-9]{1,6}){2,3}$" } }, - "documentation":"

Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale.

This reference is intended to be used with the Amazon Web Services Systems Manager User Guide. To get started, see Setting up Amazon Web Services Systems Manager.

Related resources

" + "documentation":"

Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale.

This reference is intended to be used with the Amazon Web Services Systems Manager User Guide. To get started, see Setting up Amazon Web Services Systems Manager.

Related resources

" } diff --git a/services/ssmcontacts/pom.xml b/services/ssmcontacts/pom.xml index 8dbebd6a059e..3c318e50604c 100644 --- a/services/ssmcontacts/pom.xml +++ b/services/ssmcontacts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssmcontacts AWS Java SDK :: Services :: SSM Contacts diff --git a/services/ssmguiconnect/pom.xml b/services/ssmguiconnect/pom.xml index ec8ede87c889..b35589f3b6d9 100644 --- a/services/ssmguiconnect/pom.xml +++ b/services/ssmguiconnect/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssmguiconnect AWS Java SDK :: Services :: SSM Gui Connect diff --git a/services/ssmincidents/pom.xml b/services/ssmincidents/pom.xml index e9e8c0e97523..485f6e92b4c4 100644 --- a/services/ssmincidents/pom.xml +++ b/services/ssmincidents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssmincidents AWS Java SDK :: Services :: SSM Incidents diff --git a/services/ssmquicksetup/pom.xml b/services/ssmquicksetup/pom.xml index 464efb83f1bd..82526839dd1f 100644 --- a/services/ssmquicksetup/pom.xml +++ b/services/ssmquicksetup/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssmquicksetup AWS Java SDK :: Services :: SSM Quick Setup diff --git a/services/ssmsap/pom.xml b/services/ssmsap/pom.xml index 9929d066edf1..691d96faf54a 100644 --- a/services/ssmsap/pom.xml +++ b/services/ssmsap/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssmsap AWS Java SDK :: Services :: Ssm Sap diff --git a/services/sso/pom.xml b/services/sso/pom.xml index af783dfde44c..28d40e9db206 100644 --- a/services/sso/pom.xml +++ b/services/sso/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sso AWS Java SDK :: Services :: SSO diff --git a/services/ssoadmin/pom.xml b/services/ssoadmin/pom.xml index 60ef2c4139c6..8a50f7203bfd 100644 --- a/services/ssoadmin/pom.xml +++ b/services/ssoadmin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssoadmin AWS Java SDK :: Services :: SSO Admin diff --git a/services/ssooidc/pom.xml b/services/ssooidc/pom.xml index 21bea1d540af..68b612e88e42 100644 --- a/services/ssooidc/pom.xml +++ b/services/ssooidc/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ssooidc AWS Java SDK :: Services :: SSO OIDC diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml index e113015d0766..ba165f38c070 100644 --- a/services/storagegateway/pom.xml +++ b/services/storagegateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT storagegateway AWS Java SDK :: Services :: AWS Storage Gateway diff --git a/services/sts/pom.xml b/services/sts/pom.xml index 65622eb4eb00..ec6e981ae18d 100644 --- a/services/sts/pom.xml +++ b/services/sts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT sts AWS Java SDK :: Services :: AWS STS diff --git a/services/supplychain/pom.xml b/services/supplychain/pom.xml index 30a3047b85ef..0bfcaefb2f74 100644 --- a/services/supplychain/pom.xml +++ b/services/supplychain/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT supplychain AWS Java SDK :: Services :: Supply Chain diff --git a/services/support/pom.xml b/services/support/pom.xml index 491761ac3b73..9ca6af67c7c1 100644 --- a/services/support/pom.xml +++ b/services/support/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT support AWS Java SDK :: Services :: AWS Support diff --git a/services/supportapp/pom.xml b/services/supportapp/pom.xml index 6d095a840bb6..0dcb67d8a7fa 100644 --- a/services/supportapp/pom.xml +++ b/services/supportapp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT supportapp AWS Java SDK :: Services :: Support App diff --git a/services/swf/pom.xml b/services/swf/pom.xml index 0e98ad817e90..a09d34fb2d53 100644 --- a/services/swf/pom.xml +++ b/services/swf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT swf AWS Java SDK :: Services :: Amazon SWF diff --git a/services/synthetics/pom.xml b/services/synthetics/pom.xml index 9e2d4e9e0bbf..758984efdec3 100644 --- a/services/synthetics/pom.xml +++ b/services/synthetics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT synthetics AWS Java SDK :: Services :: Synthetics diff --git a/services/taxsettings/pom.xml b/services/taxsettings/pom.xml index 2e01eb6cc5c1..3fbc8c246f9f 100644 --- a/services/taxsettings/pom.xml +++ b/services/taxsettings/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT taxsettings AWS Java SDK :: Services :: Tax Settings diff --git a/services/textract/pom.xml b/services/textract/pom.xml index c43225d8caf7..d42ac2087ee0 100644 --- a/services/textract/pom.xml +++ b/services/textract/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT textract AWS Java SDK :: Services :: Textract diff --git a/services/timestreaminfluxdb/pom.xml b/services/timestreaminfluxdb/pom.xml index 6e6ace20d846..9ea6274edb4b 100644 --- a/services/timestreaminfluxdb/pom.xml +++ b/services/timestreaminfluxdb/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT timestreaminfluxdb AWS Java SDK :: Services :: Timestream Influx DB diff --git a/services/timestreamquery/pom.xml b/services/timestreamquery/pom.xml index 7144aaba8247..fd07c1aac408 100644 --- a/services/timestreamquery/pom.xml +++ b/services/timestreamquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT timestreamquery AWS Java SDK :: Services :: Timestream Query diff --git a/services/timestreamwrite/pom.xml b/services/timestreamwrite/pom.xml index 1466808d2a94..96ca13b625fe 100644 --- a/services/timestreamwrite/pom.xml +++ b/services/timestreamwrite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT timestreamwrite AWS Java SDK :: Services :: Timestream Write diff --git a/services/tnb/pom.xml b/services/tnb/pom.xml index 2880cec7e19e..1e61fb31d77a 100644 --- a/services/tnb/pom.xml +++ b/services/tnb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT tnb AWS Java SDK :: Services :: Tnb diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml index 2413866d1dda..cf9461a694b5 100644 --- a/services/transcribe/pom.xml +++ b/services/transcribe/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT transcribe AWS Java SDK :: Services :: Transcribe diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml index 3adfce77ae5c..60d910094999 100644 --- a/services/transcribestreaming/pom.xml +++ b/services/transcribestreaming/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT transcribestreaming AWS Java SDK :: Services :: AWS Transcribe Streaming diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml index 432f2392badf..705ba007622b 100644 --- a/services/transfer/pom.xml +++ b/services/transfer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT transfer AWS Java SDK :: Services :: Transfer diff --git a/services/transfer/src/main/resources/codegen-resources/service-2.json b/services/transfer/src/main/resources/codegen-resources/service-2.json index 9472ae7d1373..b414a38a6213 100644 --- a/services/transfer/src/main/resources/codegen-resources/service-2.json +++ b/services/transfer/src/main/resources/codegen-resources/service-2.json @@ -1464,7 +1464,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", @@ -1727,6 +1727,10 @@ "S3StorageOptions":{ "shape":"S3StorageOptions", "documentation":"

Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

By default, home directory mappings have a TYPE of DIRECTORY. If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

" + }, + "IpAddressType":{ + "shape":"IpAddressType", + "documentation":"

Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is IPV4.

The IpAddressType parameter has the following limitations:

  • It cannot be changed while the server is online. You must stop the server before modifying this parameter.

  • It cannot be updated to DUALSTACK if the server has AddressAllocationIds specified.

When using DUALSTACK as the IpAddressType, you cannot set the AddressAllocationIds parameter for the EndpointDetails for the server.

" } } }, @@ -1750,7 +1754,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", @@ -2481,7 +2485,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", @@ -2929,6 +2933,10 @@ "As2ServiceManagedEgressIpAddresses":{ "shape":"ServiceManagedEgressIpAddresses", "documentation":"

The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs.

These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.

" + }, + "IpAddressType":{ + "shape":"IpAddressType", + "documentation":"

Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is IPV4.

The IpAddressType parameter has the following limitations:

  • It cannot be changed while the server is online. You must stop the server before modifying this parameter.

  • It cannot be updated to DUALSTACK if the server has AddressAllocationIds specified.

When using DUALSTACK as the IpAddressType, you cannot set the AddressAllocationIds parameter for the EndpointDetails for the server.

" } }, "documentation":"

Describes the properties of a file transfer protocol-enabled server that was specified.

" @@ -2943,7 +2951,7 @@ }, "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", @@ -3166,7 +3174,7 @@ "members":{ "AddressAllocationIds":{ "shape":"AddressAllocationIds", - "documentation":"

A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server.

This property can only be set as follows:

  • EndpointType must be set to VPC

  • The Transfer Family server must be offline.

  • You cannot set this parameter for Transfer Family servers that use the FTP protocol.

  • The server must already have SubnetIds populated (SubnetIds and AddressAllocationIds cannot be updated simultaneously).

  • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds. For example, if you have three subnet IDs, you must also specify three address allocation IDs.

  • Call the UpdateServer API to set or change this parameter.

" + "documentation":"

A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server.

This property can only be set as follows:

  • EndpointType must be set to VPC

  • The Transfer Family server must be offline.

  • You cannot set this parameter for Transfer Family servers that use the FTP protocol.

  • The server must already have SubnetIds populated (SubnetIds and AddressAllocationIds cannot be updated simultaneously).

  • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds. For example, if you have three subnet IDs, you must also specify three address allocation IDs.

  • Call the UpdateServer API to set or change this parameter.

  • You can't set address allocation IDs for servers that have an IpAddressType set to DUALSTACK You can only set this property if IpAddressType is set to IPV4.

" }, "SubnetIds":{ "shape":"SubnetIds", @@ -3633,6 +3641,13 @@ "documentation":"

This exception is thrown when the client submits a malformed request.

", "exception":true }, + "IpAddressType":{ + "type":"string", + "enum":[ + "IPV4", + "DUALSTACK" + ] + }, "ListAccessesRequest":{ "type":"structure", "required":["ServerId"], @@ -4093,7 +4108,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", @@ -4356,7 +4371,7 @@ }, "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", @@ -5044,7 +5059,7 @@ "type":"string", "max":32, "min":0, - "pattern":"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" + "pattern":"[0-9a-fA-F\\.\\:]+" }, "SshPublicKey":{ "type":"structure", @@ -5496,7 +5511,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", @@ -5807,6 +5822,10 @@ "S3StorageOptions":{ "shape":"S3StorageOptions", "documentation":"

Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

By default, home directory mappings have a TYPE of DIRECTORY. If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

" + }, + "IpAddressType":{ + "shape":"IpAddressType", + "documentation":"

Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is IPV4.

The IpAddressType parameter has the following limitations:

  • It cannot be changed while the server is online. You must stop the server before modifying this parameter.

  • It cannot be updated to DUALSTACK if the server has AddressAllocationIds specified.

When using DUALSTACK as the IpAddressType, you cannot set the AddressAllocationIds parameter for the EndpointDetails for the server.

" } } }, @@ -5829,7 +5848,7 @@ "members":{ "HomeDirectory":{ "shape":"HomeDirectory", - "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

The HomeDirectory parameter is only used if HomeDirectoryType is set to PATH.

" + "documentation":"

The landing directory (folder) for a user when they log in to the server using the client.

A HomeDirectory example is /bucket_name/home/mydirectory.

You can use the HomeDirectory parameter for HomeDirectoryType when it is set to either PATH or LOGICAL.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", diff --git a/services/translate/pom.xml b/services/translate/pom.xml index 39047da9de0d..7ff89f7185a9 100644 --- a/services/translate/pom.xml +++ b/services/translate/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 translate diff --git a/services/trustedadvisor/pom.xml b/services/trustedadvisor/pom.xml index 00e50d7eac0d..98c8466deb88 100644 --- a/services/trustedadvisor/pom.xml +++ b/services/trustedadvisor/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT trustedadvisor AWS Java SDK :: Services :: Trusted Advisor diff --git a/services/verifiedpermissions/pom.xml b/services/verifiedpermissions/pom.xml index f93b3bd1bdee..25c9351515b0 100644 --- a/services/verifiedpermissions/pom.xml +++ b/services/verifiedpermissions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT verifiedpermissions AWS Java SDK :: Services :: Verified Permissions diff --git a/services/voiceid/pom.xml b/services/voiceid/pom.xml index 091dd783839f..bda59fc6c92b 100644 --- a/services/voiceid/pom.xml +++ b/services/voiceid/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT voiceid AWS Java SDK :: Services :: Voice ID diff --git a/services/vpclattice/pom.xml b/services/vpclattice/pom.xml index d5d4c40110cd..02be9b1e1a83 100644 --- a/services/vpclattice/pom.xml +++ b/services/vpclattice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT vpclattice AWS Java SDK :: Services :: VPC Lattice diff --git a/services/waf/pom.xml b/services/waf/pom.xml index 13dd5f1c1399..14080f133c74 100644 --- a/services/waf/pom.xml +++ b/services/waf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT waf AWS Java SDK :: Services :: AWS WAF diff --git a/services/wafv2/pom.xml b/services/wafv2/pom.xml index 7546423b9d9f..1b2eb29e49a4 100644 --- a/services/wafv2/pom.xml +++ b/services/wafv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT wafv2 AWS Java SDK :: Services :: WAFV2 diff --git a/services/wellarchitected/pom.xml b/services/wellarchitected/pom.xml index d1b32b6b168c..75a38eb8aa26 100644 --- a/services/wellarchitected/pom.xml +++ b/services/wellarchitected/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT wellarchitected AWS Java SDK :: Services :: Well Architected diff --git a/services/wisdom/pom.xml b/services/wisdom/pom.xml index 525fb8af9240..31dd90181e43 100644 --- a/services/wisdom/pom.xml +++ b/services/wisdom/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT wisdom AWS Java SDK :: Services :: Wisdom diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml index ee549cc798ef..657a957d99a7 100644 --- a/services/workdocs/pom.xml +++ b/services/workdocs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workdocs AWS Java SDK :: Services :: Amazon WorkDocs diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml index 49bc9fe7025d..ecf4cf193471 100644 --- a/services/workmail/pom.xml +++ b/services/workmail/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 workmail diff --git a/services/workmailmessageflow/pom.xml b/services/workmailmessageflow/pom.xml index 6ffb8a644eff..da3387c000de 100644 --- a/services/workmailmessageflow/pom.xml +++ b/services/workmailmessageflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workmailmessageflow AWS Java SDK :: Services :: WorkMailMessageFlow diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml index 1a1b4fe9c801..63b86ee57f38 100644 --- a/services/workspaces/pom.xml +++ b/services/workspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workspaces AWS Java SDK :: Services :: Amazon WorkSpaces diff --git a/services/workspacesinstances/pom.xml b/services/workspacesinstances/pom.xml index 04db4ce6563e..00c22c8ee22b 100644 --- a/services/workspacesinstances/pom.xml +++ b/services/workspacesinstances/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workspacesinstances AWS Java SDK :: Services :: Workspaces Instances diff --git a/services/workspacesthinclient/pom.xml b/services/workspacesthinclient/pom.xml index 76faeb58715c..716e22823fa3 100644 --- a/services/workspacesthinclient/pom.xml +++ b/services/workspacesthinclient/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workspacesthinclient AWS Java SDK :: Services :: Work Spaces Thin Client diff --git a/services/workspacesweb/pom.xml b/services/workspacesweb/pom.xml index b89fe750f1a0..849d73a83fa8 100644 --- a/services/workspacesweb/pom.xml +++ b/services/workspacesweb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT workspacesweb AWS Java SDK :: Services :: Work Spaces Web diff --git a/services/xray/pom.xml b/services/xray/pom.xml index a66cca3e1924..aff5a4155af8 100644 --- a/services/xray/pom.xml +++ b/services/xray/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT xray AWS Java SDK :: Services :: AWS X-Ray diff --git a/test/architecture-tests/pom.xml b/test/architecture-tests/pom.xml index 85e86929fa79..324c96e478b0 100644 --- a/test/architecture-tests/pom.xml +++ b/test/architecture-tests/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml diff --git a/test/auth-tests/pom.xml b/test/auth-tests/pom.xml index 238166f51252..cecc299addf0 100644 --- a/test/auth-tests/pom.xml +++ b/test/auth-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/bundle-logging-bridge-binding-test/pom.xml b/test/bundle-logging-bridge-binding-test/pom.xml index 687c75eb4133..852559b3336c 100644 --- a/test/bundle-logging-bridge-binding-test/pom.xml +++ b/test/bundle-logging-bridge-binding-test/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/bundle-shading-tests/pom.xml b/test/bundle-shading-tests/pom.xml index e64544d3cfa1..bf499fbc8355 100644 --- a/test/bundle-shading-tests/pom.xml +++ b/test/bundle-shading-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml index 856f72aa7b02..e76abff3d705 100644 --- a/test/codegen-generated-classes-test/pom.xml +++ b/test/codegen-generated-classes-test/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BusinessMetricsUserAgentTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BusinessMetricsUserAgentTest.java index ecfe48c5972b..ba6dff526c13 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BusinessMetricsUserAgentTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BusinessMetricsUserAgentTest.java @@ -47,6 +47,7 @@ import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClient; import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClientBuilder; +import software.amazon.awssdk.services.protocolrestjson.internal.ServiceVersionInfo; import software.amazon.awssdk.services.protocolrestjson.model.PaginatedOperationWithResultKeyResponse; import software.amazon.awssdk.services.protocolrestjson.paginators.PaginatedOperationWithResultKeyPublisher; import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersAsyncClient; @@ -181,4 +182,20 @@ public ExecutionAttributes executionAttributes() { return executionAttributes; } } + + @Test + void validate_serviceUserAgent_format() { + ProtocolRestJsonAsyncClientBuilder clientBuilder = asyncClientBuilderForProtocolRestJson(); + + ProtocolRestJsonAsyncClient client = clientBuilder + .region(Region.US_WEST_2) + .credentialsProvider(CREDENTIALS_PROVIDER) + .overrideConfiguration(c -> c.addExecutionInterceptor(interceptor)) + .build(); + + client.headOperation(); + + String userAgent = assertAndGetUserAgentString(); + assertThat(userAgent).contains("AmazonProtocolRestJson#" + ServiceVersionInfo.VERSION); + } } \ No newline at end of file diff --git a/test/crt-unavailable-tests/pom.xml b/test/crt-unavailable-tests/pom.xml index b3479eae16da..02486203ac3d 100644 --- a/test/crt-unavailable-tests/pom.xml +++ b/test/crt-unavailable-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/http-client-tests/pom.xml b/test/http-client-tests/pom.xml index 7ccf92f2518a..faa2166c0115 100644 --- a/test/http-client-tests/pom.xml +++ b/test/http-client-tests/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml http-client-tests diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml index d2d60cc21120..7f68476dbebb 100644 --- a/test/module-path-tests/pom.xml +++ b/test/module-path-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/old-client-version-compatibility-test/pom.xml b/test/old-client-version-compatibility-test/pom.xml index 1c0db20d54d6..6f13a0ed4e13 100644 --- a/test/old-client-version-compatibility-test/pom.xml +++ b/test/old-client-version-compatibility-test/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml index 611635c332bb..36dbf9e739ff 100644 --- a/test/protocol-tests-core/pom.xml +++ b/test/protocol-tests-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml index d3aadc6b2278..c9c1bb54f0d0 100644 --- a/test/protocol-tests/pom.xml +++ b/test/protocol-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml index f90f2d70ab23..b5228ddb73f0 100644 --- a/test/region-testing/pom.xml +++ b/test/region-testing/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/ruleset-testing-core/pom.xml b/test/ruleset-testing-core/pom.xml index 0599b7e40749..fd91185ff41d 100644 --- a/test/ruleset-testing-core/pom.xml +++ b/test/ruleset-testing-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/s3-benchmarks/pom.xml b/test/s3-benchmarks/pom.xml index 171c85208713..1481492ba648 100644 --- a/test/s3-benchmarks/pom.xml +++ b/test/s3-benchmarks/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/s3-tests/pom.xml b/test/s3-tests/pom.xml index 581b341a6bfd..f1935490ccff 100644 --- a/test/s3-tests/pom.xml +++ b/test/s3-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml index ebee9f996d59..13c633dfef77 100644 --- a/test/sdk-benchmarks/pom.xml +++ b/test/sdk-benchmarks/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml index 97ebc2fe98bf..c73f12bd4788 100644 --- a/test/sdk-native-image-test/pom.xml +++ b/test/sdk-native-image-test/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/service-test-utils/pom.xml b/test/service-test-utils/pom.xml index e7dd78d0e879..37a8293ef861 100644 --- a/test/service-test-utils/pom.xml +++ b/test/service-test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml service-test-utils diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml index 9d47b2d32dac..9ed9880cddc0 100644 --- a/test/stability-tests/pom.xml +++ b/test/stability-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml index 6f3a9989f1e1..1b316055f004 100644 --- a/test/test-utils/pom.xml +++ b/test/test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml test-utils diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml index e2018e300497..869694b40036 100644 --- a/test/tests-coverage-reporting/pom.xml +++ b/test/tests-coverage-reporting/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/v2-migration-tests/pom.xml b/test/v2-migration-tests/pom.xml index 2b83f6cbaf5d..f42d7bc9a057 100644 --- a/test/v2-migration-tests/pom.xml +++ b/test/v2-migration-tests/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../.. diff --git a/third-party/pom.xml b/third-party/pom.xml index bd3a17f71b5c..ce9e42290959 100644 --- a/third-party/pom.xml +++ b/third-party/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT third-party diff --git a/third-party/third-party-jackson-core/pom.xml b/third-party/third-party-jackson-core/pom.xml index 5a9c5d2082d0..835929bb3530 100644 --- a/third-party/third-party-jackson-core/pom.xml +++ b/third-party/third-party-jackson-core/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/third-party/third-party-jackson-dataformat-cbor/pom.xml b/third-party/third-party-jackson-dataformat-cbor/pom.xml index 167c902aece0..3a61893332d2 100644 --- a/third-party/third-party-jackson-dataformat-cbor/pom.xml +++ b/third-party/third-party-jackson-dataformat-cbor/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/third-party/third-party-slf4j-api/pom.xml b/third-party/third-party-slf4j-api/pom.xml index 613e7fa1d877..dbe655d7b7ef 100644 --- a/third-party/third-party-slf4j-api/pom.xml +++ b/third-party/third-party-slf4j-api/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/utils/pom.xml b/utils/pom.xml index e4c6cd5be13a..328b208b9af1 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT 4.0.0 diff --git a/v2-migration/pom.xml b/v2-migration/pom.xml index 5224337c1e9a..e0d54629465e 100644 --- a/v2-migration/pom.xml +++ b/v2-migration/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.31.74-SNAPSHOT + 2.31.76-SNAPSHOT ../pom.xml