diff --git a/.changes/8e7992a3-5add-4fc4-987f-c8bd0c6ef405.json b/.changes/8e7992a3-5add-4fc4-987f-c8bd0c6ef405.json deleted file mode 100644 index c9fce11bbbd..00000000000 --- a/.changes/8e7992a3-5add-4fc4-987f-c8bd0c6ef405.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "8e7992a3-5add-4fc4-987f-c8bd0c6ef405", - "type": "bugfix", - "description": "Fix an issue where sections were not properly divided when parsing the config file" -} diff --git a/CHANGELOG.md b/CHANGELOG.md index 7705de8875f..6f57d976e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,80 @@ # Changelog +## [1.0.71] - 03/05/2024 + +### Features +* (**organizations**) This release contains an endpoint addition +* (**sesv2**) Adds support for providing custom headers within SendEmail and SendBulkEmail for SESv2. + +### Documentation +* (**apigateway**) Documentation updates for Amazon API Gateway +* (**chatbot**) Minor update to documentation. + +## [1.0.70] - 03/04/2024 + +### Features +* (**cloudformation**) Add DetailedStatus field to DescribeStackEvents and DescribeStacks APIs +* (**fsx**) Added support for creating FSx for NetApp ONTAP file systems with up to 12 HA pairs, delivering up to 72 GB/s of read throughput and 12 GB/s of write throughput. +* (**organizations**) Documentation update for AWS Organizations + +## [1.0.69] - 03/01/2024 + +### Documentation +* (**accessanalyzer**) Fixed a typo in description field. +* (**autoscaling**) With this release, Amazon EC2 Auto Scaling groups, EC2 Fleet, and Spot Fleet improve the default price protection behavior of attribute-based instance type selection of Spot Instances, to consistently select from a wide range of instance types. +* (**ec2**) With this release, Amazon EC2 Auto Scaling groups, EC2 Fleet, and Spot Fleet improve the default price protection behavior of attribute-based instance type selection of Spot Instances, to consistently select from a wide range of instance types. + +## [1.0.68] - 02/29/2024 + +### Features +* (**docdbelastic**) Launched Elastic Clusters Readable Secondaries, Start/Stop, Configurable Shard Instance count, Automatic Backups and Snapshot Copying +* (**eks**) Added support for new AL2023 AMIs to the supported AMITypes. +* (**lexmodelsv2**) This release makes AMAZON.QnAIntent generally available in Amazon Lex. This generative AI feature leverages large language models available through Amazon Bedrock to automate frequently asked questions (FAQ) experience for end-users. +* (**migrationhuborchestrator**) Adds new CreateTemplate, UpdateTemplate and DeleteTemplate APIs. +* (**quicksight**) TooltipTarget for Combo chart visuals; ColumnConfiguration limit increase to 2000; Documentation Update +* (**sagemaker**) Adds support for ModelDataSource in Model Packages to support unzipped models. Adds support to specify SourceUri for models which allows registration of models without mandating a container for hosting. Using SourceUri, customers can decouple the model from hosting information during registration. +* (**securitylake**) Add capability to update the Data Lake's MetaStoreManager Role in order to perform required data lake updates to use Iceberg table format in their data lake or update the role for any other reason. +* Add support for S3 Express One Zone + +### Fixes +* Fix an issue where sections were not properly divided when parsing the config file +* [#1220](https://github.com/awslabs/aws-sdk-kotlin/issues/1220) Refactor XML deserialization to handle flat collections + +## [1.0.67] - 02/28/2024 + +### Features +* (**batch**) This release adds Batch support for configuration of multicontainer jobs in ECS, Fargate, and EKS. This support is available for all types of jobs, including both array jobs and multi-node parallel jobs. +* (**bedrockagentruntime**) This release adds support to override search strategy performed by the Retrieve and RetrieveAndGenerate APIs for Amazon Bedrock Agents +* (**costexplorer**) This release introduces the new API 'GetApproximateUsageRecords', which retrieves estimated usage records for hourly granularity or resource-level data at daily granularity. +* (**ec2**) This release increases the range of MaxResults for GetNetworkInsightsAccessScopeAnalysisFindings to 1,000. +* (**iot**) This release reduces the maximum results returned per query invocation from 500 to 100 for the SearchIndex API. This change has no implications as long as the API is invoked until the nextToken is NULL. +* (**wafv2**) AWS WAF now supports configurable time windows for request aggregation with rate-based rules. Customers can now select time windows of 1 minute, 2 minutes or 10 minutes, in addition to the previously supported 5 minutes. + +## [1.0.66] - 02/27/2024 + +### Features +* (**amplifyuibuilder**) We have added the ability to tag resources after they are created + +## [1.0.65] - 02/26/2024 + +### Features +* (**drs**) Added volume status to DescribeSourceServer replicated volumes. +* (**kafkaconnect**) Adds support for tagging, with new TagResource, UntagResource and ListTagsForResource APIs to manage tags and updates to existing APIs to allow tag on create. This release also adds support for the new DeleteWorkerConfiguration API. +* (**rds**) This release adds support for gp3 data volumes for Multi-AZ DB Clusters. + +### Documentation +* (**apigateway**) Documentation updates for Amazon API Gateway. + +## [1.0.64] - 02/23/2024 + +### Features +* (**rds**) Add pattern and length based validations for DBShardGroupIdentifier + +### Documentation +* (**appsync**) Documentation only updates for AppSync +* (**qldb**) Clarify possible values for KmsKeyArn and EncryptionDescription. +* (**rum**) Doc-only update for new RUM metrics that were added + ## [1.0.63] - 02/22/2024 ### Features diff --git a/aws-runtime/aws-http/build.gradle.kts b/aws-runtime/aws-http/build.gradle.kts index c91aa409876..21a560d31a8 100644 --- a/aws-runtime/aws-http/build.gradle.kts +++ b/aws-runtime/aws-http/build.gradle.kts @@ -15,6 +15,7 @@ kotlin { api(project(":aws-runtime:aws-endpoint")) api(libs.smithy.kotlin.aws.signing.common) api(libs.smithy.kotlin.http.client) + api(libs.smithy.kotlin.http.auth.aws) } } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsRequest.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsRequest.kt index d13aa4eb3c2..8799ac5364e 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsRequest.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsRequest.kt @@ -8,7 +8,6 @@ import software.amazon.smithy.aws.traits.HttpChecksumTrait import software.amazon.smithy.kotlin.codegen.KotlinSettings import software.amazon.smithy.kotlin.codegen.core.KotlinWriter import software.amazon.smithy.kotlin.codegen.core.RuntimeTypes -import software.amazon.smithy.kotlin.codegen.core.defaultName import software.amazon.smithy.kotlin.codegen.core.withBlock import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration import software.amazon.smithy.kotlin.codegen.model.* @@ -43,8 +42,8 @@ class FlexibleChecksumsRequest : KotlinIntegration { } override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) { - val inputSymbol = ctx.symbolProvider.toSymbol(ctx.model.expectShape(op.inputShape)) val interceptorSymbol = RuntimeTypes.HttpClient.Interceptors.FlexibleChecksumsRequestInterceptor + val inputSymbol = ctx.symbolProvider.toSymbol(ctx.model.expectShape(op.inputShape)) val httpChecksumTrait = op.getTrait()!! @@ -52,13 +51,13 @@ class FlexibleChecksumsRequest : KotlinIntegration { .members() .first { it.memberName == httpChecksumTrait.requestAlgorithmMember.get() } - writer.withBlock( - "op.interceptors.add(#T<#T> {", - "})", - interceptorSymbol, - inputSymbol, - ) { - writer.write("it.#L?.value", requestAlgorithmMember.defaultName()) + val requestAlgorithmMemberName = ctx.symbolProvider.toMemberName(requestAlgorithmMember) + + writer.withBlock("op.interceptors.add(#T<#T>() {", "})", interceptorSymbol, inputSymbol) { + writer.write("input.#L?.value", requestAlgorithmMemberName) + } + writer.withBlock("input.#L?.let {", "}", requestAlgorithmMemberName) { + writer.write("op.context[#T.ChecksumAlgorithm] = it.value", RuntimeTypes.HttpClient.Operation.HttpOperationContext) } } } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegration.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegration.kt index d51f70624f0..42cca196eb6 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegration.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegration.kt @@ -11,31 +11,32 @@ import software.amazon.smithy.kotlin.codegen.model.expectShape import software.amazon.smithy.kotlin.codegen.model.hasTrait import software.amazon.smithy.kotlin.codegen.model.traits.UnwrappedXmlOutput import software.amazon.smithy.model.Model +import software.amazon.smithy.model.shapes.OperationShape import software.amazon.smithy.model.shapes.ServiceShape -import software.amazon.smithy.model.shapes.StructureShape import software.amazon.smithy.model.transform.ModelTransformer /** - * Applies the [UnwrappedXmlOutput] custom-made [annotation trait](https://smithy.io/2.0/spec/model.html?highlight=annotation#annotation-traits) to structures - * whose operation is annotated with `S3UnwrappedXmlOutput` trait to mark when special unwrapped xml output deserialization is required. + * Applies the custom [UnwrappedXmlOutput] + * [annotation trait](https://smithy.io/2.0/spec/model.html?highlight=annotation#annotation-traits) to operations + * annotated with `S3UnwrappedXmlOutput` trait to mark when special unwrapped xml output deserialization is required. */ class UnwrappedXmlOutputIntegration : KotlinIntegration { override fun enabledForService(model: Model, settings: KotlinSettings): Boolean = model.expectShape(settings.service).isS3 override fun preprocessModel(model: Model, settings: KotlinSettings): Model { - val unwrappedStructures = model + val unwrappedOperations = model .operationShapes .filter { it.hasTrait() } - .map { it.outputShape } + .map { it.id } .toSet() return ModelTransformer .create() .mapShapes(model) { shape -> when { - shape.id in unwrappedStructures -> - (shape as StructureShape).toBuilder().addTrait(UnwrappedXmlOutput()).build() + shape.id in unwrappedOperations -> + (shape as OperationShape).toBuilder().addTrait(UnwrappedXmlOutput()).build() else -> shape } } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/S3ExpressIntegration.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/S3ExpressIntegration.kt new file mode 100644 index 00000000000..ce5ded2221a --- /dev/null +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/S3ExpressIntegration.kt @@ -0,0 +1,190 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.codegen.customization.s3.express + +import SigV4S3ExpressAuthTrait +import aws.sdk.kotlin.codegen.customization.s3.isS3 +import software.amazon.smithy.aws.traits.HttpChecksumTrait +import software.amazon.smithy.kotlin.codegen.KotlinSettings +import software.amazon.smithy.kotlin.codegen.core.* +import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration +import software.amazon.smithy.kotlin.codegen.lang.KotlinTypes +import software.amazon.smithy.kotlin.codegen.model.* +import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolGenerator +import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolMiddleware +import software.amazon.smithy.kotlin.codegen.rendering.util.ConfigProperty +import software.amazon.smithy.kotlin.codegen.rendering.util.ConfigPropertyType +import software.amazon.smithy.kotlin.codegen.utils.dq +import software.amazon.smithy.kotlin.codegen.utils.getOrNull +import software.amazon.smithy.model.Model +import software.amazon.smithy.model.shapes.* +import software.amazon.smithy.model.traits.* +import software.amazon.smithy.model.transform.ModelTransformer + +/** + * An integration which handles codegen for S3 Express, such as: + * 1. Configure auth scheme by applying a synthetic shape and trait + * 2. Add ExpressClient and Bucket to execution context + * 3. Override checksums to use CRC32 instead of MD5 + * 4. Disable all checksums for s3:UploadPart + */ +class S3ExpressIntegration : KotlinIntegration { + companion object { + val DisableExpressSessionAuth: ConfigProperty = ConfigProperty { + name = "disableS3ExpressSessionAuth" + useSymbolWithNullableBuilder(KotlinTypes.Boolean, "false") + documentation = """ + Flag to disable S3 Express One Zone's bucket-level session authentication method. + """.trimIndent() + } + + val ExpressCredentialsProvider: ConfigProperty = ConfigProperty { + name = "expressCredentialsProvider" + symbol = RuntimeTypes.Auth.Credentials.AwsCredentials.CredentialsProvider + documentation = """ + Credentials provider to be used for making requests to S3 Express. + """.trimIndent() + + propertyType = ConfigPropertyType.Custom( + render = { _, writer -> + writer.write( + "public val #1L: #2T = builder.#1L ?: #3T()", + name, + symbol, + buildSymbol { + name = "DefaultS3ExpressCredentialsProvider" + namespace = "aws.sdk.kotlin.services.s3.express" + }, + ) + }, + renderBuilder = { prop, writer -> + prop.documentation?.let(writer::dokka) + writer.write("public var #L: #T? = null", name, symbol) + }, + ) + } + } + + override fun enabledForService(model: Model, settings: KotlinSettings) = + model.expectShape(settings.service).isS3 + + /** + * Add a synthetic SigV4 S3 Express auth trait and shape + */ + override fun preprocessModel(model: Model, settings: KotlinSettings): Model { + val transformer = ModelTransformer.create() + + // AuthIndex.getAuthSchemes looks for shapes with an AuthDefinitionTrait, so need to make one for SigV4 S3Express + val authDefinitionTrait = AuthDefinitionTrait.builder().addTrait(SigV4S3ExpressAuthTrait.ID).build() + val sigV4S3ExpressAuthShape = StructureShape.builder() + .addTrait(authDefinitionTrait) + .id(SigV4S3ExpressAuthTrait.ID) + .build() + + val serviceShape = settings.getService(model) + val serviceShapeBuilder = serviceShape.toBuilder() + + serviceShapeBuilder.addTrait(SigV4S3ExpressAuthTrait()) + + val authTrait = AuthTrait(serviceShape.expectTrait(AuthTrait::class.java).valueSet + mutableSetOf(SigV4S3ExpressAuthTrait.ID)) + serviceShapeBuilder.addTrait(authTrait) + + // Add the new shape and update the service shape's AuthTrait + return transformer.replaceShapes(model, listOf(sigV4S3ExpressAuthShape, serviceShapeBuilder.build())) + } + + override fun customizeMiddleware(ctx: ProtocolGenerator.GenerationContext, resolved: List) = + resolved + listOf( + AddClientToExecutionContext, + AddBucketToExecutionContext, + UseCrc32Checksum, + UploadPartDisableChecksum, + ) + + private val S3AttributesSymbol = buildSymbol { + name = "S3Attributes" + namespace = "aws.sdk.kotlin.services.s3" + } + + private val AddClientToExecutionContext = object : ProtocolMiddleware { + override val name: String = "AddClientToExecutionContext" + + override fun isEnabledFor(ctx: ProtocolGenerator.GenerationContext, op: OperationShape): Boolean = + ctx.model.expectShape(ctx.settings.service).isS3 + + override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) { + writer.write("op.context[#T.ExpressClient] = this", S3AttributesSymbol) + } + } + + private val AddBucketToExecutionContext = object : ProtocolMiddleware { + override val name: String = "AddBucketToExecutionContext" + + override fun isEnabledFor(ctx: ProtocolGenerator.GenerationContext, op: OperationShape): Boolean = + ctx.model.expectShape(op.input.get()) + .members() + .any { it.memberName == "Bucket" } + + override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) { + writer.write("input.bucket?.let { op.context[#T.Bucket] = it }", S3AttributesSymbol) + } + } + + /** + * For any operations that require a checksum, set CRC32 if the user has not already configured a checksum. + */ + private val UseCrc32Checksum = object : ProtocolMiddleware { + override val name: String = "UseCrc32Checksum" + + override val order: Byte = -1 // Render before flexible checksums + + override fun isEnabledFor(ctx: ProtocolGenerator.GenerationContext, op: OperationShape): Boolean = !op.isS3UploadPart && + (op.hasTrait() || (op.hasTrait() && op.expectTrait().isRequestChecksumRequired)) + + override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) { + val interceptorSymbol = buildSymbol { + namespace = "aws.sdk.kotlin.services.s3.express" + name = "S3ExpressCrc32ChecksumInterceptor" + } + + val httpChecksumTrait = op.getTrait() + + val checksumAlgorithmMember = ctx.model.expectShape(op.input.get()) + .members() + .firstOrNull { it.memberName == httpChecksumTrait?.requestAlgorithmMember?.getOrNull() } + + // S3 models a header name x-amz-sdk-checksum-algorithm representing the name of the checksum algorithm used + val checksumHeaderName = checksumAlgorithmMember?.getTrait()?.value + + writer.write("op.interceptors.add(#T(${checksumHeaderName?.dq() ?: ""}))", interceptorSymbol) + } + } + + /** + * Disable all checksums for s3:UploadPart + */ + private val UploadPartDisableChecksum = object : ProtocolMiddleware { + override val name: String = "UploadPartDisableChecksum" + + override fun isEnabledFor(ctx: ProtocolGenerator.GenerationContext, op: OperationShape): Boolean = + op.isS3UploadPart + + override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) { + val interceptorSymbol = buildSymbol { + namespace = "aws.sdk.kotlin.services.s3.express" + name = "S3ExpressDisableChecksumInterceptor" + } + writer.addImport(interceptorSymbol) + writer.write("op.interceptors.add(#T())", interceptorSymbol) + } + } + + private val OperationShape.isS3UploadPart: Boolean get() = id.name == "UploadPart" + + override fun additionalServiceConfigProps(ctx: CodegenContext): List = listOf( + DisableExpressSessionAuth, + ExpressCredentialsProvider, + ) +} diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthSchemeIntegration.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthSchemeIntegration.kt new file mode 100644 index 00000000000..17d249bc063 --- /dev/null +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthSchemeIntegration.kt @@ -0,0 +1,142 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.codegen.customization.s3.express + +import aws.sdk.kotlin.codegen.customization.s3.isS3 +import software.amazon.smithy.aws.traits.auth.UnsignedPayloadTrait +import software.amazon.smithy.codegen.core.Symbol +import software.amazon.smithy.codegen.core.SymbolReference +import software.amazon.smithy.kotlin.codegen.KotlinSettings +import software.amazon.smithy.kotlin.codegen.core.* +import software.amazon.smithy.kotlin.codegen.integration.AppendingSectionWriter +import software.amazon.smithy.kotlin.codegen.integration.AuthSchemeHandler +import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration +import software.amazon.smithy.kotlin.codegen.integration.SectionWriterBinding +import software.amazon.smithy.kotlin.codegen.model.buildSymbol +import software.amazon.smithy.kotlin.codegen.model.expectShape +import software.amazon.smithy.kotlin.codegen.model.hasTrait +import software.amazon.smithy.kotlin.codegen.model.knowledge.AwsSignatureVersion4 +import software.amazon.smithy.kotlin.codegen.rendering.endpoints.EndpointCustomization +import software.amazon.smithy.kotlin.codegen.rendering.endpoints.EndpointPropertyRenderer +import software.amazon.smithy.kotlin.codegen.rendering.endpoints.ExpressionRenderer +import software.amazon.smithy.kotlin.codegen.rendering.protocol.* +import software.amazon.smithy.kotlin.codegen.utils.getOrNull +import software.amazon.smithy.model.Model +import software.amazon.smithy.model.node.Node +import software.amazon.smithy.model.shapes.OperationShape +import software.amazon.smithy.model.shapes.ServiceShape +import software.amazon.smithy.model.shapes.ShapeId +import software.amazon.smithy.rulesengine.language.syntax.expressions.Expression +import java.util.* + +/** + * Register support for the `sigv4-s3express` auth scheme. + */ +class SigV4S3ExpressAuthSchemeIntegration : KotlinIntegration { + // Needs to run after `SigV4AuthSchemeIntegration` + override val order: Byte = -51 + + override fun enabledForService(model: Model, settings: KotlinSettings): Boolean = model.expectShape(settings.service).isS3 + + override fun authSchemes(ctx: ProtocolGenerator.GenerationContext): List = listOf(SigV4S3ExpressAuthSchemeHandler()) + + override fun customizeEndpointResolution(ctx: ProtocolGenerator.GenerationContext): EndpointCustomization = SigV4S3ExpressEndpointCustomization + + override val sectionWriters: List + get() = listOf(SectionWriterBinding(HttpProtocolClientGenerator.ClientInitializer, renderClientInitializer)) + + // add S3 Express credentials provider to managed resources in the service client initializer + private val renderClientInitializer = AppendingSectionWriter { writer -> + writer.write("managedResources.#T(config.expressCredentialsProvider)", RuntimeTypes.Core.IO.addIfManaged) + } +} + +internal val sigV4S3ExpressSymbol = buildSymbol { + name = "sigV4S3Express" + namespace = "aws.sdk.kotlin.services.s3.express" +} + +internal val SigV4S3ExpressAuthSchemeSymbol = buildSymbol { + name = "SigV4S3ExpressAuthScheme" + namespace = "aws.sdk.kotlin.services.s3.express" +} + +private object SigV4S3ExpressEndpointCustomization : EndpointCustomization { + override val propertyRenderers: Map = mapOf( + "authSchemes" to ::renderAuthScheme, + ) +} + +class SigV4S3ExpressAuthSchemeHandler : AuthSchemeHandler { + override val authSchemeId: ShapeId = ShapeId.from("aws.auth#sigv4s3express") + + override val authSchemeIdSymbol: Symbol = buildSymbol { + name = "AuthSchemeId(\"aws.auth#sigv4s3express\")" + val ref = RuntimeTypes.Auth.Identity.AuthSchemeId + objectRef = ref + namespace = ref.namespace + reference(ref, SymbolReference.ContextOption.USE) + } + + override fun identityProviderAdapterExpression(writer: KotlinWriter) { + writer.write("config.#L", S3ExpressIntegration.ExpressCredentialsProvider.propertyName) + } + + override fun authSchemeProviderInstantiateAuthOptionExpr( + ctx: ProtocolGenerator.GenerationContext, + op: OperationShape?, + writer: KotlinWriter, + ) { + val expr = if (op?.hasTrait() == true) { + "#T(unsignedPayload = true)" + } else { + "#T()" + } + writer.write(expr, sigV4S3ExpressSymbol) + } + + override fun instantiateAuthSchemeExpr(ctx: ProtocolGenerator.GenerationContext, writer: KotlinWriter) { + val signingService = AwsSignatureVersion4.signingServiceName(ctx.service) + writer.write("#T(#T, #S)", SigV4S3ExpressAuthSchemeSymbol, RuntimeTypes.Auth.Signing.AwsSigningStandard.DefaultAwsSigner, signingService) + } +} + +private fun renderAuthScheme(writer: KotlinWriter, authSchemes: Expression, expressionRenderer: ExpressionRenderer) { + val expressScheme = authSchemes.toNode().expectArrayNode().find { + it.expectObjectNode().expectStringMember("name").value == "sigv4-s3express" + }?.expectObjectNode() + + expressScheme?.let { + writer.writeInline("#T to ", RuntimeTypes.SmithyClient.Endpoints.SigningContextAttributeKey) + writer.withBlock("listOf(", ")") { + withBlock("#T(", "),", sigV4S3ExpressSymbol) { + // we delegate back to the expression visitor for each of these fields because it's possible to + // encounter template strings throughout + + writeInline("serviceName = ") + renderOrElse(expressionRenderer, expressScheme.getStringMember("signingName"), "null") + + writeInline("disableDoubleUriEncode = ") + renderOrElse(expressionRenderer, expressScheme.getBooleanMember("disableDoubleEncoding"), "false") + + writeInline("signingRegion = ") + renderOrElse(expressionRenderer, expressScheme.getStringMember("signingRegion"), "null") + } + } + } +} + +private fun KotlinWriter.renderOrElse( + expressionRenderer: ExpressionRenderer, + optionalNode: Optional, + whenNullValue: String, +) { + val nullableNode = optionalNode.getOrNull() + when (nullableNode) { + null -> writeInline(whenNullValue) + else -> expressionRenderer.renderExpression(Expression.fromNode(nullableNode)) + } + write(",") +} diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthTrait.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthTrait.kt new file mode 100644 index 00000000000..f6f9ba29faf --- /dev/null +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/s3/express/SigV4S3ExpressAuthTrait.kt @@ -0,0 +1,18 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +import software.amazon.smithy.model.node.Node +import software.amazon.smithy.model.shapes.ShapeId +import software.amazon.smithy.model.traits.AbstractTrait + +/** + * Synthetic auth trait applied to S3's model to enable SigV4 S3 Express auth scheme. + */ +internal class SigV4S3ExpressAuthTrait : AbstractTrait(ID, Node.objectNode()) { + companion object { + val ID = ShapeId.from("aws.auth#sigv4s3express") + } + override fun createNode(): Node = Node.objectNode() + override fun isSynthetic(): Boolean = true +} diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt index 6d90b7b8f14..c6e1924ea47 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt @@ -11,6 +11,7 @@ object AwsBuiltins { const val S3_ACCELERATE = "AWS::S3::Accelerate" const val S3_FORCE_PATH_STYLE = "AWS::S3::ForcePathStyle" const val S3_DISABLE_MRAP = "AWS::S3::DisableMultiRegionAccessPoints" + const val S3_DISABLE_EXPRESS_SESSION_AUTH = "AWS::S3::DisableS3ExpressSessionAuth" const val S3_USE_ARN_REGION = "AWS::S3::UseArnRegion" const val S3_CONTROL_USE_ARN_REGION = "AWS::S3Control::UseArnRegion" const val S3_USE_GLOBAL_ENDPOINT = "AWS::S3::UseGlobalEndpoint" diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt index 6643d3f8e77..5c418be243e 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt @@ -6,6 +6,7 @@ package aws.sdk.kotlin.codegen.endpoints import aws.sdk.kotlin.codegen.AwsRuntimeTypes import aws.sdk.kotlin.codegen.customization.AccountIdEndpointBuiltinCustomization +import aws.sdk.kotlin.codegen.customization.s3.express.S3ExpressIntegration import software.amazon.smithy.codegen.core.Symbol import software.amazon.smithy.kotlin.codegen.core.CodegenContext import software.amazon.smithy.kotlin.codegen.core.KotlinWriter @@ -90,6 +91,7 @@ fun renderBindAwsBuiltins(ctx: ProtocolGenerator.GenerationContext, writer: Kotl AwsBuiltins.S3_ACCELERATE -> renderBasicConfigBinding(writer, it, S3ClientConfigIntegration.EnableAccelerateProp.propertyName) AwsBuiltins.S3_FORCE_PATH_STYLE -> renderBasicConfigBinding(writer, it, S3ClientConfigIntegration.ForcePathStyleProp.propertyName) AwsBuiltins.S3_DISABLE_MRAP -> renderBasicConfigBinding(writer, it, S3ClientConfigIntegration.DisableMrapProp.propertyName) + AwsBuiltins.S3_DISABLE_EXPRESS_SESSION_AUTH -> renderBasicConfigBinding(writer, it, S3ExpressIntegration.DisableExpressSessionAuth.propertyName) AwsBuiltins.S3_USE_ARN_REGION -> renderBasicConfigBinding(writer, it, S3ClientConfigIntegration.UseArnRegionProp.propertyName) AwsBuiltins.S3_CONTROL_USE_ARN_REGION -> renderBasicConfigBinding(writer, it, S3ControlClientConfigIntegration.UseArnRegionProp.propertyName) diff --git a/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration b/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration index 1eeb8f5a1d3..cbcf623fe0b 100644 --- a/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration +++ b/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration @@ -39,3 +39,5 @@ aws.sdk.kotlin.codegen.customization.RemoveDefaults aws.sdk.kotlin.codegen.customization.s3.UnsupportedSigningAlgorithmIntegration aws.sdk.kotlin.codegen.customization.SigV4AsymmetricTraitCustomization aws.sdk.kotlin.codegen.customization.cloudfrontkeyvaluestore.BackfillSigV4ACustomization +aws.sdk.kotlin.codegen.customization.s3.express.SigV4S3ExpressAuthSchemeIntegration +aws.sdk.kotlin.codegen.customization.s3.express.S3ExpressIntegration diff --git a/codegen/aws-sdk-codegen/src/main/resources/aws/sdk/kotlin/codegen/endpoints.json b/codegen/aws-sdk-codegen/src/main/resources/aws/sdk/kotlin/codegen/endpoints.json index c931c4beaa8..6667248064d 100644 --- a/codegen/aws-sdk-codegen/src/main/resources/aws/sdk/kotlin/codegen/endpoints.json +++ b/codegen/aws-sdk-codegen/src/main/resources/aws/sdk/kotlin/codegen/endpoints.json @@ -7195,6 +7195,7 @@ "eu-central-1" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -8408,6 +8409,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ca-central-1" : { }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -11242,27 +11244,152 @@ }, "logs" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "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" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "logs.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "logs.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "logs.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "logs.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "logs.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "logs.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "logs.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "logs.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "logs.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "logs.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "logs.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "logs-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "logs.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "logs-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "logs.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "logs.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "logs.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "logs.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "logs.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "logs.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "logs.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "logs.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "logs.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "logs-fips.ca-central-1.amazonaws.com" + }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "logs-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -11291,32 +11418,64 @@ "deprecated" : true, "hostname" : "logs-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "logs.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "logs.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "logs.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "logs.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "logs-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "logs-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "logs-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "logs-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } diff --git a/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegrationTest.kt b/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegrationTest.kt deleted file mode 100644 index 7827fed4915..00000000000 --- a/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/customization/s3/UnwrappedXmlOutputIntegrationTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ -package aws.sdk.kotlin.codegen.customization.s3 - -import aws.sdk.kotlin.codegen.testutil.model -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Test -import software.amazon.smithy.kotlin.codegen.test.defaultSettings -import kotlin.test.assertTrue - -/** - * Verify [UnwrappedXmlOutputIntegration] is enabled for proper service (S3) - */ -class UnwrappedXmlOutputIntegrationTest { - @Test - fun testNonS3Model() { - val model = model("NotS3") - val actual = UnwrappedXmlOutputIntegration().enabledForService(model, model.defaultSettings()) - assertFalse(actual) - } - - @Test - fun testS3Model() { - val model = model("S3") - val actual = UnwrappedXmlOutputIntegration().enabledForService(model, model.defaultSettings()) - assertTrue(actual) - } -} diff --git a/codegen/sdk/aws-models/accessanalyzer.json b/codegen/sdk/aws-models/accessanalyzer.json index 81bcf0da2ab..94e48611792 100644 --- a/codegen/sdk/aws-models/accessanalyzer.json +++ b/codegen/sdk/aws-models/accessanalyzer.json @@ -7,7 +7,7 @@ "actions": { "target": "com.amazonaws.accessanalyzer#ActionsList", "traits": { - "smithy.api#documentation": "

A list of actions for the access permissions.

", + "smithy.api#documentation": "

A list of actions for the access permissions. Any strings that can be used as an action\n in an IAM policy can be used in the list of actions to check.

", "smithy.api#length": { "max": 100 }, @@ -2529,7 +2529,7 @@ "type": { "target": "com.amazonaws.accessanalyzer#Type", "traits": { - "smithy.api#documentation": "

The type of analyzer to create. Only ACCOUNT, ORGANIZATION,\n ACCOUNT_UNUSED_ACCESS, and ORGANIZTAION_UNUSED_ACCESS\n analyzers are supported. You can create only one analyzer per account per Region. You can\n create up to 5 analyzers per organization per Region.

", + "smithy.api#documentation": "

The type of analyzer to create. Only ACCOUNT, ORGANIZATION,\n ACCOUNT_UNUSED_ACCESS, and ORGANIZATION_UNUSED_ACCESS\n analyzers are supported. You can create only one analyzer per account per Region. You can\n create up to 5 analyzers per organization per Region.

", "smithy.api#required": {} } }, @@ -3807,7 +3807,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about the specified finding.

", + "smithy.api#documentation": "

Retrieves information about the specified finding. GetFinding and GetFindingV2 both use\n access-analyzer:GetFinding in the Action element of an IAM\n policy statement. You must have permission to perform the\n access-analyzer:GetFinding action.

", "smithy.api#http": { "uri": "/finding/{id}", "method": "GET", @@ -3880,7 +3880,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about the specified finding.

", + "smithy.api#documentation": "

Retrieves information about the specified finding. GetFinding and GetFindingV2 both use\n access-analyzer:GetFinding in the Action element of an IAM\n policy statement. You must have permission to perform the\n access-analyzer:GetFinding action.

", "smithy.api#http": { "uri": "/findingv2/{id}", "method": "GET", @@ -4704,7 +4704,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of resources of the specified type that have been analyzed by the\n specified analyzer..

", + "smithy.api#documentation": "

Retrieves a list of resources of the specified type that have been analyzed by the\n specified external access analyzer. This action is not supported for unused access\n analyzers.

", "smithy.api#http": { "uri": "/analyzed-resource", "method": "POST", @@ -4970,7 +4970,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer.

\n

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", + "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer. ListFindings and\n ListFindingsV2 both use access-analyzer:ListFindings in the\n Action element of an IAM policy statement. You must have permission to\n perform the access-analyzer:ListFindings action.

\n

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", "smithy.api#http": { "uri": "/finding", "method": "POST", @@ -5071,7 +5071,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer.

\n

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", + "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer. ListFindings and\n ListFindingsV2 both use access-analyzer:ListFindings in the\n Action element of an IAM policy statement. You must have permission to\n perform the access-analyzer:ListFindings action.

\n

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", "smithy.api#http": { "uri": "/findingv2", "method": "POST", @@ -5970,7 +5970,7 @@ } }, "traits": { - "smithy.api#documentation": "

Proposed access control configuration for an Amazon S3 directory bucket. You can propose a\n configuration for a new Amazon S3 directory bucket or an existing Amazon S3 directory bucket that you\n own by specifying the Amazon S3 bucket policy. If the configuration is for an existing Amazon S3\n directory bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the\n existing policy attached to the directory bucket. If the access preview is for a new\n resource and you do not specify the Amazon S3 bucket policy, the access preview assumes an\n directory bucket without a policy. To propose deletion of an existing bucket policy, you\n can specify an empty string. For more information about bucket policy limits, see Example bucket policies.

" + "smithy.api#documentation": "

Proposed access control configuration for an Amazon S3 directory bucket. You can propose a\n configuration for a new Amazon S3 directory bucket or an existing Amazon S3 directory bucket that you\n own by specifying the Amazon S3 bucket policy. If the configuration is for an existing Amazon S3\n directory bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the\n existing policy attached to the directory bucket. If the access preview is for a new\n resource and you do not specify the Amazon S3 bucket policy, the access preview assumes an\n directory bucket without a policy. To propose deletion of an existing bucket policy, you\n can specify an empty string. For more information about Amazon S3 directory bucket policies, see\n Example directory bucket policies for S3 Express One Zone.

" } }, "com.amazonaws.accessanalyzer#S3ExpressDirectoryBucketPolicy": { diff --git a/codegen/sdk/aws-models/amplifyuibuilder.json b/codegen/sdk/aws-models/amplifyuibuilder.json index 77bdbeb5fe4..cf17284237f 100644 --- a/codegen/sdk/aws-models/amplifyuibuilder.json +++ b/codegen/sdk/aws-models/amplifyuibuilder.json @@ -73,11 +73,20 @@ { "target": "com.amazonaws.amplifyuibuilder#GetMetadata" }, + { + "target": "com.amazonaws.amplifyuibuilder#ListTagsForResource" + }, { "target": "com.amazonaws.amplifyuibuilder#PutMetadataFlag" }, { "target": "com.amazonaws.amplifyuibuilder#RefreshToken" + }, + { + "target": "com.amazonaws.amplifyuibuilder#TagResource" + }, + { + "target": "com.amazonaws.amplifyuibuilder#UntagResource" } ], "resources": [ @@ -101,6 +110,9 @@ "cloudFormationName": "AmplifyUIBuilder", "cloudTrailEventSource": "amplifyuibuilder.amazonaws.com" }, + "aws.api#tagEnabled": { + "tagOnCreate": true + }, "aws.auth#sigv4": { "name": "amplifyuibuilder" }, @@ -129,7 +141,7 @@ ], "aws.protocols#restJson1": {}, "smithy.api#cors": {}, - "smithy.api#documentation": "

The Amplify UI Builder API provides a programmatic interface for creating\n and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's\n backend Amazon Web Services resources.

\n

You can also use the Amplify Studio visual designer to create UI components\n and model data for an app. For more information, see Introduction in the\n Amplify Docs.

\n

The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and\n documentation for client app development. For more information, see the Amplify Framework. For more information about\n deploying an Amplify application to Amazon Web Services, see the Amplify User Guide.

", + "smithy.api#documentation": "

The Amplify UI Builder API provides a programmatic interface for creating\n and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's\n backend Amazon Web Services resources.

\n

You can also use the Amplify Studio visual designer to create UI components\n and model data for an app. For more information, see Introduction in the\n Amplify Docs.

\n

The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and\n documentation for client app development. For more information, see the Amplify Framework. For more information about\n deploying an Amplify application to Amazon Web Services, see the Amplify User Guide.

", "smithy.api#title": "AWS Amplify UI Builder", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1608,12 +1620,6 @@ "aws.api#arn": { "template": "app/{appId}/environment/{environmentName}/codegen-jobs/{id}" }, - "aws.cloudformation#cfnResource": { - "name": "CodegenJob", - "additionalSchemas": [ - "com.amazonaws.amplifyuibuilder#CodegenJob" - ] - }, "aws.iam#conditionKeys": [ "aws:ResourceTag/${TagKey}" ] @@ -1786,7 +1792,7 @@ "createdAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnExcludeProperty": {}, + "aws.cloudformation#cfnMutability": "read", "smithy.api#documentation": "

The time that the component was created.

", "smithy.api#required": {}, "smithy.api#timestampFormat": "date-time" @@ -1795,7 +1801,7 @@ "modifiedAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnExcludeProperty": {}, + "aws.cloudformation#cfnMutability": "read", "smithy.api#documentation": "

The time that the component was modified.

", "smithy.api#timestampFormat": "date-time" } @@ -1803,7 +1809,6 @@ "tags": { "target": "com.amazonaws.amplifyuibuilder#Tags", "traits": { - "aws.cloudformation#cfnMutability": "create-and-read", "smithy.api#documentation": "

One or more key-value pairs to use when tagging the component.

" } }, @@ -2304,6 +2309,9 @@ "aws.api#arn": { "template": "app/{appId}/environment/{environmentName}/components/{id}" }, + "aws.api#taggable": { + "property": "tags" + }, "aws.cloudformation#cfnResource": { "name": "Component", "additionalSchemas": [ @@ -2436,7 +2444,9 @@ "aws:RequestTag/${TagKey}" ], "aws.iam#requiredActions": [ - "amplify:GetApp" + "amplify:GetApp", + "amplifyuibuilder:GetComponent", + "amplifyuibuilder:TagResource" ], "smithy.api#documentation": "

Creates a new component for an Amplify app.

", "smithy.api#http": { @@ -2610,9 +2620,14 @@ "aws:TagKeys", "aws:RequestTag/${TagKey}" ], - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:GetForm", + "amplifyuibuilder:TagResource", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Creates a new form for an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/forms", @@ -2774,9 +2789,13 @@ "aws:TagKeys", "aws:RequestTag/${TagKey}" ], - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:GetTheme", + "amplifyuibuilder:TagResource" + ] + }, "smithy.api#documentation": "

Creates a theme to apply to the components in an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/themes", @@ -2898,7 +2917,8 @@ ], "traits": { "aws.iam#requiredActions": [ - "amplify:GetApp" + "amplify:GetApp", + "amplifyuibuilder:UntagResource" ], "smithy.api#documentation": "

Deletes a component from an Amplify app.

", "smithy.api#http": { @@ -2957,9 +2977,13 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:TagResource", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Deletes a form from an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/forms/{id}", @@ -3017,9 +3041,12 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Deletes a theme from an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", @@ -3648,14 +3675,14 @@ } }, "com.amazonaws.amplifyuibuilder#FixedPosition": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "first", - "name": "FIRST" + "type": "enum", + "members": { + "FIRST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "first" } - ] + } } }, "com.amazonaws.amplifyuibuilder#Form": { @@ -3734,7 +3761,6 @@ "tags": { "target": "com.amazonaws.amplifyuibuilder#Tags", "traits": { - "aws.cloudformation#cfnMutability": "create-and-read", "smithy.api#documentation": "

One or more key-value pairs to use when tagging the form.

" } }, @@ -3761,18 +3787,20 @@ } }, "com.amazonaws.amplifyuibuilder#FormActionType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "create", - "name": "CREATE" - }, - { - "value": "update", - "name": "UPDATE" + "type": "enum", + "members": { + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create" } - ] + }, + "UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update" + } + } } }, "com.amazonaws.amplifyuibuilder#FormBindingElement": { @@ -3833,22 +3861,26 @@ } }, "com.amazonaws.amplifyuibuilder#FormButtonsPosition": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "top", - "name": "TOP" - }, - { - "value": "bottom", - "name": "BOTTOM" - }, - { - "value": "top_and_bottom", - "name": "TOP_AND_BOTTOM" + "type": "enum", + "members": { + "TOP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "top" } - ] + }, + "BOTTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bottom" + } + }, + "TOP_AND_BOTTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "top_and_bottom" + } + } } }, "com.amazonaws.amplifyuibuilder#FormCTA": { @@ -4070,6 +4102,9 @@ "aws.api#arn": { "template": "app/{appId}/environment/{environmentName}/forms/{id}" }, + "aws.api#taggable": { + "property": "tags" + }, "aws.cloudformation#cfnResource": { "name": "Form", "additionalSchemas": [ @@ -4229,9 +4264,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Returns an existing code generation job.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/codegen-jobs/{id}", @@ -4381,9 +4418,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Returns an existing form for an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/forms/{id}", @@ -4512,9 +4551,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Returns an existing theme for an Amplify app.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", @@ -4736,9 +4777,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Retrieves a list of code generation jobs for a specified Amplify app and backend environment.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/codegen-jobs", @@ -4856,16 +4899,6 @@ "smithy.api#readonly": {} } }, - "com.amazonaws.amplifyuibuilder#ListComponentsLimit": { - "type": "integer", - "traits": { - "smithy.api#default": 0, - "smithy.api#range": { - "min": 1, - "max": 100 - } - } - }, "com.amazonaws.amplifyuibuilder#ListComponentsRequest": { "type": "structure", "members": { @@ -4893,9 +4926,9 @@ } }, "maxResults": { - "target": "com.amazonaws.amplifyuibuilder#ListComponentsLimit", + "target": "com.amazonaws.amplifyuibuilder#ListEntityLimit", "traits": { - "smithy.api#default": 0, + "smithy.api#default": null, "smithy.api#documentation": "

The maximum number of components to retrieve.

", "smithy.api#httpQuery": "maxResults" } @@ -4920,6 +4953,15 @@ } } }, + "com.amazonaws.amplifyuibuilder#ListEntityLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, "com.amazonaws.amplifyuibuilder#ListForms": { "type": "operation", "input": { @@ -4937,9 +4979,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Retrieves a list of forms for a specified Amplify app and backend environment.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/forms", @@ -4954,16 +4998,6 @@ "smithy.api#readonly": {} } }, - "com.amazonaws.amplifyuibuilder#ListFormsLimit": { - "type": "integer", - "traits": { - "smithy.api#default": 0, - "smithy.api#range": { - "min": 1, - "max": 100 - } - } - }, "com.amazonaws.amplifyuibuilder#ListFormsRequest": { "type": "structure", "members": { @@ -4991,9 +5025,9 @@ } }, "maxResults": { - "target": "com.amazonaws.amplifyuibuilder#ListFormsLimit", + "target": "com.amazonaws.amplifyuibuilder#ListEntityLimit", "traits": { - "smithy.api#default": 0, + "smithy.api#default": null, "smithy.api#documentation": "

The maximum number of forms to retrieve.

", "smithy.api#httpQuery": "maxResults" } @@ -5018,6 +5052,71 @@ } } }, + "com.amazonaws.amplifyuibuilder#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ThrottlingException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of tags for a specified Amazon Resource Name (ARN).

", + "smithy.api#http": { + "uri": "/tags/{resourceArn}", + "method": "GET" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to list tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.amplifyuibuilder#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.amplifyuibuilder#Tags", + "traits": { + "smithy.api#documentation": "

A list of tag key value pairs for a specified Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.amplifyuibuilder#ListThemes": { "type": "operation", "input": { @@ -5035,9 +5134,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Retrieves a list of themes for a specified Amplify app and backend\n environment.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/themes", @@ -5052,16 +5153,6 @@ "smithy.api#readonly": {} } }, - "com.amazonaws.amplifyuibuilder#ListThemesLimit": { - "type": "integer", - "traits": { - "smithy.api#default": 0, - "smithy.api#range": { - "min": 1, - "max": 100 - } - } - }, "com.amazonaws.amplifyuibuilder#ListThemesRequest": { "type": "structure", "members": { @@ -5089,9 +5180,9 @@ } }, "maxResults": { - "target": "com.amazonaws.amplifyuibuilder#ListThemesLimit", + "target": "com.amazonaws.amplifyuibuilder#ListEntityLimit", "traits": { - "smithy.api#default": 0, + "smithy.api#default": null, "smithy.api#documentation": "

The maximum number of theme results to return in the response.

", "smithy.api#httpQuery": "maxResults" } @@ -5235,7 +5326,8 @@ "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/metadata/features/{featureName}", "method": "PUT" - } + }, + "smithy.api#idempotent": {} } }, "com.amazonaws.amplifyuibuilder#PutMetadataFlagBody": { @@ -5542,16 +5634,20 @@ } }, "com.amazonaws.amplifyuibuilder#SortDirection": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ASC" - }, - { - "value": "DESC" + "type": "enum", + "members": { + "ASC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASC" } - ] + }, + "DESC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESC" + } + } } }, "com.amazonaws.amplifyuibuilder#SortProperty": { @@ -5602,9 +5698,11 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp" + ] + }, "smithy.api#documentation": "

Starts a code generation job for a specified Amplify app and backend environment.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/codegen-jobs", @@ -5709,22 +5807,26 @@ } }, "com.amazonaws.amplifyuibuilder#StorageAccessLevel": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "public", - "name": "PUBLIC" - }, - { - "value": "protected", - "name": "PROTECTED" - }, - { - "value": "private", - "name": "PRIVATE" + "type": "enum", + "members": { + "PUBLIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public" } - ] + }, + "PROTECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "protected" + } + }, + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + } } }, "com.amazonaws.amplifyuibuilder#StrValues": { @@ -5743,6 +5845,82 @@ "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" } }, + "com.amazonaws.amplifyuibuilder#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.amplifyuibuilder#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ThrottlingException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Tags the resource with a tag key and value.

", + "smithy.api#http": { + "uri": "/tags/{resourceArn}", + "method": "POST" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to tag a resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.amplifyuibuilder#Tags", + "traits": { + "smithy.api#documentation": "

A list of tag key value pairs for a specified Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.amplifyuibuilder#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.amplifyuibuilder#TagValue": { "type": "string", "traits": { @@ -5795,7 +5973,7 @@ "createdAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnExcludeProperty": {}, + "aws.cloudformation#cfnMutability": "read", "smithy.api#documentation": "

The time that the theme was created.

", "smithy.api#required": {}, "smithy.api#timestampFormat": "date-time" @@ -5804,7 +5982,7 @@ "modifiedAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnExcludeProperty": {}, + "aws.cloudformation#cfnMutability": "read", "smithy.api#documentation": "

The time that the theme was modified.

", "smithy.api#timestampFormat": "date-time" } @@ -5825,7 +6003,6 @@ "tags": { "target": "com.amazonaws.amplifyuibuilder#Tags", "traits": { - "aws.cloudformation#cfnMutability": "create-and-read", "smithy.api#documentation": "

One or more key-value pairs to use when tagging the theme.

" } } @@ -5891,6 +6068,9 @@ "aws.api#arn": { "template": "app/{appId}/environment/{environmentName}/themes/{id}" }, + "aws.api#taggable": { + "property": "tags" + }, "aws.cloudformation#cfnResource": { "name": "Theme", "additionalSchemas": [ @@ -6028,6 +6208,71 @@ "smithy.api#httpError": 401 } }, + "com.amazonaws.amplifyuibuilder#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ThrottlingException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Untags a resource with a specified Amazon Resource Name (ARN).

", + "smithy.api#http": { + "uri": "/tags/{resourceArn}", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to untag a resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.amplifyuibuilder#TagKeyList", + "traits": { + "smithy.api#documentation": "

The tag keys to use to untag a resource.

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.amplifyuibuilder#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.amplifyuibuilder#UpdateComponent": { "type": "operation", "input": { @@ -6048,9 +6293,13 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:TagResource", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Updates an existing component.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/components/{id}", @@ -6218,9 +6467,14 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:GetForm", + "amplifyuibuilder:TagResource", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Updates an existing form.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/forms/{id}", @@ -6370,9 +6624,14 @@ } ], "traits": { - "aws.iam#requiredActions": [ - "amplify:GetApp" - ], + "aws.iam#iamAction": { + "requiredActions": [ + "amplify:GetApp", + "amplifyuibuilder:GetTheme", + "amplifyuibuilder:TagResource", + "amplifyuibuilder:UntagResource" + ] + }, "smithy.api#documentation": "

Updates an existing theme.

", "smithy.api#http": { "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", diff --git a/codegen/sdk/aws-models/api-gateway.json b/codegen/sdk/aws-models/api-gateway.json index 416a13b291d..718c4eb85f0 100644 --- a/codegen/sdk/aws-models/api-gateway.json +++ b/codegen/sdk/aws-models/api-gateway.json @@ -2683,7 +2683,7 @@ "schema": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

The schema for the model. For application/json models, this should be JSON schema draft 4 model.

" + "smithy.api#documentation": "

The schema for the model. For application/json models, this should be JSON schema draft 4 model. The maximum size of the model is 400 KB.

" } }, "contentType": { @@ -9144,7 +9144,7 @@ "target": "com.amazonaws.apigateway#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs.

" + "smithy.api#documentation": "

Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.

" } }, "throttlingBurstLimit": { @@ -10543,7 +10543,7 @@ "target": "com.amazonaws.apigateway#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether a cache cluster is enabled for the stage.

" + "smithy.api#documentation": "

Specifies whether a cache cluster is enabled for the stage. To activate a method-level cache, set CachingEnabled to true for a method.

" } }, "cacheClusterSize": { @@ -12195,7 +12195,7 @@ } ], "traits": { - "smithy.api#documentation": "

Changes information about a model.

", + "smithy.api#documentation": "

Changes information about a model. The maximum size of the model is 400 KB.

", "smithy.api#http": { "method": "PATCH", "uri": "/restapis/{restApiId}/models/{modelName}", diff --git a/codegen/sdk/aws-models/appsync.json b/codegen/sdk/aws-models/appsync.json index 8b30eca4a3e..925e9273fe0 100644 --- a/codegen/sdk/aws-models/appsync.json +++ b/codegen/sdk/aws-models/appsync.json @@ -2250,7 +2250,7 @@ "healthMetricsConfig": { "target": "com.amazonaws.appsync#CacheHealthMetricsConfig", "traits": { - "smithy.api#documentation": "

Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

\n
    \n
  • \n

    NetworkBandwidthOutAllowanceExceeded: The number of times a specified GraphQL operation was\n called.

    \n
  • \n
  • \n

    EngineCPUUtilization: The number of GraphQL errors that occurred during a specified GraphQL\n operation.

    \n
  • \n
\n

Metrics will be recorded by API ID. You can set the value to ENABLED or\n DISABLED.

" + "smithy.api#documentation": "

Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

\n
    \n
  • \n

    NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded\n the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache\n configuration.

    \n
  • \n
  • \n

    EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is\n useful for diagnosing bottlenecks in a cache configuration.

    \n
  • \n
\n

Metrics will be recorded by API ID. You can set the value to ENABLED or\n DISABLED.

" } } }, @@ -4331,14 +4331,14 @@ "resolverLevelMetricsBehavior": { "target": "com.amazonaws.appsync#ResolverLevelMetricsBehavior", "traits": { - "smithy.api#documentation": "

Controls how resolver metrics will be emitted to CloudWatch. Resolver metrics include:

\n
    \n
  • \n

    GraphQL errors: The number of GraphQL errors that occurred.

    \n
  • \n
  • \n

    Requests: The number of invocations that occurred during a request.

    \n
  • \n
  • \n

    Latency: The time to complete a resolver invocation.

    \n
  • \n
  • \n

    Cache hits: The number of cache hits during a request.

    \n
  • \n
  • \n

    Cache misses: The number of cache misses during a request.

    \n
  • \n
\n

These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics will be\n recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of these values at\n a time:

\n
    \n
  • \n

    \n FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers in the\n request.

    \n
  • \n
  • \n

    \n PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the\n metricConfig value set to ENABLED.

    \n
  • \n
", + "smithy.api#documentation": "

Controls how resolver metrics will be emitted to CloudWatch. Resolver metrics include:

\n
    \n
  • \n

    GraphQL errors: The number of GraphQL errors that occurred.

    \n
  • \n
  • \n

    Requests: The number of invocations that occurred during a request.

    \n
  • \n
  • \n

    Latency: The time to complete a resolver invocation.

    \n
  • \n
  • \n

    Cache hits: The number of cache hits during a request.

    \n
  • \n
  • \n

    Cache misses: The number of cache misses during a request.

    \n
  • \n
\n

These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics will be\n recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of these values at\n a time:

\n
    \n
  • \n

    \n FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers in the\n request.

    \n
  • \n
  • \n

    \n PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the\n metricsConfig value set to ENABLED.

    \n
  • \n
", "smithy.api#required": {} } }, "dataSourceLevelMetricsBehavior": { "target": "com.amazonaws.appsync#DataSourceLevelMetricsBehavior", "traits": { - "smithy.api#documentation": "

Controls how data source metrics will be emitted to CloudWatch. Data source metrics include:

\n
    \n
  • \n

    Requests: The number of invocations that occured during a request.

    \n
  • \n
  • \n

    Latency: The time to complete a data source invocation.

    \n
  • \n
  • \n

    Errors: The number of errors that occurred during a data source invocation.

    \n
  • \n
\n

These metrics can be emitted to CloudWatch per data source or for all data sources in the request. Metrics\n will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior accepts one of\n these values at a time:

\n
    \n
  • \n

    \n FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data sources\n in the request.

    \n
  • \n
  • \n

    \n PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that have the\n metricConfig value set to ENABLED.

    \n
  • \n
", + "smithy.api#documentation": "

Controls how data source metrics will be emitted to CloudWatch. Data source metrics include:

\n
    \n
  • \n

    Requests: The number of invocations that occured during a request.

    \n
  • \n
  • \n

    Latency: The time to complete a data source invocation.

    \n
  • \n
  • \n

    Errors: The number of errors that occurred during a data source invocation.

    \n
  • \n
\n

These metrics can be emitted to CloudWatch per data source or for all data sources in the request. Metrics\n will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior accepts one of\n these values at a time:

\n
    \n
  • \n

    \n FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data sources\n in the request.

    \n
  • \n
  • \n

    \n PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that have the\n metricsConfig value set to ENABLED.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -4351,7 +4351,7 @@ } }, "traits": { - "smithy.api#documentation": "

Enables and controls the enhanced metrics feature. Enhanced metrics emit granular data on API usage and\n performance such as AppSync request and error counts, latency, and cache hits/misses. All enhanced metric data\n is sent to your CloudWatch account, and you can configure the types of data that will be sent.

\n

Enhanced metrics can be configured at the resolver, data source, and operation levels.\n EnhancedMetricsConfig contains three required parameters, each controlling one of these\n categories:

\n
    \n
  1. \n

    \n resolverLevelMetricsBehavior: Controls how resolver metrics will be emitted to\n CloudWatch. Resolver metrics include:

    \n
      \n
    • \n

      GraphQL errors: The number of GraphQL errors that occurred.

      \n
    • \n
    • \n

      Requests: The number of invocations that occurred during a request.

      \n
    • \n
    • \n

      Latency: The time to complete a resolver invocation.

      \n
    • \n
    • \n

      Cache hits: The number of cache hits during a request.

      \n
    • \n
    • \n

      Cache misses: The number of cache misses during a request.

      \n
    • \n
    \n

    These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics\n will be recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of\n these values at a time:

    \n
      \n
    • \n

      \n FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers\n in the request.

      \n
    • \n
    • \n

      \n PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the\n metricConfig value set to ENABLED.

      \n
    • \n
    \n
  2. \n
  3. \n

    \n dataSourceLevelMetricsBehavior: Controls how data source metrics will be emitted to\n CloudWatch. Data source metrics include:

    \n
      \n
    • \n

      Requests: The number of invocations that occured during a request.

      \n
    • \n
    • \n

      Latency: The time to complete a data source invocation.

      \n
    • \n
    • \n

      Errors: The number of errors that occurred during a data source invocation.

      \n
    • \n
    \n

    These metrics can be emitted to CloudWatch per data source or for all data sources in the request.\n Metrics will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior\n accepts one of these values at a time:

    \n
      \n
    • \n

      \n FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data\n sources in the request.

      \n
    • \n
    • \n

      \n PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that\n have the metricConfig value set to ENABLED.

      \n
    • \n
    \n
  4. \n
  5. \n

    \n operationLevelMetricsConfig: Controls how operation metrics will be emitted to\n CloudWatch. Operation metrics include:

    \n
      \n
    • \n

      Requests: The number of times a specified GraphQL operation was called.

      \n
    • \n
    • \n

      GraphQL errors: The number of GraphQL errors that occurred during a specified GraphQL\n operation.

      \n
    • \n
    \n

    Metrics will be recorded by API ID and operation name. You can set the value to ENABLED\n or DISABLED.

    \n
  6. \n
" + "smithy.api#documentation": "

Enables and controls the enhanced metrics feature. Enhanced metrics emit granular data on API usage and\n performance such as AppSync request and error counts, latency, and cache hits/misses. All enhanced metric data\n is sent to your CloudWatch account, and you can configure the types of data that will be sent.

\n

Enhanced metrics can be configured at the resolver, data source, and operation levels.\n EnhancedMetricsConfig contains three required parameters, each controlling one of these\n categories:

\n
    \n
  1. \n

    \n resolverLevelMetricsBehavior: Controls how resolver metrics will be emitted to\n CloudWatch. Resolver metrics include:

    \n
      \n
    • \n

      GraphQL errors: The number of GraphQL errors that occurred.

      \n
    • \n
    • \n

      Requests: The number of invocations that occurred during a request.

      \n
    • \n
    • \n

      Latency: The time to complete a resolver invocation.

      \n
    • \n
    • \n

      Cache hits: The number of cache hits during a request.

      \n
    • \n
    • \n

      Cache misses: The number of cache misses during a request.

      \n
    • \n
    \n

    These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics\n will be recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of\n these values at a time:

    \n
      \n
    • \n

      \n FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers\n in the request.

      \n
    • \n
    • \n

      \n PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the\n metricsConfig value set to ENABLED.

      \n
    • \n
    \n
  2. \n
  3. \n

    \n dataSourceLevelMetricsBehavior: Controls how data source metrics will be emitted to\n CloudWatch. Data source metrics include:

    \n
      \n
    • \n

      Requests: The number of invocations that occured during a request.

      \n
    • \n
    • \n

      Latency: The time to complete a data source invocation.

      \n
    • \n
    • \n

      Errors: The number of errors that occurred during a data source invocation.

      \n
    • \n
    \n

    These metrics can be emitted to CloudWatch per data source or for all data sources in the request.\n Metrics will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior\n accepts one of these values at a time:

    \n
      \n
    • \n

      \n FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data\n sources in the request.

      \n
    • \n
    • \n

      \n PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that\n have the metricsConfig value set to ENABLED.

      \n
    • \n
    \n
  4. \n
  5. \n

    \n operationLevelMetricsConfig: Controls how operation metrics will be emitted to\n CloudWatch. Operation metrics include:

    \n
      \n
    • \n

      Requests: The number of times a specified GraphQL operation was called.

      \n
    • \n
    • \n

      GraphQL errors: The number of GraphQL errors that occurred during a specified GraphQL\n operation.

      \n
    • \n
    \n

    Metrics will be recorded by API ID and operation name. You can set the value to ENABLED\n or DISABLED.

    \n
  6. \n
" } }, "com.amazonaws.appsync#EnvironmentVariableKey": { @@ -8422,7 +8422,7 @@ "healthMetricsConfig": { "target": "com.amazonaws.appsync#CacheHealthMetricsConfig", "traits": { - "smithy.api#documentation": "

Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

\n
    \n
  • \n

    NetworkBandwidthOutAllowanceExceeded: The number of times a specified GraphQL operation was\n called.

    \n
  • \n
  • \n

    EngineCPUUtilization: The number of GraphQL errors that occurred during a specified GraphQL\n operation.

    \n
  • \n
\n

Metrics will be recorded by API ID. You can set the value to ENABLED or\n DISABLED.

" + "smithy.api#documentation": "

Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

\n
    \n
  • \n

    NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded\n the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache\n configuration.

    \n
  • \n
  • \n

    EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is\n useful for diagnosing bottlenecks in a cache configuration.

    \n
  • \n
\n

Metrics will be recorded by API ID. You can set the value to ENABLED or\n DISABLED.

" } } }, diff --git a/codegen/sdk/aws-models/auto-scaling.json b/codegen/sdk/aws-models/auto-scaling.json index f9a0e81b737..8786398bda5 100644 --- a/codegen/sdk/aws-models/auto-scaling.json +++ b/codegen/sdk/aws-models/auto-scaling.json @@ -2800,7 +2800,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

\n

Creates an Auto Scaling group with the specified name and attributes.

\n

If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit,\n call the DescribeAccountLimits API. For information about updating\n this limit, see Quotas for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

\n

For introductory exercises for creating an Auto Scaling group, see Getting started with\n Amazon EC2 Auto Scaling and Tutorial: Set up a\n scaled and load-balanced application in the\n Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling\n groups in the Amazon EC2 Auto Scaling User Guide.

\n

Every Auto Scaling group has three size properties (DesiredCapacity,\n MaxSize, and MinSize). Usually, you set these sizes based\n on a specific number of instances. However, if you configure a mixed instances policy\n that defines weights for the instance types, you must specify these sizes with the same\n units that you use for weighting instances.

", + "smithy.api#documentation": "

\n We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

\n

Creates an Auto Scaling group with the specified name and attributes.

\n

If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit,\n call the DescribeAccountLimits API. For information about updating\n this limit, see Quotas for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

\n

If you're new to Amazon EC2 Auto Scaling, see the introductory tutorials in Get started\n with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

\n

Every Auto Scaling group has three size properties (DesiredCapacity,\n MaxSize, and MinSize). Usually, you set these sizes based\n on a specific number of instances. However, if you configure a mixed instances policy\n that defines weights for the instance types, you must specify these sizes with the same\n units that you use for weighting instances.

", "smithy.api#examples": [ { "title": "To create an Auto Scaling group", @@ -6691,13 +6691,13 @@ "SpotMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.autoscaling#NullablePositiveInteger", "traits": { - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage\n higher than an identified Spot price. The identified Spot price is the price of the\n lowest priced current generation C, M, or R instance type with your specified\n attributes. If no current generation C, M, or R instance type matches your attributes,\n then the identified price is from either the lowest priced current generation instance\n types or, failing that, the lowest priced previous generation instance types that match\n your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will\n exclude instance types whose price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per-vCPU or\n per-memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be\n specified.

\n
\n

Default: 100\n

" + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage\n higher than an identified Spot price. The identified Spot price is the price of the\n lowest priced current generation C, M, or R instance type with your specified\n attributes. If no current generation C, M, or R instance type matches your attributes,\n then the identified price is from either the lowest priced current generation instance\n types or, failing that, the lowest priced previous generation instance types that match\n your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will\n exclude instance types whose price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per-vCPU or\n per-memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If\n you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection\n to consistently select from a wide range of instance types. To indicate no price\n protection threshold for Spot Instances, meaning you want to consider all instance\n types that match your attributes, include one of these parameters and specify a high\n value, such as 999999.

\n
" } }, "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { "target": "com.amazonaws.autoscaling#NullablePositiveInteger", "traits": { - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage\n of an identified On-Demand price. The identified On-Demand price is the price of the\n lowest priced current generation C, M, or R instance type with your specified\n attributes. If no current generation C, M, or R instance type matches your attributes,\n then the identified price is from either the lowest priced current generation instance\n types or, failing that, the lowest priced previous generation instance types that match\n your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will\n exclude instance types whose price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as\n 999999.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per-vCPU or\n per-memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If\n you don't specify either, then SpotMaxPricePercentageOverLowestPrice is\n used and the value for that parameter defaults to 100.

\n
" + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage\n of an identified On-Demand price. The identified On-Demand price is the price of the\n lowest priced current generation C, M, or R instance type with your specified\n attributes. If no current generation C, M, or R instance type matches your attributes,\n then the identified price is from either the lowest priced current generation instance\n types or, failing that, the lowest priced previous generation instance types that match\n your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will\n exclude instance types whose price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per-vCPU or\n per-memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If\n you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection\n to consistently select from a wide range of instance types. To indicate no price\n protection threshold for Spot Instances, meaning you want to consider all instance\n types that match your attributes, include one of these parameters and specify a high\n value, such as 999999.

\n
" } }, "OnDemandMaxPricePercentageOverLowestPrice": { @@ -9651,7 +9651,7 @@ "PolicyType": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen64", "traits": { - "smithy.api#documentation": "

One of the following policy types:

\n
    \n
  • \n

    \n TargetTrackingScaling\n

    \n
  • \n
  • \n

    \n StepScaling\n

    \n
  • \n
  • \n

    \n SimpleScaling (default)

    \n
  • \n
  • \n

    \n PredictiveScaling\n

    \n
  • \n
\n

For more information, see Target tracking\n scaling policies and Step and simple scaling\n policies in the Amazon EC2 Auto Scaling User Guide.

" + "smithy.api#documentation": "

One of the following policy types:

\n
    \n
  • \n

    \n TargetTrackingScaling\n

    \n
  • \n
  • \n

    \n StepScaling\n

    \n
  • \n
  • \n

    \n SimpleScaling (default)

    \n
  • \n
  • \n

    \n PredictiveScaling\n

    \n
  • \n
\n

For more information, see Target tracking\n scaling policies and Step and simple scaling\n policies in the Amazon EC2 Auto Scaling User Guide.

" } }, "AdjustmentType": { @@ -9669,7 +9669,7 @@ "MinAdjustmentMagnitude": { "target": "com.amazonaws.autoscaling#MinAdjustmentMagnitude", "traits": { - "smithy.api#documentation": "

The minimum value to scale by when the adjustment type is\n PercentChangeInCapacity.

" + "smithy.api#documentation": "

The minimum value to scale by when the adjustment type is\n PercentChangeInCapacity.

" } }, "ScalingAdjustment": { @@ -9693,7 +9693,7 @@ "MetricAggregationType": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen32", "traits": { - "smithy.api#documentation": "

The aggregation type for the CloudWatch metrics. The valid values are Minimum,\n Maximum, and Average.

" + "smithy.api#documentation": "

The aggregation type for the CloudWatch metrics. The valid values are Minimum,\n Maximum, and Average.

" } }, "EstimatedInstanceWarmup": { diff --git a/codegen/sdk/aws-models/batch.json b/codegen/sdk/aws-models/batch.json index 440703338f0..5e478412b07 100644 --- a/codegen/sdk/aws-models/batch.json +++ b/codegen/sdk/aws-models/batch.json @@ -1549,7 +1549,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future\n DescribeJobs operations on the job. This message is also recorded in the Batch activity\n logs.

", + "smithy.api#documentation": "

A message to attach to the job that explains the reason for canceling it. This message is\n returned by future DescribeJobs operations on the job. This message is also\n recorded in the Batch activity logs.

", "smithy.api#required": {} } } @@ -1649,7 +1649,7 @@ "serviceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The service role that's associated with the compute environment that allows Batch to make\n calls to Amazon Web Services API operations on your behalf. For more information, see Batch service IAM role in\n the Batch User Guide.

" + "smithy.api#documentation": "

The service role that's associated with the compute environment that allows Batch to make\n calls to Amazon Web Services API operations on your behalf. For more information, see Batch service IAM role in the\n Batch User Guide.

" } }, "updatePolicy": { @@ -1708,7 +1708,7 @@ } }, "traits": { - "smithy.api#documentation": "

The order that compute environments are tried in for job placement within a queue. Compute\n environments are tried in ascending order. For example, if two compute environments are\n associated with a job queue, the compute environment with a lower order integer value is tried\n for job placement first. Compute environments must be in the VALID state before you\n can associate them with a job queue. All of the compute environments must be either EC2\n (EC2 or SPOT) or Fargate (FARGATE or\n FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same\n architecture. Batch doesn't support mixing compute environment architecture types in a single\n job queue.

\n
" + "smithy.api#documentation": "

The order that compute environments are tried in for job placement within a queue. Compute\n environments are tried in ascending order. For example, if two compute environments are\n associated with a job queue, the compute environment with a lower order integer value is tried\n for job placement first. Compute environments must be in the VALID state before you\n can associate them with a job queue. All of the compute environments must be either EC2\n (EC2 or SPOT) or Fargate (FARGATE or\n FARGATE_SPOT); Amazon EC2 and Fargate compute environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same\n architecture. Batch doesn't support mixing compute environment architecture types in a single\n job queue.

\n
" } }, "com.amazonaws.batch#ComputeEnvironmentOrders": { @@ -1731,7 +1731,7 @@ "allocationStrategy": { "target": "com.amazonaws.batch#CRAllocationStrategy", "traits": { - "smithy.api#documentation": "

The allocation strategy to use for the compute resource if not enough instances of the best\n fitting instance type can be allocated. This might be because of availability of the instance\n type in the Region or Amazon EC2 service limits. For more\n information, see Allocation strategies in the Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
\n
\n
BEST_FIT (default)
\n
\n

Batch selects an instance type that best fits the needs of the jobs with a preference\n for the lowest-cost instance type. If additional instances of the selected instance type\n aren't available, Batch waits for the additional instances to be available. If there aren't\n enough instances available or the user is reaching Amazon EC2 service limits,\n additional jobs aren't run until the currently running jobs are completed. This allocation\n strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with\n BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use\n a BEST_FIT allocation strategy don't support infrastructure updates and can't\n update some parameters. For more information, see Updating compute environments in\n the Batch User Guide.

\n
\n
BEST_FIT_PROGRESSIVE
\n
\n

Batch selects additional instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If\n additional instances of the previously selected instance types aren't available, Batch\n selects new instance types.

\n
\n
SPOT_CAPACITY_OPTIMIZED
\n
\n

Batch selects one or more instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types that are less likely to be\n interrupted. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
SPOT_PRICE_CAPACITY_OPTIMIZED
\n
\n

The price and capacity optimized allocation strategy looks at both price and capacity to\n select the Spot Instance pools that are the least likely to be interrupted and have the lowest\n possible price. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
\n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

" + "smithy.api#documentation": "

The allocation strategy to use for the compute resource if not enough instances of the best\n fitting instance type can be allocated. This might be because of availability of the instance\n type in the Region or Amazon EC2 service limits. For more\n information, see Allocation strategies in the Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
\n
\n
BEST_FIT (default)
\n
\n

Batch selects an instance type that best fits the needs of the jobs with a preference\n for the lowest-cost instance type. If additional instances of the selected instance type\n aren't available, Batch waits for the additional instances to be available. If there aren't\n enough instances available or the user is reaching Amazon EC2 service limits,\n additional jobs aren't run until the currently running jobs are completed. This allocation\n strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with\n BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use\n a BEST_FIT allocation strategy don't support infrastructure updates and can't\n update some parameters. For more information, see Updating compute environments in\n the Batch User Guide.

\n
\n
BEST_FIT_PROGRESSIVE
\n
\n

Batch selects additional instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If\n additional instances of the previously selected instance types aren't available, Batch\n selects new instance types.

\n
\n
SPOT_CAPACITY_OPTIMIZED
\n
\n

Batch selects one or more instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types that are less likely to be\n interrupted. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
SPOT_PRICE_CAPACITY_OPTIMIZED
\n
\n

The price and capacity optimized allocation strategy looks at both price and capacity to\n select the Spot Instance pools that are the least likely to be interrupted and have the lowest\n possible price. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
\n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

" } }, "minvCpus": { @@ -1744,7 +1744,7 @@ "target": "com.amazonaws.batch#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The maximum number of\n vCPUs that a\n compute environment can\n support.

\n \n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

\n
", + "smithy.api#documentation": "

The maximum number of\n vCPUs that a\n compute environment can\n support.

\n \n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

\n
", "smithy.api#required": {} } }, @@ -1792,13 +1792,13 @@ "instanceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. This parameter is required \n for Amazon EC2 instances types. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example,\n \n ecsInstanceRole\n or\n arn:aws:iam:::instance-profile/ecsInstanceRole\n .\n For more information, see Amazon ECS instance role in the Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. This\n parameter is required for Amazon EC2 instances types. You can specify the short name or full Amazon Resource Name (ARN)\n of an instance profile. For example, \n ecsInstanceRole\n or\n arn:aws:iam:::instance-profile/ecsInstanceRole\n .\n For more information, see Amazon ECS instance role in the Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "tags": { "target": "com.amazonaws.batch#TagsMap", "traits": { - "smithy.api#documentation": "

Key-value pair tags to be applied to EC2 resources that are launched in the compute\n environment. For Batch, these take the form of \"String1\": \"String2\", where\n String1 is the tag key and String2 is the tag value-for example,\n { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your\n Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to\n the compute environment. For more information, see Updating compute environments in the\n Batch User Guide. These tags aren't seen when using the Batch\n ListTagsForResource API operation.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

Key-value pair tags to be applied to Amazon EC2 resources that are launched in the compute\n environment. For Batch, these take the form of \"String1\": \"String2\", where\n String1 is the tag key and String2 is the tag value-for example,\n { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your\n Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to\n the compute environment. For more information, see Updating compute environments in the\n Batch User Guide. These tags aren't seen when using the Batch\n ListTagsForResource API operation.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "placementGroup": { @@ -1822,13 +1822,13 @@ "launchTemplate": { "target": "com.amazonaws.batch#LaunchTemplateSpecification", "traits": { - "smithy.api#documentation": "

The launch template to use for your compute resources. Any other compute resource parameters\n that you specify in a CreateComputeEnvironment API operation override the same\n parameters in the launch template. You must specify either the launch template ID or launch\n template name in the request, but not both. For more information, see Launch template support in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

The launch template to use for your compute resources. Any other compute resource parameters\n that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch\n template. You must specify either the launch template ID or launch template name in the request,\n but not both. For more information, see Launch template support in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "ec2Configuration": { "target": "com.amazonaws.batch#Ec2ConfigurationList", "traits": { - "smithy.api#documentation": "

Provides information that's used to select Amazon Machine Images (AMIs) for EC2 instances in\n the compute environment. If Ec2Configuration isn't specified, the default is\n ECS_AL2.

\n

One or two values can be provided.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

Provides information that's used to select Amazon Machine Images (AMIs) for Amazon EC2 instances\n in the compute environment. If Ec2Configuration isn't specified, the default is\n ECS_AL2.

\n

One or two values can be provided.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } } }, @@ -1848,7 +1848,7 @@ "maxvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of Amazon EC2 vCPUs that an environment can reach.

\n \n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

\n
" + "smithy.api#documentation": "

The maximum number of Amazon EC2 vCPUs that an environment can reach.

\n \n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

\n
" } }, "desiredvCpus": { @@ -1860,19 +1860,19 @@ "subnets": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

The VPC subnets where the compute resources are launched. Fargate compute resources can\n contain up to 16 subnets. For Fargate compute resources, providing an empty list will be\n handled as if this parameter wasn't specified and no change is made. For EC2 compute resources,\n providing an empty list removes the VPC subnets from the compute resource. For more information,\n see VPCs and\n subnets in the Amazon VPC User Guide.

\n

When updating a compute environment, changing the VPC subnets requires an infrastructure\n update of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

Batch on Amazon EC2 and Batch on Amazon EKS support Local Zones. For more information, see Local\n Zones in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web Services Local\n Zones in the Amazon EKS User Guide and Amazon ECS\n clusters in Local Zones, Wavelength Zones, and Amazon Web Services Outposts in the Amazon ECS\n Developer Guide.

\n

Batch on Fargate doesn't currently support Local Zones.

\n
" + "smithy.api#documentation": "

The VPC subnets where the compute resources are launched. Fargate compute resources can\n contain up to 16 subnets. For Fargate compute resources, providing an empty list will be\n handled as if this parameter wasn't specified and no change is made. For Amazon EC2 compute resources,\n providing an empty list removes the VPC subnets from the compute resource. For more information,\n see VPCs and\n subnets in the Amazon VPC User Guide.

\n

When updating a compute environment, changing the VPC subnets requires an infrastructure\n update of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

Batch on Amazon EC2 and Batch on Amazon EKS support Local Zones. For more information, see Local\n Zones in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web Services Local\n Zones in the Amazon EKS User Guide and Amazon ECS\n clusters in Local Zones, Wavelength Zones, and Amazon Web Services Outposts in the Amazon ECS\n Developer Guide.

\n

Batch on Fargate doesn't currently support Local Zones.

\n
" } }, "securityGroupIds": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

The Amazon EC2 security groups that are associated with instances launched in the compute\n environment. This parameter is required for Fargate compute resources, where it can contain up\n to 5 security groups. For Fargate compute resources, providing an empty list is handled as if\n this parameter wasn't specified and no change is made. For EC2 compute resources, providing an\n empty list removes the security groups from the compute resource.

\n

When updating a compute environment, changing the EC2 security groups requires an\n infrastructure update of the compute environment. For more information, see Updating compute\n environments in the Batch User Guide.

" + "smithy.api#documentation": "

The Amazon EC2 security groups that are associated with instances launched in the compute\n environment. This parameter is required for Fargate compute resources, where it can contain up\n to 5 security groups. For Fargate compute resources, providing an empty list is handled as if\n this parameter wasn't specified and no change is made. For Amazon EC2 compute resources, providing an\n empty list removes the security groups from the compute resource.

\n

When updating a compute environment, changing the Amazon EC2 security groups requires an\n infrastructure update of the compute environment. For more information, see Updating compute\n environments in the Batch User Guide.

" } }, "allocationStrategy": { "target": "com.amazonaws.batch#CRUpdateAllocationStrategy", "traits": { - "smithy.api#documentation": "

The allocation strategy to use for the compute resource if there's not enough instances of\n the best fitting instance type that can be allocated. This might be because of availability of\n the instance type in the Region or Amazon EC2 service limits. For more\n information, see Allocation strategies in the Batch User Guide.

\n

When updating a compute environment, changing the allocation strategy requires an\n infrastructure update of the compute environment. For more information, see Updating compute\n environments in the Batch User Guide. BEST_FIT isn't\n supported when updating a compute environment.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
\n
\n
BEST_FIT_PROGRESSIVE
\n
\n

Batch selects additional instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If\n additional instances of the previously selected instance types aren't available, Batch\n selects new instance types.

\n
\n
SPOT_CAPACITY_OPTIMIZED
\n
\n

Batch selects one or more instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types that are less likely to be\n interrupted. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
SPOT_PRICE_CAPACITY_OPTIMIZED
\n
\n

The price and capacity optimized allocation strategy looks at both price and capacity to\n select the Spot Instance pools that are the least likely to be interrupted and have the lowest\n possible price. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
\n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

" + "smithy.api#documentation": "

The allocation strategy to use for the compute resource if there's not enough instances of\n the best fitting instance type that can be allocated. This might be because of availability of\n the instance type in the Region or Amazon EC2 service limits. For more\n information, see Allocation strategies in the Batch User Guide.

\n

When updating a compute environment, changing the allocation strategy requires an\n infrastructure update of the compute environment. For more information, see Updating compute\n environments in the Batch User Guide. BEST_FIT isn't\n supported when updating a compute environment.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
\n
\n
BEST_FIT_PROGRESSIVE
\n
\n

Batch selects additional instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If\n additional instances of the previously selected instance types aren't available, Batch\n selects new instance types.

\n
\n
SPOT_CAPACITY_OPTIMIZED
\n
\n

Batch selects one or more instance types that are large enough to meet the requirements\n of the jobs in the queue. Its preference is for instance types that are less likely to be\n interrupted. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
SPOT_PRICE_CAPACITY_OPTIMIZED
\n
\n

The price and capacity optimized allocation strategy looks at both price and capacity to\n select the Spot Instance pools that are the least likely to be interrupted and have the lowest\n possible price. This allocation strategy is only available for Spot Instance compute\n resources.

\n
\n
\n

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and\n SPOT_PRICE_CAPACITY_OPTIMIZED\n (recommended) strategies using On-Demand or Spot Instances, and the\n BEST_FIT strategy using Spot Instances, Batch might need to exceed\n maxvCpus to meet your capacity requirements. In this event, Batch never exceeds\n maxvCpus by more than a single instance.

" } }, "instanceTypes": { @@ -1884,7 +1884,7 @@ "ec2KeyPair": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can\n use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this\n value to an empty string.

\n

When updating a compute environment, changing the EC2 key pair requires an infrastructure\n update of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can\n use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this\n value to an empty string.

\n

When updating a compute environment, changing the Amazon EC2 key pair requires an infrastructure\n update of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "instanceRole": { @@ -1896,7 +1896,7 @@ "tags": { "target": "com.amazonaws.batch#TagsMap", "traits": { - "smithy.api#documentation": "

Key-value pair tags to be applied to EC2 resources that are launched in the compute\n environment. For Batch, these take the form of \"String1\": \"String2\", where\n String1 is the tag key and String2 is the tag value-for example,\n { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your\n Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch\n ListTagsForResource API operation.

\n

When updating a compute environment, changing this setting requires an infrastructure update\n of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

Key-value pair tags to be applied to Amazon EC2 resources that are launched in the compute\n environment. For Batch, these take the form of \"String1\": \"String2\", where\n String1 is the tag key and String2 is the tag value-for example,\n { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your\n Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch\n ListTagsForResource API operation.

\n

When updating a compute environment, changing this setting requires an infrastructure update\n of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "placementGroup": { @@ -1920,7 +1920,7 @@ "ec2Configuration": { "target": "com.amazonaws.batch#Ec2ConfigurationList", "traits": { - "smithy.api#documentation": "

Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the\n compute environment. If Ec2Configuration isn't specified, the default is\n ECS_AL2.

\n

When updating a compute environment, changing this setting requires an infrastructure update\n of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide. To remove the EC2 configuration and any custom AMI ID\n specified in imageIdOverride, set this value to an empty string.

\n

One or two values can be provided.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" + "smithy.api#documentation": "

Provides information used to select Amazon Machine Images (AMIs) for Amazon EC2 instances in the\n compute environment. If Ec2Configuration isn't specified, the default is\n ECS_AL2.

\n

When updating a compute environment, changing this setting requires an infrastructure update\n of the compute environment. For more information, see Updating compute environments in the\n Batch User Guide. To remove the Amazon EC2 configuration and any custom AMI ID\n specified in imageIdOverride, set this value to an empty string.

\n

One or two values can be provided.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

\n
" } }, "updateToLatestImageVersion": { @@ -1958,13 +1958,13 @@ "vcpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The number of vCPUs reserved for the container. For jobs that run on EC2 resources, you can\n specify the vCPU requirement for the job using resourceRequirements, but you can't\n specify the vCPU requirements in both the vcpus and\n resourceRequirements object. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the\n --cpu-shares option to docker run. Each\n vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. This is required but\n can be specified in several places. It must be specified for each node at least once.

\n \n

This parameter isn't applicable to jobs that run on Fargate resources. For jobs that run\n on Fargate resources, you must specify the vCPU requirement for the job using\n resourceRequirements.

\n
" + "smithy.api#documentation": "

The number of vCPUs reserved for the container. For jobs that run on Amazon EC2 resources, you\n can specify the vCPU requirement for the job using resourceRequirements, but you\n can't specify the vCPU requirements in both the vcpus and\n resourceRequirements object. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the\n --cpu-shares option to docker run. Each\n vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. This is required but\n can be specified in several places. It must be specified for each node at least once.

\n \n

This parameter isn't applicable to jobs that run on Fargate resources. For jobs that run\n on Fargate resources, you must specify the vCPU requirement for the job using\n resourceRequirements.

\n
" } }, "memory": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

For jobs running on EC2 resources that didn't specify memory requirements using\n resourceRequirements, the number of MiB of memory reserved for the job. For other\n jobs, including all run on Fargate resources, see resourceRequirements.

" + "smithy.api#documentation": "

For jobs running on Amazon EC2 resources that didn't specify memory requirements using\n resourceRequirements, the number of MiB of memory reserved for the job. For other\n jobs, including all run on Fargate resources, see resourceRequirements.

" } }, "command": { @@ -2030,7 +2030,7 @@ "exitCode": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The exit code to return upon completion.

" + "smithy.api#documentation": "

The exit code returned upon completion.

" } }, "reason": { @@ -2084,7 +2084,7 @@ "logConfiguration": { "target": "com.amazonaws.batch#LogConfiguration", "traits": { - "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a container\n section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging\n driver that the Docker daemon uses. However, the container might use a different logging driver\n than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured\n properly on the container instance. Or, alternatively, it must be configured on a different log\n server for remote logging options. For more information on the options for different supported\n log drivers, see Configure\n logging drivers in the Docker documentation.

\n \n

Batch currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type). Additional log drivers might be\n available in future releases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" + "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a container\n section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging\n driver that the Docker daemon uses. However, the container might use a different logging driver\n than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured\n properly on the container instance. Or, alternatively, it must be configured on a different log\n server for remote logging options. For more information on the options for different supported\n log drivers, see Configure\n logging drivers in the Docker documentation.

\n \n

Batch currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type). Additional log drivers might be available in future\n releases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" } }, "secrets": { @@ -2096,13 +2096,13 @@ "networkConfiguration": { "target": "com.amazonaws.batch#NetworkConfiguration", "traits": { - "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" } }, "fargatePlatformConfiguration": { "target": "com.amazonaws.batch#FargatePlatformConfiguration", "traits": { - "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are\n running on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" } }, "ephemeralStorage": { @@ -2114,7 +2114,7 @@ "runtimePlatform": { "target": "com.amazonaws.batch#RuntimePlatform", "traits": { - "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

" + "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on\n Fargate.

" } }, "repositoryCredentials": { @@ -2137,7 +2137,7 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use resourceRequirements instead." }, - "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to override the\n vcpus parameter that's set in the job definition. It's not supported for jobs\n running on Fargate resources. For jobs that run on EC2 resources, it overrides the\n vcpus parameter set in the job definition, but doesn't override any vCPU\n requirement specified in the resourceRequirements structure in the job definition.\n To override vCPU requirements that are specified in the resourceRequirements\n structure in the job definition, resourceRequirements must be specified in the\n SubmitJob request, with type set to VCPU and\n value set to the new value. For more information, see Can't override job\n definition resource requirements in the Batch User Guide.

" + "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to override the\n vcpus parameter that's set in the job definition. It's not supported for jobs\n running on Fargate resources. For jobs that run on Amazon EC2 resources, it overrides the\n vcpus parameter set in the job definition, but doesn't override any vCPU\n requirement specified in the resourceRequirements structure in the job definition.\n To override vCPU requirements that are specified in the resourceRequirements\n structure in the job definition, resourceRequirements must be specified in the\n SubmitJob request, with type set to VCPU and\n value set to the new value. For more information, see Can't override job\n definition resource requirements in the Batch User Guide.

" } }, "memory": { @@ -2146,7 +2146,7 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use resourceRequirements instead." }, - "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to override the memory\n requirements specified in the job definition. It's not supported for jobs running on Fargate\n resources. For jobs that run on EC2 resources, it overrides the memory parameter set\n in the job definition, but doesn't override any memory requirement that's specified in the\n resourceRequirements structure in the job definition. To override memory\n requirements that are specified in the resourceRequirements structure in the job\n definition, resourceRequirements must be specified in the SubmitJob\n request, with type set to MEMORY and value set to the new\n value. For more information, see Can't override job\n definition resource requirements in the Batch User Guide.

" + "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to override the memory\n requirements specified in the job definition. It's not supported for jobs running on Fargate\n resources. For jobs that run on Amazon EC2 resources, it overrides the memory parameter\n set in the job definition, but doesn't override any memory requirement that's specified in the\n resourceRequirements structure in the job definition. To override memory\n requirements that are specified in the resourceRequirements structure in the job\n definition, resourceRequirements must be specified in the SubmitJob\n request, with type set to MEMORY and value set to the new\n value. For more information, see Can't override job\n definition resource requirements in the Batch User Guide.

" } }, "command": { @@ -2175,7 +2175,7 @@ } }, "traits": { - "smithy.api#documentation": "

The overrides that should be sent to a container.

\n

For information about using Batch overrides when you connect event sources to targets, see \n BatchContainerOverrides.

" + "smithy.api#documentation": "

The overrides that should be sent to a container.

\n

For information about using Batch overrides when you connect event sources to targets, see\n BatchContainerOverrides.

" } }, "com.amazonaws.batch#ContainerProperties": { @@ -2193,7 +2193,7 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use resourceRequirements instead." }, - "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to specify the vCPU\n requirements for the job definition. It's not supported for jobs running on Fargate resources.\n For jobs running on EC2 resources, it specifies the number of vCPUs reserved for the job.

\n

Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares\n in the Create a container section of the Docker Remote API and the\n --cpu-shares option to docker run. The\n number of vCPUs must be specified but can be specified in several places. You must specify it at\n least once for each node.

" + "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to specify the vCPU\n requirements for the job definition. It's not supported for jobs running on Fargate resources.\n For jobs running on Amazon EC2 resources, it specifies the number of vCPUs reserved for the\n job.

\n

Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares\n in the Create a container section of the Docker Remote API and the\n --cpu-shares option to docker run. The\n number of vCPUs must be specified but can be specified in several places. You must specify it at\n least once for each node.

" } }, "memory": { @@ -2202,7 +2202,7 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use resourceRequirements instead." }, - "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to specify the memory\n requirements for the job definition. It's not supported for jobs running on Fargate resources.\n For jobs that run on EC2 resources, it specifies the memory hard limit (in MiB) for a container.\n If your container attempts to exceed the specified number, it's terminated. You must specify at\n least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in\n several places. It must be specified for each node at least once.

" + "smithy.api#documentation": "

This parameter is deprecated, use resourceRequirements to specify the memory\n requirements for the job definition. It's not supported for jobs running on Fargate resources.\n For jobs that run on Amazon EC2 resources, it specifies the memory hard limit (in MiB) for a\n container. If your container attempts to exceed the specified number, it's terminated. You must\n specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be\n specified in several places. It must be specified for each node at least once.

" } }, "command": { @@ -2286,7 +2286,7 @@ "logConfiguration": { "target": "com.amazonaws.batch#LogConfiguration", "traits": { - "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a container\n section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging\n driver that the Docker daemon uses. However the container might use a different logging driver\n than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured\n properly on the container instance (or on a different log server for remote logging options). For\n more information on the options for different supported log drivers, see Configure logging drivers\n in the Docker documentation.

\n \n

Batch currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type).

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" + "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a container\n section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging\n driver that the Docker daemon uses. However the container might use a different logging driver\n than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured\n properly on the container instance (or on a different log server for remote logging options). For\n more information on the options for different supported log drivers, see Configure logging drivers\n in the Docker documentation.

\n \n

Batch currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type).

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" } }, "secrets": { @@ -2298,13 +2298,13 @@ "networkConfiguration": { "target": "com.amazonaws.batch#NetworkConfiguration", "traits": { - "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" } }, "fargatePlatformConfiguration": { "target": "com.amazonaws.batch#FargatePlatformConfiguration", "traits": { - "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are\n running on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" } }, "ephemeralStorage": { @@ -2316,7 +2316,7 @@ "runtimePlatform": { "target": "com.amazonaws.batch#RuntimePlatform", "traits": { - "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

" + "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on\n Fargate.

" } }, "repositoryCredentials": { @@ -2367,7 +2367,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Batch compute environment. You can create MANAGED or UNMANAGED compute\n environments. MANAGED compute environments can use Amazon EC2 or Fargate resources.\n UNMANAGED compute environments can only use EC2 resources.

\n

In a managed compute environment, Batch manages the capacity and instance types of the compute resources\n within the environment. This is based on the compute resource specification that you define or the launch template that you\n specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot\n Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can\n optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a\n specified percentage of the On-Demand price.

\n \n

Multi-node parallel jobs aren't supported on Spot Instances.

\n
\n

In an unmanaged compute environment, you can manage your own EC2 compute resources and have flexibility with how\n you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of\n your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the\n Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that's associated with it. Then, launch\n your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS container instance in the\n Amazon Elastic Container Service Developer Guide.

\n \n

To create a compute environment that uses EKS resources, the caller must have permissions to call\n eks:DescribeCluster.

\n
\n \n

Batch doesn't automatically upgrade the AMIs in a compute environment after it's created. For example, it\n also doesn't update the AMIs in your compute environment when a newer version of the Amazon ECS optimized AMI is\n available. You're responsible for the management of the guest operating system. This includes any updates and\n security patches. You're also responsible for any additional application software or utilities that you install on\n the compute resources. There are two ways to use a new AMI for your Batch jobs. The original method is to complete\n these steps:

\n
    \n
  1. \n

    Create a new compute environment with the new AMI.

    \n
  2. \n
  3. \n

    Add the compute environment to an existing job queue.

    \n
  4. \n
  5. \n

    Remove the earlier compute environment from your job queue.

    \n
  6. \n
  7. \n

    Delete the earlier compute environment.

    \n
  8. \n
\n

In April 2022, Batch added enhanced support for updating compute environments. For more information, see\n Updating compute\n environments. To use the enhanced updating of compute environments to update AMIs, follow these\n rules:

\n
    \n
  • \n

    Either don't set the service role (serviceRole) parameter or set it to the AWSBatchServiceRole service-linked role.

    \n
  • \n
  • \n

    Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE, \n SPOT_CAPACITY_OPTIMIZED, or SPOT_PRICE_CAPACITY_OPTIMIZED.

    \n
  • \n
  • \n

    Set the update to latest image version (updateToLatestImageVersion)\n parameter to\n true.\n The updateToLatestImageVersion parameter is used when you update a compute\n environment. This parameter is ignored when you create a compute\n environment.

    \n
  • \n
  • \n

    Don't specify an AMI ID in imageId, imageIdOverride (in \n ec2Configuration\n ), or in the launch\n template (launchTemplate). In that case, Batch selects the latest Amazon ECS optimized AMI that's\n supported by Batch at the time the infrastructure update is initiated. Alternatively, you can specify the AMI ID\n in the imageId or imageIdOverride parameters, or the launch template identified by the\n LaunchTemplate properties. Changing any of these properties starts an infrastructure update. If the\n AMI ID is specified in the launch template, it can't be replaced by specifying an AMI ID in either the\n imageId or imageIdOverride parameters. It can only be replaced by specifying a different\n launch template, or if the launch template version is set to $Default or $Latest, by\n setting either a new default version for the launch template (if $Default) or by adding a new version\n to the launch template (if $Latest).

    \n
  • \n
\n

If these rules are followed, any update that starts an infrastructure update causes the AMI ID to be\n re-selected. If the version setting in the launch template (launchTemplate) is set to\n $Latest or $Default, the latest or default version of the launch template is evaluated up\n at the time of the infrastructure update, even if the launchTemplate wasn't updated.

\n
", + "smithy.api#documentation": "

Creates an Batch compute environment. You can create MANAGED or\n UNMANAGED compute environments. MANAGED compute environments can\n use Amazon EC2 or Fargate resources. UNMANAGED compute environments can only use\n EC2 resources.

\n

In a managed compute environment, Batch manages the capacity and instance types of the\n compute resources within the environment. This is based on the compute resource specification\n that you define or the launch template that you\n specify when you create the compute environment. Either, you can choose to use EC2 On-Demand\n Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in\n your managed compute environment. You can optionally set a maximum price so that Spot\n Instances only launch when the Spot Instance price is less than a specified percentage of the\n On-Demand price.

\n \n

Multi-node parallel jobs aren't supported on Spot Instances.

\n
\n

In an unmanaged compute environment, you can manage your own EC2 compute resources and\n have flexibility with how you configure your compute resources. For example, you can use\n custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance\n AMI specification. For more information, see container instance AMIs in the\n Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment,\n you can use the DescribeComputeEnvironments operation to find the Amazon ECS\n cluster that's associated with it. Then, launch your container instances into that Amazon ECS\n cluster. For more information, see Launching an Amazon ECS container\n instance in the Amazon Elastic Container Service Developer Guide.

\n \n

To create a compute environment that uses EKS resources, the caller must have\n permissions to call eks:DescribeCluster.

\n
\n \n

Batch doesn't automatically upgrade the AMIs in a compute environment after it's\n created. For example, it also doesn't update the AMIs in your compute environment when a\n newer version of the Amazon ECS optimized AMI is available. You're responsible for the management\n of the guest operating system. This includes any updates and security patches. You're also\n responsible for any additional application software or utilities that you install on the\n compute resources. There are two ways to use a new AMI for your Batch jobs. The original\n method is to complete these steps:

\n
    \n
  1. \n

    Create a new compute environment with the new AMI.

    \n
  2. \n
  3. \n

    Add the compute environment to an existing job queue.

    \n
  4. \n
  5. \n

    Remove the earlier compute environment from your job queue.

    \n
  6. \n
  7. \n

    Delete the earlier compute environment.

    \n
  8. \n
\n

In April 2022, Batch added enhanced support for updating compute environments. For\n more information, see Updating compute environments.\n To use the enhanced updating of compute environments to update AMIs, follow these\n rules:

\n
    \n
  • \n

    Either don't set the service role (serviceRole) parameter or set it to\n the AWSBatchServiceRole service-linked role.

    \n
  • \n
  • \n

    Set the allocation strategy (allocationStrategy) parameter to\n BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, or\n SPOT_PRICE_CAPACITY_OPTIMIZED.

    \n
  • \n
  • \n

    Set the update to latest image version (updateToLatestImageVersion)\n parameter to\n true.\n The updateToLatestImageVersion parameter is used when you update a compute\n environment. This parameter is ignored when you create a compute\n environment.

    \n
  • \n
  • \n

    Don't specify an AMI ID in imageId, imageIdOverride (in\n \n ec2Configuration\n ), or in the launch template\n (launchTemplate). In that case, Batch selects the latest Amazon ECS\n optimized AMI that's supported by Batch at the time the infrastructure update is\n initiated. Alternatively, you can specify the AMI ID in the imageId or\n imageIdOverride parameters, or the launch template identified by the\n LaunchTemplate properties. Changing any of these properties starts an\n infrastructure update. If the AMI ID is specified in the launch template, it can't be\n replaced by specifying an AMI ID in either the imageId or\n imageIdOverride parameters. It can only be replaced by specifying a\n different launch template, or if the launch template version is set to\n $Default or $Latest, by setting either a new default version\n for the launch template (if $Default) or by adding a new version to the\n launch template (if $Latest).

    \n
  • \n
\n

If these rules are followed, any update that starts an infrastructure update causes the\n AMI ID to be re-selected. If the version setting in the launch template\n (launchTemplate) is set to $Latest or $Default, the\n latest or default version of the launch template is evaluated up at the time of the\n infrastructure update, even if the launchTemplate wasn't updated.

\n
", "smithy.api#examples": [ { "title": "To create a managed EC2 compute environment", @@ -2470,7 +2470,7 @@ "target": "com.amazonaws.batch#CEType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of the compute environment: MANAGED or UNMANAGED. For more information, see\n Compute Environments in the\n Batch User Guide.

", + "smithy.api#documentation": "

The type of the compute environment: MANAGED or UNMANAGED. For\n more information, see Compute Environments in the Batch User Guide.

", "smithy.api#required": {} } }, @@ -2483,25 +2483,25 @@ "unmanagedvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of vCPUs for an unmanaged compute environment. This parameter is only used for fair share\n scheduling to reserve vCPU capacity for new share identifiers. If this parameter isn't provided for a fair share job\n queue, no vCPU capacity is reserved.

\n \n

This parameter is only supported when the type parameter is set to UNMANAGED.

\n
" + "smithy.api#documentation": "

The maximum number of vCPUs for an unmanaged compute environment. This parameter is only\n used for fair share scheduling to reserve vCPU capacity for new share identifiers. If this\n parameter isn't provided for a fair share job queue, no vCPU capacity is reserved.

\n \n

This parameter is only supported when the type parameter is set to\n UNMANAGED.

\n
" } }, "computeResources": { "target": "com.amazonaws.batch#ComputeResource", "traits": { - "smithy.api#documentation": "

Details about the compute resources managed by the compute environment. This parameter is required for managed\n compute environments. For more information, see Compute Environments in the Batch User Guide.

" + "smithy.api#documentation": "

Details about the compute resources managed by the compute environment. This parameter is\n required for managed compute environments. For more information, see Compute Environments\n in the Batch User Guide.

" } }, "serviceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf. For\n more information, see Batch service IAM\n role in the Batch User Guide.

\n \n

If your account already created the Batch service-linked role, that role is used by default for your compute\n environment unless you specify a different role here. If the Batch service-linked role doesn't exist in your\n account, and no role is specified here, the service attempts to create the Batch service-linked role in your\n account.

\n
\n

If your specified role has a path other than /, then you must specify either the full role ARN\n (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path\n of /foo/, specify /foo/bar as the role name. For more information, see Friendly names\n and paths in the IAM User Guide.

\n \n

Depending on how you created your Batch service role, its ARN might contain the service-role\n path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

\n
" + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services\n services on your behalf. For more information, see Batch service IAM role in the\n Batch User Guide.

\n \n

If your account already created the Batch service-linked role, that role is used by\n default for your compute environment unless you specify a different role here. If the\n Batch service-linked role doesn't exist in your account, and no role is specified here,\n the service attempts to create the Batch service-linked role in your account.

\n
\n

If your specified role has a path other than /, then you must specify either\n the full role ARN (recommended) or prefix the role name with the path. For example, if a\n role with the name bar has a path of /foo/, specify\n /foo/bar as the role name. For more information, see Friendly\n names and paths in the IAM User Guide.

\n \n

Depending on how you created your Batch service role, its ARN might contain the\n service-role path prefix. When you only specify the name of the service role,\n Batch assumes that your ARN doesn't use the service-role path prefix. Because\n of this, we recommend that you specify the full ARN of your service role when you create\n compute environments.

\n
" } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General\n Reference.

\n

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't\n propagate to the underlying compute resources.

" + "smithy.api#documentation": "

The tags that you apply to the compute environment to help you categorize and organize\n your resources. Each tag consists of a key and an optional value. For more information, see\n Tagging Amazon Web Services\n Resources in Amazon Web Services General Reference.

\n

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't propagate to the underlying compute\n resources.

" } }, "eksConfiguration": { @@ -2553,7 +2553,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Batch job queue. When you create a job queue, you associate one or more compute environments to the\n queue and assign an order of preference for the compute environments.

\n

You also set a priority to the job queue that determines the order that the Batch scheduler places jobs onto\n its associated compute environments. For example, if a compute environment is associated with more than one job\n queue, the job queue with a higher priority is given preference for scheduling jobs to that compute\n environment.

", + "smithy.api#documentation": "

Creates an Batch job queue. When you create a job queue, you associate one or more\n compute environments to the queue and assign an order of preference for the compute\n environments.

\n

You also set a priority to the job queue that determines the order that the Batch\n scheduler places jobs onto its associated compute environments. For example, if a compute\n environment is associated with more than one job queue, the job queue with a higher priority\n is given preference for scheduling jobs to that compute environment.

", "smithy.api#examples": [ { "title": "To create a job queue with a single compute environment", @@ -2612,27 +2612,27 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters,\n numbers, hyphens (-), and underscores (_).

", + "smithy.api#documentation": "

The name of the job queue. It can be up to 128 letters long. It can contain uppercase and\n lowercase letters, numbers, hyphens (-), and underscores (_).

", "smithy.api#required": {} } }, "state": { "target": "com.amazonaws.batch#JQState", "traits": { - "smithy.api#documentation": "

The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the\n job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can\n finish.

" + "smithy.api#documentation": "

The state of the job queue. If the job queue state is ENABLED, it is able to\n accept jobs. If the job queue state is DISABLED, new jobs can't be added to the\n queue, but jobs already in the queue can finish.

" } }, "schedulingPolicyArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the fair share scheduling policy. If this parameter is specified, the job queue uses a fair\n share scheduling policy. If this parameter isn't specified, the job queue uses a first in, first out (FIFO)\n scheduling policy. After a job queue is created, you can replace but can't remove the fair share scheduling policy.\n The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n An example is\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the fair share scheduling policy. If this parameter is specified, the job\n queue uses a fair share scheduling policy. If this parameter isn't specified, the job queue\n uses a first in, first out (FIFO) scheduling policy. After a job queue is created, you can\n replace but can't remove the fair share scheduling policy. The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n An example is\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" } }, "priority": { "target": "com.amazonaws.batch#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the\n priority parameter) are evaluated first when associated with the same compute environment. Priority is\n determined in descending order. For example, a job queue with a priority value of 10 is given scheduling\n preference over a job queue with a priority value of 1. All of the compute environments must be either\n EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and\n Fargate compute environments can't be mixed.

", + "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer\n value for the priority parameter) are evaluated first when associated with the\n same compute environment. Priority is determined in descending order. For example, a job queue\n with a priority value of 10 is given scheduling preference over a job queue with\n a priority value of 1. All of the compute environments must be either EC2\n (EC2 or SPOT) or Fargate (FARGATE or\n FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

", "smithy.api#required": {} } }, @@ -2640,14 +2640,14 @@ "target": "com.amazonaws.batch#ComputeEnvironmentOrders", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler\n uses this parameter to determine which compute environment runs a specific job. Compute environments must be in\n the VALID state before you can associate them with a job queue. You can associate up to three compute\n environments with a job queue. All of the compute environments must be either EC2 (EC2 or\n SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute\n environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't\n support mixing compute environment architecture types in a single job queue.

\n
", + "smithy.api#documentation": "

The set of compute environments mapped to a job queue and their order relative to each\n other. The job scheduler uses this parameter to determine which compute environment runs a\n specific job. Compute environments must be in the VALID state before you can\n associate them with a job queue. You can associate up to three compute environments with a job\n queue. All of the compute environments must be either EC2 (EC2 or\n SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and\n Fargate compute environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same\n architecture. Batch doesn't support mixing compute environment architecture types in a\n single job queue.

\n
", "smithy.api#required": {} } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

The tags that you apply to the job queue to help you categorize and organize your resources. Each tag consists\n of a key and an optional value. For more information, see Tagging your Batch resources in Batch User Guide.

" + "smithy.api#documentation": "

The tags that you apply to the job queue to help you categorize and organize your\n resources. Each tag consists of a key and an optional value. For more information, see Tagging your Batch resources\n in Batch User Guide.

" } } }, @@ -2712,7 +2712,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the scheduling policy. It can be up to 128 letters long. It can contain uppercase and lowercase\n letters, numbers, hyphens (-), and underscores (_).

", + "smithy.api#documentation": "

The name of the scheduling policy. It can be up to 128 letters long. It can contain\n uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

", "smithy.api#required": {} } }, @@ -2725,7 +2725,7 @@ "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

The tags that you apply to the scheduling policy to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General\n Reference.

\n

These tags can be updated or removed using the TagResource and UntagResource API operations.

" + "smithy.api#documentation": "

The tags that you apply to the scheduling policy to help you categorize and organize your\n resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services\n Resources in Amazon Web Services General Reference.

\n

These tags can be updated or removed using the TagResource and UntagResource API operations.

" } } }, @@ -2749,7 +2749,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the scheduling policy. The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n For example,\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the scheduling policy. The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n For example,\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

", "smithy.api#required": {} } } @@ -2775,7 +2775,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Batch compute environment.

\n

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use Fargate resources must terminate all\n active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute\n environment enters an invalid state.

", + "smithy.api#documentation": "

Deletes an Batch compute environment.

\n

Before you can delete a compute environment, you must set its state to\n DISABLED with the UpdateComputeEnvironment API operation and\n disassociate it from any job queues with the UpdateJobQueue API operation.\n Compute environments that use Fargate resources must terminate all active jobs on that\n compute environment before deleting the compute environment. If this isn't done, the compute\n environment enters an invalid state.

", "smithy.api#examples": [ { "title": "To delete a compute environment", @@ -2834,7 +2834,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are eventually terminated when you delete a job queue.\n The jobs are terminated at a rate of about 16 jobs each second.

\n

It's not necessary to disassociate compute environments from a queue before submitting a\n DeleteJobQueue request.

", + "smithy.api#documentation": "

Deletes the specified job queue. You must first disable submissions for a queue with the\n UpdateJobQueue operation. All jobs in the queue are eventually terminated\n when you delete a job queue. The jobs are terminated at a rate of about 16 jobs each\n second.

\n

It's not necessary to disassociate compute environments from a queue before submitting a\n DeleteJobQueue request.

", "smithy.api#examples": [ { "title": "To delete a job queue", @@ -2942,7 +2942,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deregisters an Batch job definition. Job definitions are permanently deleted after 180 days.

", + "smithy.api#documentation": "

Deregisters an Batch job definition. Job definitions are permanently deleted after 180\n days.

", "smithy.api#examples": [ { "title": "To deregister a job definition", @@ -2967,7 +2967,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name and revision (name:revision) or full Amazon Resource Name (ARN) of the job definition to deregister.

", + "smithy.api#documentation": "

The name and revision (name:revision) or full Amazon Resource Name (ARN) of the job definition\n to deregister.

", "smithy.api#required": {} } } @@ -3000,7 +3000,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes one or more of your compute environments.

\n

If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment\n operation to determine the ecsClusterArn that you launch your Amazon ECS container instances\n into.

", + "smithy.api#documentation": "

Describes one or more of your compute environments.

\n

If you're using an unmanaged compute environment, you can use the\n DescribeComputeEnvironment operation to determine the\n ecsClusterArn that you launch your Amazon ECS container instances into.

", "smithy.api#examples": [ { "title": "To describe a compute environment", @@ -3073,13 +3073,13 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of cluster results returned by DescribeComputeEnvironments in paginated output.\n When this parameter is used, DescribeComputeEnvironments only returns maxResults results in\n a single page along with a nextToken response element. The remaining results of the initial request can\n be seen by sending another DescribeComputeEnvironments request with the returned nextToken\n value. This value can be between 1 and 100. If this parameter isn't used, then\n DescribeComputeEnvironments returns up to 100 results and a nextToken\n value if applicable.

" + "smithy.api#documentation": "

The maximum number of cluster results returned by DescribeComputeEnvironments\n in paginated output. When this parameter is used, DescribeComputeEnvironments\n only returns maxResults results in a single page along with a\n nextToken response element. The remaining results of the initial request can be\n seen by sending another DescribeComputeEnvironments request with the returned\n nextToken value. This value can be between 1 and\n 100. If this parameter isn't used, then DescribeComputeEnvironments\n returns up to 100 results and a nextToken value if\n applicable.

" } }, "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a previous paginated DescribeComputeEnvironments\n request where maxResults was used and the results exceeded the value of that parameter. Pagination\n continues from the end of the previous results that returned the nextToken value. This value is\n null when there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" + "smithy.api#documentation": "

The nextToken value returned from a previous paginated\n DescribeComputeEnvironments request where maxResults was used and\n the results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } } }, @@ -3100,7 +3100,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future DescribeComputeEnvironments request. When\n the results of a DescribeComputeEnvironments request exceed maxResults, this value can be\n used to retrieve the next page of results. This value is null when there are no more results to\n return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n DescribeComputeEnvironments request. When the results of a\n DescribeComputeEnvironments request exceed maxResults, this value\n can be used to retrieve the next page of results. This value is null when there\n are no more results to return.

" } } }, @@ -3125,7 +3125,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a list of job definitions. You can specify a status (such as ACTIVE) to only\n return job definitions that match that status.

", + "smithy.api#documentation": "

Describes a list of job definitions. You can specify a status (such as\n ACTIVE) to only return job definitions that match that status.

", "smithy.api#examples": [ { "title": "To describe active job definitions", @@ -3186,13 +3186,13 @@ "jobDefinitions": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

A list of up to 100 job definitions. Each entry in the list can either be an ARN in the\n format\n arn:aws:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}\n or a short version using the form ${JobDefinitionName}:${Revision}. This parameter can't be used with other parameters.

" + "smithy.api#documentation": "

A list of up to 100 job definitions. Each entry in the list can either be an ARN in the\n format\n arn:aws:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}\n or a short version using the form ${JobDefinitionName}:${Revision}. This\n parameter can't be used with other parameters.

" } }, "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of results returned by DescribeJobDefinitions in paginated output. When this\n parameter is used, DescribeJobDefinitions only returns maxResults results in a single page\n and a nextToken response element. The remaining results of the initial request can be seen by sending\n another DescribeJobDefinitions request with the returned nextToken value. This value can be\n between 1 and 100. If this parameter isn't used, then\n DescribeJobDefinitions returns up to 100 results and a nextToken value\n if applicable.

" + "smithy.api#documentation": "

The maximum number of results returned by DescribeJobDefinitions in paginated\n output. When this parameter is used, DescribeJobDefinitions only returns\n maxResults results in a single page and a nextToken response\n element. The remaining results of the initial request can be seen by sending another\n DescribeJobDefinitions request with the returned nextToken value.\n This value can be between 1 and 100. If this parameter isn't\n used, then DescribeJobDefinitions returns up to 100 results and\n a nextToken value if applicable.

" } }, "jobDefinitionName": { @@ -3210,7 +3210,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a previous paginated DescribeJobDefinitions request\n where maxResults was used and the results exceeded the value of that parameter. Pagination continues\n from the end of the previous results that returned the nextToken value. This value is null\n when there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" + "smithy.api#documentation": "

The nextToken value returned from a previous paginated\n DescribeJobDefinitions request where maxResults was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } } }, @@ -3231,7 +3231,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future DescribeJobDefinitions request. When the\n results of a DescribeJobDefinitions request exceed maxResults, this value can be used to\n retrieve the next page of results. This value is null when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n DescribeJobDefinitions request. When the results of a\n DescribeJobDefinitions request exceed maxResults, this value can\n be used to retrieve the next page of results. This value is null when there are\n no more results to return.

" } } }, @@ -3311,13 +3311,13 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of results returned by DescribeJobQueues in paginated output. When this\n parameter is used, DescribeJobQueues only returns maxResults results in a single page and a\n nextToken response element. The remaining results of the initial request can be seen by sending another\n DescribeJobQueues request with the returned nextToken value. This value can be between\n 1 and 100. If this parameter isn't used, then DescribeJobQueues returns up\n to 100 results and a nextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of results returned by DescribeJobQueues in paginated\n output. When this parameter is used, DescribeJobQueues only returns\n maxResults results in a single page and a nextToken response\n element. The remaining results of the initial request can be seen by sending another\n DescribeJobQueues request with the returned nextToken value. This\n value can be between 1 and 100. If this parameter isn't used,\n then DescribeJobQueues returns up to 100 results and a\n nextToken value if applicable.

" } }, "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a previous paginated DescribeJobQueues request where\n maxResults was used and the results exceeded the value of that parameter. Pagination continues from the\n end of the previous results that returned the nextToken value. This value is null when\n there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" + "smithy.api#documentation": "

The nextToken value returned from a previous paginated\n DescribeJobQueues request where maxResults was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } } }, @@ -3338,7 +3338,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future DescribeJobQueues request. When the results\n of a DescribeJobQueues request exceed maxResults, this value can be used to retrieve the\n next page of results. This value is null when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future DescribeJobQueues\n request. When the results of a DescribeJobQueues request exceed\n maxResults, this value can be used to retrieve the next page of results. This\n value is null when there are no more results to return.

" } } }, @@ -3691,13 +3691,207 @@ "target": "com.amazonaws.batch#Ec2Configuration" } }, + "com.amazonaws.batch#EcsProperties": { + "type": "structure", + "members": { + "taskProperties": { + "target": "com.amazonaws.batch#ListEcsTaskProperties", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An object that contains the properties for the Amazon ECS task definition of a job.

\n \n

This object is currently limited to one element.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the properties for the Amazon ECS resources of a job.

" + } + }, + "com.amazonaws.batch#EcsPropertiesDetail": { + "type": "structure", + "members": { + "taskProperties": { + "target": "com.amazonaws.batch#ListEcsTaskDetails", + "traits": { + "smithy.api#documentation": "

The properties for the Amazon ECS task definition of a job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the details for the Amazon ECS resources of a job.

" + } + }, + "com.amazonaws.batch#EcsPropertiesOverride": { + "type": "structure", + "members": { + "taskProperties": { + "target": "com.amazonaws.batch#ListTaskPropertiesOverride", + "traits": { + "smithy.api#documentation": "

The overrides for the Amazon ECS task definition of a job.

\n \n

This object is currently limited to one element.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains overrides for the Amazon ECS task definition of a job.

" + } + }, + "com.amazonaws.batch#EcsTaskDetails": { + "type": "structure", + "members": { + "containers": { + "target": "com.amazonaws.batch#ListTaskContainerDetails", + "traits": { + "smithy.api#documentation": "

A list of containers that are included in the taskProperties\n list.

" + } + }, + "containerInstanceArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container instance that hosts the task.

" + } + }, + "taskArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon ECS task.

" + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.batch#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage allocated for the task.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the execution role that Batch can assume. For more information, see\n Batch execution IAM\n role in the Batch User Guide.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Fargate platform version where the jobs are running.

" + } + }, + "ipcMode": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for Amazon Web Services permissions. For more\n information, see IAM roles for tasks in the\n Amazon Elastic Container Service Developer Guide.

\n \n

This is object is comparable to ContainerProperties:jobRoleArn.

\n
" + } + }, + "pidMode": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The process namespace to use for the containers in the task.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.batch#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" + } + }, + "runtimePlatform": { + "target": "com.amazonaws.batch#RuntimePlatform", + "traits": { + "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on\n Fargate.

" + } + }, + "volumes": { + "target": "com.amazonaws.batch#Volumes", + "traits": { + "smithy.api#documentation": "

A list of data volumes used in a job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a task definition that describes the container and volume definitions of an\n Amazon ECS task.

" + } + }, + "com.amazonaws.batch#EcsTaskProperties": { + "type": "structure", + "members": { + "containers": { + "target": "com.amazonaws.batch#ListTaskContainerProperties", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

This object is a list of containers.

", + "smithy.api#required": {} + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.batch#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task. This parameter is used to expand\n the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on\n Fargate.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate\n resources, you must provide an execution role. For more information, see Batch execution IAM role\n in the Batch User Guide.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Fargate platform version where the jobs are running. A platform version is specified\n only for jobs that are running on Fargate resources. If one isn't specified, the\n LATEST platform version is used by default. This uses a recent, approved version of\n the Fargate platform for compute resources. For more information, see Fargate\n platform versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "ipcMode": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none.

\n

If host is specified, all containers within the tasks that specified the\n host IPC mode on the same container instance share the same IPC resources with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task\n share the same IPC resources.

\n

If none is specified, the IPC resources within the containers of a task are\n private, and are not shared with other containers in a task or on the container instance.

\n

If no value is specified, then the IPC resource namespace sharing depends on the Docker\n daemon setting on the container instance. For more information, see IPC settings in\n the Docker run reference.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.

\n \n

This is object is comparable to ContainerProperties:jobRoleArn.

\n
" + } + }, + "pidMode": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The process namespace to use for the containers in the task. The valid values are\n host or task. For example, monitoring sidecars might need\n pidMode to access information about other containers running in the same\n task.

\n

If host is specified, all containers within the tasks that specified the\n host PID mode on the same container instance share the process namespace with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task share the same\n process namespace.

\n

If no value is specified, the default is a private namespace for each container. For more\n information, see PID settings in the Docker run reference.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.batch#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" + } + }, + "runtimePlatform": { + "target": "com.amazonaws.batch#RuntimePlatform", + "traits": { + "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on\n Fargate.

" + } + }, + "volumes": { + "target": "com.amazonaws.batch#Volumes", + "traits": { + "smithy.api#documentation": "

A list of volumes that are associated with the job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The properties for a task definition that describes the container and volume definitions of\n an Amazon ECS task. You can specify which Docker images to use, the required resources, and other\n configurations related to launching the task definition through an Amazon ECS service or task.

" + } + }, "com.amazonaws.batch#EksAttemptContainerDetail": { "type": "structure", "members": { "exitCode": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The exit code for the job attempt. A non-zero exit code is considered failed.

" + "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

" } }, "reason": { @@ -3726,6 +3920,12 @@ "smithy.api#documentation": "

The details for the final status of the containers for this job attempt.

" } }, + "initContainers": { + "target": "com.amazonaws.batch#EksAttemptContainerDetails", + "traits": { + "smithy.api#documentation": "

The details for the init containers.

" + } + }, "podName": { "target": "com.amazonaws.batch#String", "traits": { @@ -3823,7 +4023,7 @@ "args": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of\n the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod\n in Kubernetes. Environment variable references are expanded using the container's environment.

\n

If the referenced environment variable doesn't exist, the reference in the command isn't\n changed. For example, if the reference is to \"$(NAME1)\" and the NAME1\n environment variable doesn't exist, the command string will remain \"$(NAME1).\"\n $$ is replaced with $, and the resulting string isn't expanded. For\n example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the\n VAR_NAME environment variable exists. For more information, see CMD in the\n Dockerfile reference and Define a command and arguments for a pod in the Kubernetes\n documentation.

" + "smithy.api#documentation": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of\n the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod\n in Kubernetes. Environment variable references are expanded using the container's environment.

\n

If the referenced environment variable doesn't exist, the reference in the command isn't\n changed. For example, if the reference is to \"$(NAME1)\" and the NAME1\n environment variable doesn't exist, the command string will remain \"$(NAME1).\"\n $$ is replaced with $, and the resulting string isn't expanded. For\n example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the\n VAR_NAME environment variable exists. For more information, see Dockerfile reference: CMD\n and Define a command and arguments for a pod in the Kubernetes\n documentation.

" } }, "env": { @@ -3885,7 +4085,7 @@ "args": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of\n the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod\n in Kubernetes. Environment variable references are expanded using the container's environment.

\n

If the referenced environment variable doesn't exist, the reference in the command isn't\n changed. For example, if the reference is to \"$(NAME1)\" and the NAME1\n environment variable doesn't exist, the command string will remain \"$(NAME1)\".\n $$ is replaced with $ and the resulting string isn't expanded. For\n example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the\n VAR_NAME environment variable exists. For more information, see CMD in the\n Dockerfile reference and Define a command and arguments for a pod in the Kubernetes\n documentation.

" + "smithy.api#documentation": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of\n the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod\n in Kubernetes. Environment variable references are expanded using the container's environment.

\n

If the referenced environment variable doesn't exist, the reference in the command isn't\n changed. For example, if the reference is to \"$(NAME1)\" and the NAME1\n environment variable doesn't exist, the command string will remain \"$(NAME1)\".\n $$ is replaced with $ and the resulting string isn't expanded. For\n example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the\n VAR_NAME environment variable exists. For more information, see Dockerfile reference: CMD\n and Define a command and arguments for a pod in the Kubernetes\n documentation.

" } }, "env": { @@ -3903,7 +4103,7 @@ "exitCode": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The exit code for the job attempt. A non-zero exit code is considered failed.

" + "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

" } }, "reason": { @@ -3966,6 +4166,12 @@ "com.amazonaws.batch#EksContainerOverride": { "type": "structure", "members": { + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

A pointer to the container that you want to override. The name must match a unique container name that you wish to override.

" + } + }, "image": { "target": "com.amazonaws.batch#String", "traits": { @@ -3981,7 +4187,7 @@ "args": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

The arguments to the entrypoint to send to the container that overrides the default\n arguments from the Docker image or the job definition. For more information, see CMD in the\n Dockerfile reference and Define a command an arguments for a pod in the Kubernetes\n documentation.

" + "smithy.api#documentation": "

The arguments to the entrypoint to send to the container that overrides the default\n arguments from the Docker image or the job definition. For more information, see Dockerfile reference: CMD\n and Define a command an arguments for a pod in the Kubernetes\n documentation.

" } }, "env": { @@ -3998,7 +4204,7 @@ } }, "traits": { - "smithy.api#documentation": "

Object representing any Kubernetes overrides to a job definition that's used in a SubmitJob API operation.

" + "smithy.api#documentation": "

Object representing any Kubernetes overrides to a job definition that's used in a SubmitJob API\n operation.

" } }, "com.amazonaws.batch#EksContainerOverrideList": { @@ -4166,7 +4372,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes and uniquely identifies Kubernetes resources. For example, the compute environment\n that a pod runs in or the jobID for a job running in the pod. For more information,\n see Understanding Kubernetes Objects in the Kubernetes\n documentation.

" + "smithy.api#documentation": "

Describes and uniquely identifies Kubernetes resources. For example, the compute environment that\n a pod runs in or the jobID for a job running in the pod. For more information, see\n Understanding Kubernetes Objects in the Kubernetes documentation.

" } }, "com.amazonaws.batch#EksPodProperties": { @@ -4196,6 +4402,12 @@ "smithy.api#documentation": "

The properties of the container that's used on the Amazon EKS pod.

" } }, + "initContainers": { + "target": "com.amazonaws.batch#EksContainers", + "traits": { + "smithy.api#documentation": "

These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" + } + }, "volumes": { "target": "com.amazonaws.batch#EksVolumes", "traits": { @@ -4207,6 +4419,12 @@ "traits": { "smithy.api#documentation": "

Metadata about the\n Kubernetes\n pod. For\n more information, see Understanding Kubernetes Objects in the Kubernetes\n documentation.

" } + }, + "shareProcessNamespace": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates if the processes in a container are shared, or visible, to other containers in the\n same pod. For more information, see Share\n Process Namespace between Containers in a Pod.

" + } } }, "traits": { @@ -4240,6 +4458,12 @@ "smithy.api#documentation": "

The properties of the container that's used on the Amazon EKS pod.

" } }, + "initContainers": { + "target": "com.amazonaws.batch#EksContainerDetails", + "traits": { + "smithy.api#documentation": "

The container registered with the Amazon EKS Connector agent and persists the registration\n information in the Kubernetes backend data store.

" + } + }, "volumes": { "target": "com.amazonaws.batch#EksVolumes", "traits": { @@ -4261,7 +4485,13 @@ "metadata": { "target": "com.amazonaws.batch#EksMetadata", "traits": { - "smithy.api#documentation": "

Describes and uniquely identifies Kubernetes resources. For example, the compute environment\n that a pod runs in or the jobID for a job running in the pod. For more information,\n see Understanding Kubernetes Objects in the Kubernetes\n documentation.

" + "smithy.api#documentation": "

Describes and uniquely identifies Kubernetes resources. For example, the compute environment that\n a pod runs in or the jobID for a job running in the pod. For more information, see\n Understanding Kubernetes Objects in the Kubernetes documentation.

" + } + }, + "shareProcessNamespace": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates if the processes in a container are shared, or visible, to other containers in the\n same pod. For more information, see Share\n Process Namespace between Containers in a Pod.

" } } }, @@ -4278,6 +4508,12 @@ "smithy.api#documentation": "

The overrides for the container that's used on the Amazon EKS pod.

" } }, + "initContainers": { + "target": "com.amazonaws.batch#EksContainerOverrideList", + "traits": { + "smithy.api#documentation": "

The overrides for the conatainers defined in the Amazon EKS pod. These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" + } + }, "metadata": { "target": "com.amazonaws.batch#EksMetadata", "traits": { @@ -4501,7 +4737,7 @@ } }, "traits": { - "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that run\n on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The platform configuration for jobs that are running on Fargate resources. Jobs that run\n on Amazon EC2 resources must not specify this parameter.

" } }, "com.amazonaws.batch#Float": { @@ -4662,7 +4898,7 @@ "containerProperties": { "target": "com.amazonaws.batch#ContainerProperties", "traits": { - "smithy.api#documentation": "

An object with various properties specific to Amazon ECS based jobs. Valid values are\n containerProperties, eksProperties, and nodeProperties.\n Only one can be specified.

" + "smithy.api#documentation": "

An object with properties specific to Amazon ECS-based jobs. When containerProperties is used in the job definition, it can't be used in addition to eksProperties, ecsProperties, or\n nodeProperties.

" } }, "timeout": { @@ -4674,7 +4910,7 @@ "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

An object with various properties that are specific to multi-node parallel jobs. Valid\n values are containerProperties, eksProperties, and\n nodeProperties. Only one can be specified.

\n \n

If the job runs on Fargate resources, don't specify nodeProperties. Use\n containerProperties instead.

\n
" + "smithy.api#documentation": "

An object with properties that are specific to multi-node parallel jobs. When nodeProperties is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or eksProperties.

\n \n

If the job runs on Fargate resources, don't specify nodeProperties. Use\n containerProperties instead.

\n
" } }, "tags": { @@ -4695,10 +4931,16 @@ "smithy.api#documentation": "

The platform capabilities required by the job definition. If no value is specified, it\n defaults to EC2. Jobs run on Fargate resources specify\n FARGATE.

" } }, + "ecsProperties": { + "target": "com.amazonaws.batch#EcsProperties", + "traits": { + "smithy.api#documentation": "

An object that contains the properties for the Amazon ECS resources of a job.When ecsProperties\n is used in the job definition, it can't be used in addition to containerProperties, eksProperties, or nodeProperties.

" + } + }, "eksProperties": { "target": "com.amazonaws.batch#EksProperties", "traits": { - "smithy.api#documentation": "

An object with various properties that are specific to Amazon EKS based jobs. Valid values are\n containerProperties, eksProperties, and nodeProperties.\n Only one can be specified.

" + "smithy.api#documentation": "

An object with properties that are specific to Amazon EKS-based jobs. When eksProperties\n is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or nodeProperties.

" } }, "containerOrchestrationType": { @@ -4829,7 +5071,7 @@ "createdAt": { "target": "com.amazonaws.batch#Long", "traits": { - "smithy.api#documentation": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and\n parent array jobs, this is when the job entered the SUBMITTED state. This is\n specifically at the time SubmitJob was called. For array child jobs, this is\n when the child job was spawned by its parent and entered the PENDING state.

" + "smithy.api#documentation": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and\n parent array jobs, this is when the job entered the SUBMITTED state. This is\n specifically at the time SubmitJob was called. For array child\n jobs, this is when the child job was spawned by its parent and entered the PENDING\n state.

" } }, "retryStrategy": { @@ -4875,7 +5117,7 @@ "container": { "target": "com.amazonaws.batch#ContainerDetail", "traits": { - "smithy.api#documentation": "

An object that represents the details for the container that's associated with the\n job.

" + "smithy.api#documentation": "

An object that represents the details for the container that's associated with the\n job. If the details are for a multiple-container job, this object will be empty.

" } }, "nodeDetails": { @@ -4923,7 +5165,7 @@ "eksProperties": { "target": "com.amazonaws.batch#EksPropertiesDetail", "traits": { - "smithy.api#documentation": "

An object with various properties that are specific to Amazon EKS based jobs. Only one of\n container, eksProperties, or nodeDetails is\n specified.

" + "smithy.api#documentation": "

An object with various properties that are specific to Amazon EKS based jobs.

" } }, "eksAttempts": { @@ -4932,6 +5174,12 @@ "smithy.api#documentation": "

A list of job attempts that are associated with this job.

" } }, + "ecsProperties": { + "target": "com.amazonaws.batch#EcsPropertiesDetail", + "traits": { + "smithy.api#documentation": "

An object with properties that are specific to Amazon ECS-based jobs.

" + } + }, "isCancelled": { "target": "com.amazonaws.batch#Boolean", "traits": { @@ -5013,7 +5261,7 @@ "target": "com.amazonaws.batch#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value\n for the priority parameter) are evaluated first when associated with the same\n compute environment. Priority is determined in descending order. For example, a job queue with a\n priority value of 10 is given scheduling preference over a job queue with a priority\n value of 1. All of the compute environments must be either EC2 (EC2 or\n SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and\n Fargate compute environments can't be mixed.

", + "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value\n for the priority parameter) are evaluated first when associated with the same\n compute environment. Priority is determined in descending order. For example, a job queue with a\n priority value of 10 is given scheduling preference over a job queue with a priority\n value of 1. All of the compute environments must be either Amazon EC2 (EC2\n or SPOT) or Fargate (FARGATE or FARGATE_SPOT). Amazon EC2 and\n Fargate compute environments can't be mixed.

", "smithy.api#required": {} } }, @@ -5117,7 +5365,7 @@ "createdAt": { "target": "com.amazonaws.batch#Long", "traits": { - "smithy.api#documentation": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and\n parent array jobs, this is when the job entered the SUBMITTED state (at the time\n SubmitJob was called). For array child jobs, this is when the child job was\n spawned by its parent and entered the PENDING state.

" + "smithy.api#documentation": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and\n parent array jobs, this is when the job entered the SUBMITTED state (at the time\n SubmitJob\n was called). For array child jobs, this is when the child job was spawned by its parent and\n entered the PENDING state.

" } }, "status": { @@ -5185,7 +5433,7 @@ "attemptDurationSeconds": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The job timeout time (in seconds) that's measured from the job attempt's\n startedAt timestamp. After this time passes, Batch terminates your jobs if they\n aren't finished. The minimum value for the timeout is 60 seconds.

\n

For array jobs, the timeout applies to the child jobs, not to the parent array job.

\n

For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the\n individual nodes.

" + "smithy.api#documentation": "

The job timeout time (in seconds) that's measured from the job attempt's\n startedAt timestamp. After this time passes, Batch terminates your jobs if they\n aren't finished. The minimum value for the timeout is 60 seconds.

\n

For array jobs, the timeout applies to the child jobs, not to the parent array job.

\n

For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the\n individual nodes.

" } } }, @@ -5260,7 +5508,7 @@ "version": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The version number of the launch template, $Latest, or\n $Default.

\n

If the value is $Latest, the latest version of the launch template is used. If\n the value is $Default, the default version of the launch template is used.

\n \n

If the AMI ID that's used in a compute environment is from the launch template, the AMI\n isn't changed when the compute environment is updated. It's only changed if the\n updateToLatestImageVersion parameter for the compute environment is set to\n true. During an infrastructure update, if either $Latest or\n $Default is specified, Batch re-evaluates the launch template version, and it\n might use a different version of the launch template. This is the case even if the launch\n template isn't specified in the update. When updating a compute environment, changing the launch\n template requires an infrastructure update of the compute environment. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

Default: $Default.

" + "smithy.api#documentation": "

The version number of the launch template, $Latest, or\n $Default.

\n

If the value is $Latest, the latest version of the launch template is used. If\n the value is $Default, the default version of the launch template is used.

\n \n

If the AMI ID that's used in a compute environment is from the launch template, the AMI\n isn't changed when the compute environment is updated. It's only changed if the\n updateToLatestImageVersion parameter for the compute environment is set to\n true. During an infrastructure update, if either $Latest or\n $Default is specified, Batch re-evaluates the launch template version, and it\n might use a different version of the launch template. This is the case even if the launch\n template isn't specified in the update. When updating a compute environment, changing the launch\n template requires an infrastructure update of the compute environment. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

Default: $Default.

" } } }, @@ -5312,6 +5560,18 @@ "smithy.api#documentation": "

Linux-specific modifications that are applied to the container, such as details for device\n mappings.

" } }, + "com.amazonaws.batch#ListEcsTaskDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#EcsTaskDetails" + } + }, + "com.amazonaws.batch#ListEcsTaskProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#EcsTaskProperties" + } + }, "com.amazonaws.batch#ListJobs": { "type": "operation", "input": { @@ -5329,7 +5589,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of Batch jobs.

\n

You must specify only one of the following items:

\n
    \n
  • \n

    A job queue ID to return a list of jobs in that job queue

    \n
  • \n
  • \n

    A multi-node parallel job ID to return a list of nodes for that job

    \n
  • \n
  • \n

    An array job ID to return a list of the children for that job

    \n
  • \n
\n

You can filter the results by job status with the jobStatus parameter. If you don't specify a\n status, only RUNNING jobs are returned.

", + "smithy.api#documentation": "

Returns a list of Batch jobs.

\n

You must specify only one of the following items:

\n
    \n
  • \n

    A job queue ID to return a list of jobs in that job queue

    \n
  • \n
  • \n

    A multi-node parallel job ID to return a list of nodes for that job

    \n
  • \n
  • \n

    An array job ID to return a list of the children for that job

    \n
  • \n
\n

You can filter the results by job status with the jobStatus parameter. If you\n don't specify a status, only RUNNING jobs are returned.

", "smithy.api#examples": [ { "title": "To list running jobs", @@ -5394,37 +5654,37 @@ "arrayJobId": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the\n specified array.

" + "smithy.api#documentation": "

The job ID for an array job. Specifying an array job ID with this parameter lists all\n child jobs from within the specified array.

" } }, "multiNodeJobId": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all\n nodes that are associated with the specified job.

" + "smithy.api#documentation": "

The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with\n this parameter lists all nodes that are associated with the specified job.

" } }, "jobStatus": { "target": "com.amazonaws.batch#JobStatus", "traits": { - "smithy.api#documentation": "

The job status used to filter jobs in the specified queue. If the filters parameter is specified,\n the jobStatus parameter is ignored and jobs with any status are returned. If you don't specify a status,\n only RUNNING jobs are returned.

" + "smithy.api#documentation": "

The job status used to filter jobs in the specified queue. If the filters\n parameter is specified, the jobStatus parameter is ignored and jobs with any\n status are returned. If you don't specify a status, only RUNNING jobs are\n returned.

" } }, "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of results returned by ListJobs in paginated output. When this parameter is\n used, ListJobs only returns maxResults results in a single page and a\n nextToken response element. The remaining results of the initial request can be seen by sending another\n ListJobs request with the returned nextToken value. This value can be between\n 1 and 100. If this parameter isn't used, then ListJobs returns up to\n 100 results and a nextToken value if applicable.

" + "smithy.api#documentation": "

The maximum number of results returned by ListJobs in paginated output. When\n this parameter is used, ListJobs only returns maxResults results in\n a single page and a nextToken response element. The remaining results of the\n initial request can be seen by sending another ListJobs request with the returned\n nextToken value. This value can be between 1 and\n 100. If this parameter isn't used, then ListJobs returns up to\n 100 results and a nextToken value if applicable.

" } }, "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value returned from a previous paginated ListJobs request where\n maxResults was used and the results exceeded the value of that parameter. Pagination continues from the\n end of the previous results that returned the nextToken value. This value is null when\n there are no more results to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" + "smithy.api#documentation": "

The nextToken value returned from a previous paginated ListJobs\n request where maxResults was used and the results exceeded the value of that\n parameter. Pagination continues from the end of the previous results that returned the\n nextToken value. This value is null when there are no more results\n to return.

\n \n

Treat this token as an opaque identifier that's only used to\n retrieve the next items in a list and not for other programmatic purposes.

\n
" } }, "filters": { "target": "com.amazonaws.batch#ListJobsFilterList", "traits": { - "smithy.api#documentation": "

The filter to apply to the query. Only one filter can be used at a time. When the filter is used,\n jobStatus is ignored. The filter doesn't apply to child jobs in an array or multi-node parallel (MNP)\n jobs. The results are sorted by the createdAt field, with the most recent jobs being first.

\n
\n
JOB_NAME
\n
\n

The value of the filter is a case-insensitive match for the job name. If the value ends with an asterisk (*),\n the filter matches any job name that begins with the string before the '*'. This corresponds to the\n jobName value. For example, test1 matches both Test1 and\n test1, and test1* matches both test1 and Test10. When the\n JOB_NAME filter is used, the results are grouped by the job name and version.

\n
\n
JOB_DEFINITION
\n
\n

The value for the filter is the name or Amazon Resource Name (ARN) of the job definition. This corresponds to the\n jobDefinition value. The value is case sensitive. When the value for the filter is the job definition\n name, the results include all the jobs that used any revision of that job definition name. If the value ends with\n an asterisk (*), the filter matches any job definition name that begins with the string before the '*'. For\n example, jd1 matches only jd1, and jd1* matches both jd1 and\n jd1A. The version of the job definition that's used doesn't affect the sort order. When the\n JOB_DEFINITION filter is used and the ARN is used (which is in the form\n arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}), the\n results include jobs that used the specified revision of the job definition. Asterisk (*) isn't supported when the\n ARN is used.

\n
\n
BEFORE_CREATED_AT
\n
\n

The value for the filter is the time that's before the job was created. This corresponds to the\n createdAt value. The value is a string representation of the number of milliseconds since 00:00:00\n UTC (midnight) on January 1, 1970.

\n
\n
AFTER_CREATED_AT
\n
\n

The value for the filter is the time that's after the job was created. This corresponds to the\n createdAt value. The value is a string representation of the number of milliseconds since 00:00:00\n UTC (midnight) on January 1, 1970.

\n
\n
" + "smithy.api#documentation": "

The filter to apply to the query. Only one filter can be used at a time. When the filter\n is used, jobStatus is ignored. The filter doesn't apply to child jobs in an array\n or multi-node parallel (MNP) jobs. The results are sorted by the createdAt field,\n with the most recent jobs being first.

\n
\n
JOB_NAME
\n
\n

The value of the filter is a case-insensitive match for the job name. If the value\n ends with an asterisk (*), the filter matches any job name that begins with the string\n before the '*'. This corresponds to the jobName value. For example,\n test1 matches both Test1 and test1, and\n test1* matches both test1 and Test10. When the\n JOB_NAME filter is used, the results are grouped by the job name and\n version.

\n
\n
JOB_DEFINITION
\n
\n

The value for the filter is the name or Amazon Resource Name (ARN) of the job definition. This\n corresponds to the jobDefinition value. The value is case sensitive. When\n the value for the filter is the job definition name, the results include all the jobs\n that used any revision of that job definition name. If the value ends with an asterisk\n (*), the filter matches any job definition name that begins with the string before the\n '*'. For example, jd1 matches only jd1, and jd1*\n matches both jd1 and jd1A. The version of the job definition\n that's used doesn't affect the sort order. When the JOB_DEFINITION filter\n is used and the ARN is used (which is in the form\n arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}),\n the results include jobs that used the specified revision of the job definition.\n Asterisk (*) isn't supported when the ARN is used.

\n
\n
BEFORE_CREATED_AT
\n
\n

The value for the filter is the time that's before the job was created. This\n corresponds to the createdAt value. The value is a string representation of\n the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

\n
\n
AFTER_CREATED_AT
\n
\n

The value for the filter is the time that's after the job was created. This\n corresponds to the createdAt value. The value is a string representation of\n the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

\n
\n
" } } }, @@ -5447,7 +5707,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListJobs request. When the results of a\n ListJobs request exceed maxResults, this value can be used to retrieve the next page of\n results. This value is null when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future ListJobs request.\n When the results of a ListJobs request exceed maxResults, this value\n can be used to retrieve the next page of results. This value is null when there\n are no more results to return.

" } } }, @@ -5492,7 +5752,7 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of results that's returned by ListSchedulingPolicies in paginated output. When\n this parameter is used, ListSchedulingPolicies only returns maxResults results in a single\n page and a nextToken response element. You can see the remaining results of the initial request by\n sending another ListSchedulingPolicies request with the returned nextToken value. This\n value can be between 1 and 100. If this parameter isn't used,\n ListSchedulingPolicies returns up to 100 results and a nextToken value\n if applicable.

" + "smithy.api#documentation": "

The maximum number of results that's returned by ListSchedulingPolicies in\n paginated output. When this parameter is used, ListSchedulingPolicies only\n returns maxResults results in a single page and a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListSchedulingPolicies request with the returned nextToken value.\n This value can be between 1 and 100. If this parameter isn't\n used, ListSchedulingPolicies returns up to 100 results and a\n nextToken value if applicable.

" } }, "nextToken": { @@ -5519,7 +5779,7 @@ "nextToken": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The nextToken value to include in a future ListSchedulingPolicies request. When the\n results of a ListSchedulingPolicies request exceed maxResults, this value can be used to\n retrieve the next page of results. This value is null when there are no more results to return.

" + "smithy.api#documentation": "

The nextToken value to include in a future\n ListSchedulingPolicies request. When the results of a\n ListSchedulingPolicies request exceed maxResults, this value can\n be used to retrieve the next page of results. This value is null when there are\n no more results to return.

" } } }, @@ -5599,6 +5859,30 @@ "smithy.api#output": {} } }, + "com.amazonaws.batch#ListTaskContainerDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#TaskContainerDetails" + } + }, + "com.amazonaws.batch#ListTaskContainerOverrides": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#TaskContainerOverrides" + } + }, + "com.amazonaws.batch#ListTaskContainerProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#TaskContainerProperties" + } + }, + "com.amazonaws.batch#ListTaskPropertiesOverride": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#TaskPropertiesOverride" + } + }, "com.amazonaws.batch#LogConfiguration": { "type": "structure", "members": { @@ -5709,7 +5993,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details for a Docker volume mount point that's used in a job's container properties. This\n parameter maps to Volumes in the Create a container section of the Docker Remote API and the\n --volume option to docker run.

" + "smithy.api#documentation": "

Details for a Docker volume mount point that's used in a job's container properties. This\n parameter maps to Volumes in the Create a\n container section of the Docker Remote API and the\n --volume option to docker run.

" } }, "com.amazonaws.batch#MountPoints": { @@ -5729,7 +6013,7 @@ } }, "traits": { - "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on EC2 resources must not specify this parameter.

" + "smithy.api#documentation": "

The network configuration for jobs that are running on Fargate resources. Jobs that are\n running on Amazon EC2 resources must not specify this parameter.

" } }, "com.amazonaws.batch#NetworkInterface": { @@ -5801,7 +6085,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't\n provide it for these jobs. Rather, use containerOverrides instead.

\n
" + "smithy.api#documentation": "

An object that represents any node overrides to a job definition that's used in a SubmitJob API\n operation.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources. Don't\n provide it for these jobs. Rather, use containerOverrides instead.

\n
" } }, "com.amazonaws.batch#NodeProperties": { @@ -5878,10 +6162,22 @@ "traits": { "smithy.api#documentation": "

The overrides that are sent to a node range.

" } + }, + "ecsPropertiesOverride": { + "target": "com.amazonaws.batch#EcsPropertiesOverride", + "traits": { + "smithy.api#documentation": "

An object that contains the properties that you want to replace for the existing Amazon ECS\n resources of a job.

" + } + }, + "instanceTypes": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

An object that contains the instance types that you want to replace for the existing\n resources of a job.

" + } } }, "traits": { - "smithy.api#documentation": "

The object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

" + "smithy.api#documentation": "

The object that represents any node overrides to a job definition that's used in a SubmitJob API\n operation.

" } }, "com.amazonaws.batch#NodePropertyOverrides": { @@ -5912,10 +6208,22 @@ "traits": { "smithy.api#documentation": "

The container details for the node range.

" } + }, + "instanceTypes": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

The instance types of the underlying host infrastructure of a multi-node parallel job.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources.

\n

In addition, this list object is currently limited to one element.

\n
" + } + }, + "ecsProperties": { + "target": "com.amazonaws.batch#EcsProperties", + "traits": { + "smithy.api#documentation": "

This is an object that represents the properties of the node range for a multi-node parallel\n job.

" + } } }, "traits": { - "smithy.api#documentation": "

An object that represents the properties of the node range for a multi-node parallel\n job.

" + "smithy.api#documentation": "

This is an object that represents the properties of the node range for a multi-node parallel\n job.

" } }, "com.amazonaws.batch#OrchestrationType": { @@ -6074,7 +6382,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the job definition to register. It can be up to 128 letters long. It can contain uppercase and\n lowercase letters, numbers, hyphens (-), and underscores (_).

", + "smithy.api#documentation": "

The name of the job definition to register. It can be up to 128 letters long. It can\n contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

", "smithy.api#required": {} } }, @@ -6082,68 +6390,74 @@ "target": "com.amazonaws.batch#JobDefinitionType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the\n Batch User Guide.

\n \n

If the job is run on Fargate resources, then multinode isn't supported.

\n
", + "smithy.api#documentation": "

The type of job definition. For more information about multi-node parallel jobs, see\n Creating a multi-node\n parallel job definition in the Batch User Guide.

\n
    \n
  • \n

    If the value is container, then one of the following is required: containerProperties, ecsProperties, or eksProperties.

    \n
  • \n
  • \n

    If the value is multinode, then nodeProperties is required.

    \n
  • \n
\n \n

If the job is run on Fargate resources, then multinode isn't supported.

\n
", "smithy.api#required": {} } }, "parameters": { "target": "com.amazonaws.batch#ParametersMap", "traits": { - "smithy.api#documentation": "

Default parameter substitution placeholders to set in the job definition. Parameters are specified as a\n key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults\n from the job definition.

" + "smithy.api#documentation": "

Default parameter substitution placeholders to set in the job definition. Parameters are\n specified as a key-value pair mapping. Parameters in a SubmitJob request override\n any corresponding parameter defaults from the job definition.

" } }, "schedulingPriority": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The scheduling priority for jobs that are submitted with this job definition. This only affects jobs in job\n queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower\n scheduling priority.

\n

The minimum supported value is 0 and the maximum supported value is 9999.

" + "smithy.api#documentation": "

The scheduling priority for jobs that are submitted with this job definition. This only\n affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority\n are scheduled before jobs with a lower scheduling priority.

\n

The minimum supported value is 0 and the maximum supported value is 9999.

" } }, "containerProperties": { "target": "com.amazonaws.batch#ContainerProperties", "traits": { - "smithy.api#documentation": "

An object with various properties specific to Amazon ECS based single-node container-based jobs. If the job\n definition's type parameter is container, then you must specify either\n containerProperties or nodeProperties. This must not be specified for Amazon EKS based job\n definitions.

\n \n

If the job runs on Fargate resources, then you must not specify nodeProperties; use only\n containerProperties.

\n
" + "smithy.api#documentation": "

An object with properties specific to Amazon ECS-based single-node container-based jobs. If the\n job definition's type parameter is container, then you must specify\n either containerProperties or nodeProperties. This must not be\n specified for Amazon EKS-based job definitions.

\n \n

If the job runs on Fargate resources, then you must not specify\n nodeProperties; use only containerProperties.

\n
" } }, "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

An object with various properties specific to multi-node parallel jobs. If you specify node properties for a\n job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the\n Batch User Guide. If the job definition's type parameter is container,\n then you must specify either containerProperties or nodeProperties.

\n \n

If the job runs on Fargate resources, then you must not specify nodeProperties; use\n containerProperties instead.

\n
\n \n

If the job runs on Amazon EKS resources, then you must not specify nodeProperties.

\n
" + "smithy.api#documentation": "

An object with properties specific to multi-node parallel jobs. If you specify node\n properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel\n Jobs in the Batch User Guide.

\n \n

If the job runs on Fargate resources, then you must not specify\n nodeProperties; use containerProperties instead.

\n
\n \n

If the job runs on Amazon EKS resources, then you must not specify\n nodeProperties.

\n
" } }, "retryStrategy": { "target": "com.amazonaws.batch#RetryStrategy", "traits": { - "smithy.api#documentation": "

The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that's\n specified during a SubmitJob operation overrides the retry strategy defined here. If a job is\n terminated due to a timeout, it isn't retried.

" + "smithy.api#documentation": "

The retry strategy to use for failed jobs that are submitted with this job definition. Any\n retry strategy that's specified during a SubmitJob operation overrides the\n retry strategy defined here. If a job is terminated due to a timeout, it isn't retried.

" } }, "propagateTags": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state.

\n \n

If the job runs on Amazon EKS resources, then you must not specify propagateTags.

\n
" + "smithy.api#documentation": "

Specifies whether to propagate the tags from the job or job definition to the\n corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only\n be propagated to the tasks during task creation. For tags with the same name, job tags are\n given priority over job definitions tags. If the total number of combined tags from the job\n and job definition is over 50, the job is moved to the FAILED state.

\n \n

If the job runs on Amazon EKS resources, then you must not specify\n propagateTags.

\n
" } }, "timeout": { "target": "com.amazonaws.batch#JobTimeout", "traits": { - "smithy.api#documentation": "

The timeout configuration for jobs that are submitted with this job definition, after which Batch terminates\n your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for\n the timeout is 60 seconds. Any timeout configuration that's specified during a SubmitJob operation\n overrides the timeout configuration defined here. For more information, see Job Timeouts in the Batch User Guide.

" + "smithy.api#documentation": "

The timeout configuration for jobs that are submitted with this job definition, after\n which Batch terminates your jobs if they have not finished. If a job is terminated due to a\n timeout, it isn't retried. The minimum value for the timeout is 60 seconds. Any timeout\n configuration that's specified during a SubmitJob operation overrides the\n timeout configuration defined here. For more information, see Job Timeouts in the\n Batch User Guide.

" } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

The tags that you apply to the job definition to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Batch User Guide.

" + "smithy.api#documentation": "

The tags that you apply to the job definition to help you categorize and organize your\n resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in\n Batch User Guide.

" } }, "platformCapabilities": { "target": "com.amazonaws.batch#PlatformCapabilityList", "traits": { - "smithy.api#documentation": "

The platform capabilities required by the job definition. If no value is specified, it defaults to\n EC2. To run the job on Fargate resources, specify FARGATE.

\n \n

If the job runs on Amazon EKS resources, then you must not specify platformCapabilities.

\n
" + "smithy.api#documentation": "

The platform capabilities required by the job definition. If no value is specified, it\n defaults to EC2. To run the job on Fargate resources, specify\n FARGATE.

\n \n

If the job runs on Amazon EKS resources, then you must not specify\n platformCapabilities.

\n
" } }, "eksProperties": { "target": "com.amazonaws.batch#EksProperties", "traits": { - "smithy.api#documentation": "

An object with various properties that are specific to Amazon EKS based jobs. This must not be specified for Amazon ECS\n based job definitions.

" + "smithy.api#documentation": "

An object with properties that are specific to Amazon EKS-based jobs. This must not be\n specified for Amazon ECS based job definitions.

" + } + }, + "ecsProperties": { + "target": "com.amazonaws.batch#EcsProperties", + "traits": { + "smithy.api#documentation": "

An object with properties that are specific to Amazon ECS-based jobs. This must not be\n specified for Amazon EKS-based job definitions.

" } } }, @@ -6191,7 +6505,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret containing the private repository\n credentials.

", "smithy.api#required": {} } } @@ -6207,7 +6521,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The quantity of the specified resource to reserve for the container. The values vary based\n on the type specified.

\n
\n
type=\"GPU\"
\n
\n

The number of physical GPUs to reserve for the container. Make sure that the number of\n GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the\n compute resource that the job is launched on.

\n \n

GPUs aren't available for jobs that are running on Fargate resources.

\n
\n
\n
type=\"MEMORY\"
\n
\n

The memory hard limit (in MiB) present to the container. This parameter is supported for\n jobs that are running on EC2 resources. If your container attempts to exceed the memory\n specified, the container is terminated. This parameter maps to Memory in the\n Create a container section of the Docker Remote API and the\n --memory option to docker run. You\n must specify at least 4 MiB of memory for a job. This is required but can be specified in\n several places for multi-node parallel (MNP) jobs. It must be specified for each node at least\n once. This parameter maps to Memory in the Create a container\n section of the Docker Remote API and the --memory option to docker run.

\n \n

If you're trying to maximize your resource utilization by providing your jobs as much\n memory as possible for a particular instance type, see Memory management in the\n Batch User Guide.

\n
\n

For jobs that are running on Fargate resources, then value is the hard\n limit (in MiB), and must match one of the supported values and the VCPU values\n must be one of the values supported for that memory value.

\n
\n
value = 512
\n
\n

\n VCPU = 0.25

\n
\n
value = 1024
\n
\n

\n VCPU = 0.25 or 0.5

\n
\n
value = 2048
\n
\n

\n VCPU = 0.25, 0.5, or 1

\n
\n
value = 3072
\n
\n

\n VCPU = 0.5, or 1

\n
\n
value = 4096
\n
\n

\n VCPU = 0.5, 1, or 2

\n
\n
value = 5120, 6144, or 7168
\n
\n

\n VCPU = 1 or 2

\n
\n
value = 8192
\n
\n

\n VCPU = 1, 2, or 4

\n
\n
value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360
\n
\n

\n VCPU = 2 or 4

\n
\n
value = 16384
\n
\n

\n VCPU = 2, 4, or 8

\n
\n
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720
\n
\n

\n VCPU = 4

\n
\n
value = 20480, 24576, or 28672
\n
\n

\n VCPU = 4 or 8

\n
\n
value = 36864, 45056, 53248, or 61440
\n
\n

\n VCPU = 8

\n
\n
value = 32768, 40960, 49152, or 57344
\n
\n

\n VCPU = 8 or 16

\n
\n
value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880
\n
\n

\n VCPU = 16

\n
\n
\n
\n
type=\"VCPU\"
\n
\n

The number of vCPUs reserved for the container. This parameter maps to\n CpuShares in the Create a container section of the\n Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares.\n For EC2 resources, you must specify at least one vCPU. This is required but can be specified\n in several places; it must be specified for each node at least once.

\n

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more\n information about Fargate quotas, see Fargate quotas\n in the Amazon Web Services General Reference.

\n

For jobs that are running on Fargate resources, then value must match one\n of the supported values and the MEMORY values must be one of the values supported\n for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and\n 16

\n
\n
value = 0.25
\n
\n

\n MEMORY = 512, 1024, or 2048

\n
\n
value = 0.5
\n
\n

\n MEMORY = 1024, 2048, 3072, or 4096

\n
\n
value = 1
\n
\n

\n MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

\n
\n
value = 2
\n
\n

\n MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

\n
\n
value = 4
\n
\n

\n MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456,\n 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

\n
\n
value = 8
\n
\n

\n MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440\n

\n
\n
value = 16
\n
\n

\n MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880\n

\n
\n
\n
\n
", + "smithy.api#documentation": "

The quantity of the specified resource to reserve for the container. The values vary based\n on the type specified.

\n
\n
type=\"GPU\"
\n
\n

The number of physical GPUs to reserve for the container. Make sure that the number of\n GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the\n compute resource that the job is launched on.

\n \n

GPUs aren't available for jobs that are running on Fargate resources.

\n
\n
\n
type=\"MEMORY\"
\n
\n

The memory hard limit (in MiB) present to the container. This parameter is supported for\n jobs that are running on Amazon EC2 resources. If your container attempts to exceed the memory\n specified, the container is terminated. This parameter maps to Memory in the\n Create a container section of the Docker Remote API and the\n --memory option to docker run. You\n must specify at least 4 MiB of memory for a job. This is required but can be specified in\n several places for multi-node parallel (MNP) jobs. It must be specified for each node at least\n once. This parameter maps to Memory in the Create a container\n section of the Docker Remote API and the --memory option to docker run.

\n \n

If you're trying to maximize your resource utilization by providing your jobs as much\n memory as possible for a particular instance type, see Memory management in the\n Batch User Guide.

\n
\n

For jobs that are running on Fargate resources, then value is the hard\n limit (in MiB), and must match one of the supported values and the VCPU values\n must be one of the values supported for that memory value.

\n
\n
value = 512
\n
\n

\n VCPU = 0.25

\n
\n
value = 1024
\n
\n

\n VCPU = 0.25 or 0.5

\n
\n
value = 2048
\n
\n

\n VCPU = 0.25, 0.5, or 1

\n
\n
value = 3072
\n
\n

\n VCPU = 0.5, or 1

\n
\n
value = 4096
\n
\n

\n VCPU = 0.5, 1, or 2

\n
\n
value = 5120, 6144, or 7168
\n
\n

\n VCPU = 1 or 2

\n
\n
value = 8192
\n
\n

\n VCPU = 1, 2, or 4

\n
\n
value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360
\n
\n

\n VCPU = 2 or 4

\n
\n
value = 16384
\n
\n

\n VCPU = 2, 4, or 8

\n
\n
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720
\n
\n

\n VCPU = 4

\n
\n
value = 20480, 24576, or 28672
\n
\n

\n VCPU = 4 or 8

\n
\n
value = 36864, 45056, 53248, or 61440
\n
\n

\n VCPU = 8

\n
\n
value = 32768, 40960, 49152, or 57344
\n
\n

\n VCPU = 8 or 16

\n
\n
value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880
\n
\n

\n VCPU = 16

\n
\n
\n
\n
type=\"VCPU\"
\n
\n

The number of vCPUs reserved for the container. This parameter maps to\n CpuShares in the Create a container section of the\n Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares.\n For Amazon EC2 resources, you must specify at least one vCPU. This is required but can be specified\n in several places; it must be specified for each node at least once.

\n

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more\n information about Fargate quotas, see Fargate quotas\n in the Amazon Web Services General Reference.

\n

For jobs that are running on Fargate resources, then value must match one\n of the supported values and the MEMORY values must be one of the values supported\n for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and\n 16

\n
\n
value = 0.25
\n
\n

\n MEMORY = 512, 1024, or 2048

\n
\n
value = 0.5
\n
\n

\n MEMORY = 1024, 2048, 3072, or 4096

\n
\n
value = 1
\n
\n

\n MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

\n
\n
value = 2
\n
\n

\n MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

\n
\n
value = 4
\n
\n

\n MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456,\n 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

\n
\n
value = 8
\n
\n

\n MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440\n

\n
\n
value = 16
\n
\n

\n MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880\n

\n
\n
\n
\n
", "smithy.api#required": {} } }, @@ -6296,18 +6610,18 @@ "operatingSystemFamily": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The operating system for the compute environment.\n Valid values are:\n LINUX (default), WINDOWS_SERVER_2019_CORE,\n WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and\n WINDOWS_SERVER_2022_FULL.

\n \n

The following parameters can’t be set for Windows containers: linuxParameters,\n privileged, user, ulimits,\n readonlyRootFilesystem,\n and efsVolumeConfiguration.

\n
\n \n

The Batch Scheduler checks\n the compute environments\n that are attached to the job queue before registering a task definition with\n Fargate. In this\n scenario, the job queue is where the job is submitted. If the job requires a\n Windows container and the first compute environment is LINUX, the compute\n environment is skipped and the next compute environment is checked until a Windows-based compute\n environment is found.

\n
\n \n

Fargate Spot is not supported for\n ARM64 and\n Windows-based containers on Fargate. A job queue will be blocked if a\n Fargate\n ARM64 or\n Windows job is submitted to a job queue with only Fargate Spot compute environments.\n However, you can attach both FARGATE and\n FARGATE_SPOT compute environments to the same job queue.

\n
" + "smithy.api#documentation": "

The operating system for the compute environment.\n Valid values are:\n LINUX (default), WINDOWS_SERVER_2019_CORE,\n WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and\n WINDOWS_SERVER_2022_FULL.

\n \n

The following parameters can’t be set for Windows containers: linuxParameters,\n privileged, user, ulimits,\n readonlyRootFilesystem,\n and efsVolumeConfiguration.

\n
\n \n

The Batch Scheduler checks\n the compute environments\n that are attached to the job queue before registering a task definition with\n Fargate. In this\n scenario, the job queue is where the job is submitted. If the job requires a\n Windows container and the first compute environment is LINUX, the compute\n environment is skipped and the next compute environment is checked until a Windows-based compute\n environment is found.

\n
\n \n

Fargate Spot is not supported for\n ARM64 and\n Windows-based containers on Fargate. A job queue will be blocked if a\n Fargate\n ARM64 or\n Windows job is submitted to a job queue with only Fargate Spot compute environments.\n However, you can attach both FARGATE and\n FARGATE_SPOT compute environments to the same job queue.

\n
" } }, "cpuArchitecture": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

\n The vCPU architecture. The default value is X86_64. Valid values are\n X86_64 and ARM64.

\n \n

This parameter must be set to\n X86_64\n for Windows containers.

\n
\n \n

Fargate Spot is not supported for ARM64 and Windows-based containers on\n Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is\n submitted to a job queue with only Fargate Spot compute environments. However, you can attach\n both FARGATE and FARGATE_SPOT compute environments to the same job\n queue.

\n
" + "smithy.api#documentation": "

The vCPU architecture. The default value is X86_64. Valid values are\n X86_64 and ARM64.

\n \n

This parameter must be set to\n X86_64\n for Windows containers.

\n
\n \n

Fargate Spot is not supported for ARM64 and Windows-based containers on\n Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is\n submitted to a job queue with only Fargate Spot compute environments. However, you can attach\n both FARGATE and FARGATE_SPOT compute environments to the same job\n queue.

\n
" } } }, "traits": { - "smithy.api#documentation": "

\n An object that represents the compute environment architecture for Batch jobs on Fargate.\n

" + "smithy.api#documentation": "

An object that represents the compute environment architecture for Batch jobs on\n Fargate.

" } }, "com.amazonaws.batch#SchedulingPolicyDetail": { @@ -6471,7 +6785,7 @@ } ], "traits": { - "smithy.api#documentation": "

Submits an Batch job from a job definition. Parameters that are specified during SubmitJob\n override parameters defined in the job definition. vCPU and memory requirements that are specified in the\n resourceRequirements objects in the job definition are the exception. They can't be overridden this way\n using the memory and vcpus parameters. Rather, you must specify updates to job definition\n parameters in a resourceRequirements object that's included in the containerOverrides\n parameter.

\n \n

Job queues with a scheduling policy are limited to 500 active fair share identifiers at a time.

\n
\n \n

Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14\n days, Fargate resources might become unavailable and job might be terminated.

\n
", + "smithy.api#documentation": "

Submits an Batch job from a job definition. Parameters that are specified during SubmitJob override parameters defined in the job definition. vCPU and memory\n requirements that are specified in the resourceRequirements objects in the job\n definition are the exception. They can't be overridden this way using the memory\n and vcpus parameters. Rather, you must specify updates to job definition\n parameters in a resourceRequirements object that's included in the\n containerOverrides parameter.

\n \n

Job queues with a scheduling policy are limited to 500 active fair share identifiers at\n a time.

\n
\n \n

Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days.\n This is because, after 14 days, Fargate resources might become unavailable and job might be\n terminated.

\n
", "smithy.api#examples": [ { "title": "To submit a job to a queue", @@ -6501,7 +6815,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the job. It can be up to 128 letters long. The first character must be alphanumeric, can contain\n uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

", + "smithy.api#documentation": "

The name of the job. It can be up to 128 letters long. The first character must be\n alphanumeric, can contain uppercase and lowercase letters, numbers, hyphens (-), and\n underscores (_).

", "smithy.api#required": {} } }, @@ -6509,7 +6823,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The job queue where the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.

", + "smithy.api#documentation": "

The job queue where the job is submitted. You can specify either the name or the Amazon Resource Name (ARN)\n of the queue.

", "smithy.api#required": {} } }, @@ -6522,75 +6836,81 @@ "schedulingPriorityOverride": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The scheduling priority for the job. This only affects jobs in job queues with a fair share\n policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower\n scheduling priority.\n This\n overrides any scheduling priority in the job definition and works only within a single share\n identifier.

\n

The minimum supported value is 0 and the maximum supported value is 9999.

" + "smithy.api#documentation": "

The scheduling priority for the job. This only affects jobs in job queues with a fair\n share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower\n scheduling priority.\n This\n overrides any scheduling priority in the job definition and works only within a single share\n identifier.

\n

The minimum supported value is 0 and the maximum supported value is 9999.

" } }, "arrayProperties": { "target": "com.amazonaws.batch#ArrayProperties", "traits": { - "smithy.api#documentation": "

The array properties for the submitted job, such as the size of the array. The array size can be between 2 and\n 10,000. If you specify array properties for a job, it becomes an array job. For more information, see Array Jobs in the\n Batch User Guide.

" + "smithy.api#documentation": "

The array properties for the submitted job, such as the size of the array. The array size\n can be between 2 and 10,000. If you specify array properties for a job, it becomes an array\n job. For more information, see Array Jobs in the Batch User Guide.

" } }, "dependsOn": { "target": "com.amazonaws.batch#JobDependencyList", "traits": { - "smithy.api#documentation": "

A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a\n SEQUENTIAL type dependency without specifying a job ID for array jobs so that each child array job\n completes sequentially, starting at index 0. You can also specify an N_TO_N type dependency with a job\n ID for array jobs. In that case, each index child of this job must wait for the corresponding index child of each\n dependency to complete before it can begin.

" + "smithy.api#documentation": "

A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can\n specify a SEQUENTIAL type dependency without specifying a job ID for array jobs\n so that each child array job completes sequentially, starting at index 0. You can also specify\n an N_TO_N type dependency with a job ID for array jobs. In that case, each index\n child of this job must wait for the corresponding index child of each dependency to complete\n before it can begin.

" } }, "jobDefinition": { "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The job definition used by this job. This value can be one of definition-name,\n definition-name:revision, or the Amazon Resource Name (ARN) for the job definition, with or without the revision\n (arn:aws:batch:region:account:job-definition/definition-name:revision\n ,\n or\n arn:aws:batch:region:account:job-definition/definition-name\n ).

\n

If the revision is not specified, then the latest active revision is used.

", + "smithy.api#documentation": "

The job definition used by this job. This value can be one of\n definition-name, definition-name:revision, or the Amazon Resource Name (ARN) for the\n job definition, with or without the revision\n (arn:aws:batch:region:account:job-definition/definition-name:revision\n ,\n or\n arn:aws:batch:region:account:job-definition/definition-name\n ).

\n

If the revision is not specified, then the latest active revision is used.

", "smithy.api#required": {} } }, "parameters": { "target": "com.amazonaws.batch#ParametersMap", "traits": { - "smithy.api#documentation": "

Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job\n definition. Parameters are specified as a key and value pair mapping. Parameters in a SubmitJob request\n override any corresponding parameter defaults from the job definition.

" + "smithy.api#documentation": "

Additional parameters passed to the job that replace parameter substitution placeholders\n that are set in the job definition. Parameters are specified as a key and value pair mapping.\n Parameters in a SubmitJob request override any corresponding parameter defaults\n from the job definition.

" } }, "containerOverrides": { "target": "com.amazonaws.batch#ContainerOverrides", "traits": { - "smithy.api#documentation": "

An object with various properties that override the defaults for the job definition that specify the name of a\n container in the specified job definition and the overrides it should receive. You can override the default command\n for a container, which is specified in the job definition or the Docker image, with a command override.\n You can also override existing environment variables on a container or add new environment variables to it with an\n environment override.

" + "smithy.api#documentation": "

An object with properties that override the defaults for the job definition that specify\n the name of a container in the specified job definition and the overrides it should receive.\n You can override the default command for a container, which is specified in the job definition\n or the Docker image, with a command override. You can also override existing\n environment variables on a container or add new environment variables to it with an\n environment override.

" } }, "nodeOverrides": { "target": "com.amazonaws.batch#NodeOverrides", "traits": { - "smithy.api#documentation": "

A list of node overrides in JSON format that specify the node range to target and the container overrides for\n that node range.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources; use\n containerOverrides instead.

\n
" + "smithy.api#documentation": "

A list of node overrides in JSON format that specify the node range to target and the\n container overrides for that node range.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources; use\n containerOverrides instead.

\n
" } }, "retryStrategy": { "target": "com.amazonaws.batch#RetryStrategy", "traits": { - "smithy.api#documentation": "

The retry strategy to use for failed jobs from this SubmitJob operation. When a retry strategy\n is specified here, it overrides the retry strategy defined in the job definition.

" + "smithy.api#documentation": "

The retry strategy to use for failed jobs from this SubmitJob operation.\n When a retry strategy is specified here, it overrides the retry strategy defined in the job\n definition.

" } }, "propagateTags": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state. When specified, this\n overrides the tag propagation setting in the job definition.

" + "smithy.api#documentation": "

Specifies whether to propagate the tags from the job or job definition to the\n corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only\n be propagated to the tasks during task creation. For tags with the same name, job tags are\n given priority over job definitions tags. If the total number of combined tags from the job\n and job definition is over 50, the job is moved to the FAILED state. When\n specified, this overrides the tag propagation setting in the job definition.

" } }, "timeout": { "target": "com.amazonaws.batch#JobTimeout", "traits": { - "smithy.api#documentation": "

The timeout configuration for this SubmitJob operation. You can specify a timeout duration\n after which Batch terminates your jobs if they haven't finished. If a job is terminated due to a timeout, it isn't\n retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration\n specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job.\n For more information, see Job\n Timeouts in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The timeout configuration for this SubmitJob operation. You can specify\n a timeout duration after which Batch terminates your jobs if they haven't finished. If a job\n is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60\n seconds. This configuration overrides any timeout configuration specified in the job\n definition. For array jobs, child jobs have the same timeout configuration as the parent job.\n For more information, see Job Timeouts in the\n Amazon Elastic Container Service Developer Guide.

" } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists\n of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General\n Reference.

" + "smithy.api#documentation": "

The tags that you apply to the job request to help you categorize and organize your\n resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services\n Resources in Amazon Web Services General Reference.

" } }, "eksPropertiesOverride": { "target": "com.amazonaws.batch#EksPropertiesOverride", "traits": { - "smithy.api#documentation": "

An object that can only be specified for jobs that are run on Amazon EKS resources with various properties that\n override defaults for the job definition.

" + "smithy.api#documentation": "

An object, with properties that override defaults for the job definition, can only be specified for jobs that are run on Amazon EKS resources.

" + } + }, + "ecsPropertiesOverride": { + "target": "com.amazonaws.batch#EcsPropertiesOverride", + "traits": { + "smithy.api#documentation": "

An object, with properties that override defaults for the job definition, can only be specified for jobs that are run on Amazon ECS resources.

" } } }, @@ -6667,7 +6987,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a\n resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags that\n are associated with that resource are deleted as well. Batch resources that support tags are compute environments, jobs, job definitions, job queues,\n and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", + "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn.\n If existing tags on a resource aren't specified in the request parameters, they aren't\n changed. When a resource is deleted, the tags that are associated with that resource are\n deleted as well. Batch resources that support tags are compute environments, jobs, job definitions, job queues,\n and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", "smithy.api#examples": [ { "title": "TagResource Example", @@ -6703,7 +7023,7 @@ "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The tags that you apply to the resource to help you categorize and organize your resources. Each tag consists of\n a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General\n Reference.

", + "smithy.api#documentation": "

The tags that you apply to the resource to help you categorize and organize your\n resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services\n Resources in Amazon Web Services General Reference.

", "smithy.api#required": {} } } @@ -6753,6 +7073,312 @@ "target": "com.amazonaws.batch#String" } }, + "com.amazonaws.batch#TaskContainerDependency": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

A unique identifier for the container.

" + } + }, + "condition": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The dependency condition of the container. The following are the available conditions and\n their behavior:

\n
    \n
  • \n

    \n START - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.

    \n
  • \n
  • \n

    \n COMPLETE - This condition validates that a dependent container runs to\n completion (exits) before permitting other containers to start. This can be useful for\n nonessential containers that run a script and then exit. This condition can't be set on an\n essential container.

    \n
  • \n
  • \n

    \n SUCCESS - This condition is the same as COMPLETE, but it also\n requires that the container exits with a zero status. This condition can't be set on an\n essential container.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of containers that this task depends on.

" + } + }, + "com.amazonaws.batch#TaskContainerDependencyList": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#TaskContainerDependency" + } + }, + "com.amazonaws.batch#TaskContainerDetails": { + "type": "structure", + "members": { + "command": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

The command that's passed to the container. This parameter maps to Cmd in the\n Create a container section of the Docker Remote API and the COMMAND\n parameter to docker run. For more information, see\n https://docs.docker.com/engine/reference/builder/#cmd.

" + } + }, + "dependsOn": { + "target": "com.amazonaws.batch#TaskContainerDependencyList", + "traits": { + "smithy.api#documentation": "

A list of containers that this container depends on.

" + } + }, + "environment": { + "target": "com.amazonaws.batch#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to pass to a container. This parameter maps to Env in\n the Create a container section of the Docker Remote API and the\n --env option to docker run.

\n \n

We don't recommend using plaintext environment variables for sensitive information, such as\n credential data.

\n
" + } + }, + "essential": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

If the essential parameter of a container is marked as true, and that container\n fails or stops for any reason, all other containers that are part of the task are stopped. If the\n essential parameter of a container is marked as false, its failure doesn't affect\n the rest of the containers in a task. If this parameter is omitted, a container is assumed to be\n essential.

\n

All tasks must have at least one essential container. If you have an application that's\n composed of multiple containers, group containers that are used for a common purpose into\n components, and separate the different components into multiple task definitions. For more\n information, see Application\n Architecture in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "image": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The image used to start a container. This string is passed directly to the Docker daemon. By\n default, images in the Docker Hub registry are available. Other repositories are specified with\n either repository-url/image:tag or repository-url/image@digest. Up to\n 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward\n slashes, and number signs are allowed. This parameter maps to Image in the Create a\n container section of the Docker\n Remote API and the IMAGE parameter of the \n docker\n run\n .

" + } + }, + "linuxParameters": { + "target": "com.amazonaws.batch#LinuxParameters", + "traits": { + "smithy.api#documentation": "

Linux-specific modifications that are applied to the container, such as Linux kernel\n capabilities. For more information, see KernelCapabilities.

\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "logConfiguration": { + "target": "com.amazonaws.batch#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a\n container section of the Docker\n Remote API and the --log-driver option to docker\n run.

\n

By default, containers use the same logging driver that the Docker daemon uses. However the\n container can use a different logging driver than the Docker daemon by specifying a log driver\n with this parameter in the container definition. To use a different logging driver for a\n container, the log system must be configured properly on the container instance (or on a\n different log server for remote logging options). For more information about the options for\n different supported log drivers, see Configure logging drivers \n in the Docker documentation.

\n \n

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type). Additional log drivers may be available\n in future releases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container\n instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version --format\n '{{.Server.APIVersion}}'\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" + } + }, + "mountPoints": { + "target": "com.amazonaws.batch#MountPoints", + "traits": { + "smithy.api#documentation": "

The mount points for data volumes in your container.

\n

This parameter maps to Volumes in the Create a\n container section of the Docker\n Remote API and the --volume option to docker\n run.

\n

Windows containers can mount whole directories on the same drive as\n $env:ProgramData. Windows containers can't mount directories on a different drive,\n and mount point can't be across drives.

" + } + }, + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of a container.

" + } + }, + "privileged": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given elevated privileges on the\n host container instance (similar to the root user). This parameter maps to\n Privileged in the Create a\n container section of the Docker\n Remote API and the --privileged option to docker\n run.

\n \n

This parameter is not supported for Windows containers or tasks run on Fargate.

\n
" + } + }, + "readonlyRootFilesystem": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given read-only access to its root file\n system. This parameter maps to ReadonlyRootfs in the Create a\n container section of the Docker\n Remote API and the --read-only option to docker\n run.

\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "repositoryCredentials": { + "target": "com.amazonaws.batch#RepositoryCredentials", + "traits": { + "smithy.api#documentation": "

The private repository authentication credentials to use.

" + } + }, + "resourceRequirements": { + "target": "com.amazonaws.batch#ResourceRequirements", + "traits": { + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The only supported resource is a\n GPU.

" + } + }, + "secrets": { + "target": "com.amazonaws.batch#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the container. For more information, see Specifying Sensitive\n Data in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "ulimits": { + "target": "com.amazonaws.batch#Ulimits", + "traits": { + "smithy.api#documentation": "

A list of ulimits to set in the container. If a ulimit value is\n specified in a task definition, it overrides the default values set by Docker. This parameter\n maps to Ulimits in the Create a\n container section of the Docker\n Remote API and the --ulimit option to docker\n run.

\n

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating\n system with the exception of the nofile resource limit parameter which Fargate overrides. The\n nofile resource limit sets a restriction on the number of open files that a\n container can use. The default nofile soft limit is 1024 and the\n default hard limit is 65535.

\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container\n instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version --format\n '{{.Server.APIVersion}}'\n

\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "user": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The user to use inside the container. This parameter maps to User in the Create a container\n section of the Docker Remote API and the --user option to docker run.

\n \n

When running tasks using the host network mode, don't run containers using the\n root user (UID 0). We recommend using a non-root user for better security.

\n
\n

You can specify the user using the following formats. If specifying a UID or\n GID, you must specify it as a positive integer.

\n
    \n
  • \n

    \n user\n

    \n
  • \n
  • \n

    \n user:group\n

    \n
  • \n
  • \n

    \n uid\n

    \n
  • \n
  • \n

    \n uid:gid\n

    \n
  • \n
  • \n

    \n user:gi\n

    \n
  • \n
  • \n

    \n uid:group\n

    \n
  • \n
  • \n

    \n \n

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "exitCode": { + "target": "com.amazonaws.batch#Integer", + "traits": { + "smithy.api#documentation": "

The exit code returned upon completion.

" + } + }, + "reason": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

A short (255 max characters) human-readable string to provide additional details for a\n running or stopped container.

" + } + }, + "logStreamName": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch Logs log stream that's associated with the container. The log group for\n Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach\n the RUNNING status.

" + } + }, + "networkInterfaces": { + "target": "com.amazonaws.batch#NetworkInterfaceList", + "traits": { + "smithy.api#documentation": "

The network interfaces that are associated with the job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for the container in this task attempt.

" + } + }, + "com.amazonaws.batch#TaskContainerOverrides": { + "type": "structure", + "members": { + "command": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

The command to send to the container that overrides the default command from the Docker\n image or the job definition.

\n \n

This parameter can't contain an empty string.

\n
" + } + }, + "environment": { + "target": "com.amazonaws.batch#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to send to the container. You can add new environment variables,\n which are added to the container at launch, or you can override the existing environment\n variables from the Docker image or the job definition.

\n \n

Environment variables cannot start with AWS_BATCH. This naming convention is\n reserved for variables that Batch sets.

\n
" + } + }, + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

A pointer to the container that you want to override. The container's name provides a unique\n identifier for the container being used.

" + } + }, + "resourceRequirements": { + "target": "com.amazonaws.batch#ResourceRequirements", + "traits": { + "smithy.api#documentation": "

The type and amount of resources to assign to a container. This overrides the settings in\n the job definition. The supported resources include GPU, MEMORY, and\n VCPU.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The overrides that should be sent to a container.

\n

For information about using Batch overrides when you connect event sources to targets, see\n BatchContainerOverrides.

" + } + }, + "com.amazonaws.batch#TaskContainerProperties": { + "type": "structure", + "members": { + "command": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

The command that's passed to the container. This parameter maps to Cmd in the\n Create a\n container section of the Docker\n Remote API and the COMMAND parameter to docker run. For more information,\n see Dockerfile reference:\n CMD.

" + } + }, + "dependsOn": { + "target": "com.amazonaws.batch#TaskContainerDependencyList", + "traits": { + "smithy.api#documentation": "

A list of containers that this container depends on.

" + } + }, + "environment": { + "target": "com.amazonaws.batch#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to pass to a container. This parameter maps to Env inthe Create a container\n section of the Docker Remote API\n and the --env parameter to docker run.

\n \n

We don't recommend using plaintext environment variables for sensitive information, such as\n credential data.

\n
\n \n

Environment variables cannot start with AWS_BATCH. This naming convention is\n reserved for variables that Batch sets.

\n
" + } + }, + "essential": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

If the essential parameter of a container is marked as true, and that container\n fails or stops for any reason, all other containers that are part of the task are stopped. If the\n essential parameter of a container is marked as false, its failure doesn't affect\n the rest of the containers in a task. If this parameter is omitted, a container is assumed to be\n essential.

\n

All tasks must have at least one essential container. If you have an application that's\n composed of multiple containers, group containers that are used for a common purpose into\n components, and separate the different components into multiple task definitions. For more\n information, see Application\n Architecture in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "image": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The image used to start a container. This string is passed directly to the Docker daemon. By\n default, images in the Docker Hub registry are available. Other repositories are specified with\n either repository-url/image:tag or repository-url/image@digest. Up to\n 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward\n slashes, and number signs are allowed. This parameter maps to Image in the Create a\n container section of the Docker\n Remote API and the IMAGE parameter of the \n docker\n run\n .

", + "smithy.api#required": {} + } + }, + "linuxParameters": { + "target": "com.amazonaws.batch#LinuxParameters", + "traits": { + "smithy.api#documentation": "

Linux-specific modifications that are applied to the container, such as Linux kernel\n capabilities. For more information, see KernelCapabilities.

" + } + }, + "logConfiguration": { + "target": "com.amazonaws.batch#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration specification for the container.

\n

This parameter maps to LogConfig in the Create a\n container section of the Docker\n Remote API and the --log-driver option to docker\n run.

\n

By default, containers use the same logging driver that the Docker daemon uses. However the\n container can use a different logging driver than the Docker daemon by specifying a log driver\n with this parameter in the container definition. To use a different logging driver for a\n container, the log system must be configured properly on the container instance (or on a\n different log server for remote logging options). For more information about the options for\n different supported log drivers, see Configure logging drivers \n in the Docker documentation.

\n \n

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon\n (shown in the LogConfiguration data type). Additional log drivers may be available\n in future releases of the Amazon ECS container agent.

\n
\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container\n instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version --format\n '{{.Server.APIVersion}}'\n

\n \n

The Amazon ECS container agent running on a container instance must register the logging drivers\n available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment\n variable before containers placed on that instance can use these log configuration options. For\n more information, see Amazon ECS container agent\n configuration in the Amazon Elastic Container Service Developer Guide.

\n
" + } + }, + "mountPoints": { + "target": "com.amazonaws.batch#MountPoints", + "traits": { + "smithy.api#documentation": "

The mount points for data volumes in your container.

\n

This parameter maps to Volumes in the Create a\n container section of the Docker\n Remote API and the --volume option to docker\n run.

\n

Windows containers can mount whole directories on the same drive as\n $env:ProgramData. Windows containers can't mount directories on a different drive,\n and mount point can't be across drives.

" + } + }, + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of a container. The name can be used as a unique identifier to target your dependsOn and Overrides objects.

" + } + }, + "privileged": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given elevated privileges on the\n host container instance (similar to the root user). This parameter maps to\n Privileged in the Create a\n container section of the Docker\n Remote API and the --privileged option to docker\n run.

\n \n

This parameter is not supported for Windows containers or tasks run on Fargate.

\n
" + } + }, + "readonlyRootFilesystem": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given read-only access to its root file\n system. This parameter maps to ReadonlyRootfs in the Create a\n container section of the Docker\n Remote API and the --read-only option to docker\n run.

\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "repositoryCredentials": { + "target": "com.amazonaws.batch#RepositoryCredentials", + "traits": { + "smithy.api#documentation": "

The private repository authentication credentials to use.

" + } + }, + "resourceRequirements": { + "target": "com.amazonaws.batch#ResourceRequirements", + "traits": { + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The only supported resource is a\n GPU.

" + } + }, + "secrets": { + "target": "com.amazonaws.batch#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the container. For more information, see Specifying Sensitive\n Data in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "ulimits": { + "target": "com.amazonaws.batch#Ulimits", + "traits": { + "smithy.api#documentation": "

A list of ulimits to set in the container. If a ulimit value is\n specified in a task definition, it overrides the default values set by Docker. This parameter\n maps to Ulimits in the Create a\n container section of the Docker\n Remote API and the --ulimit option to docker\n run.

\n

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating\n system with the exception of the nofile resource limit parameter which Fargate overrides. The\n nofile resource limit sets a restriction on the number of open files that a\n container can use. The default nofile soft limit is 1024 and the\n default hard limit is 65535.

\n

This parameter requires version 1.18 of the Docker Remote API or greater on your container\n instance. To check the Docker Remote API version on your container instance, log in to your\n container instance and run the following command: sudo docker version --format\n '{{.Server.APIVersion}}'\n

\n \n

This parameter is not supported for Windows containers.

\n
" + } + }, + "user": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The user to use inside the container. This parameter maps to User in the Create a container\n section of the Docker Remote API and the --user option to docker run.

\n \n

When running tasks using the host network mode, don't run containers using the\n root user (UID 0). We recommend using a non-root user for better security.

\n
\n

You can specify the user using the following formats. If specifying a UID or\n GID, you must specify it as a positive integer.

\n
    \n
  • \n

    \n user\n

    \n
  • \n
  • \n

    \n user:group\n

    \n
  • \n
  • \n

    \n uid\n

    \n
  • \n
  • \n

    \n uid:gid\n

    \n
  • \n
  • \n

    \n user:gi\n

    \n
  • \n
  • \n

    \n uid:group\n

    \n
  • \n
\n \n

This parameter is not supported for Windows containers.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container properties are used for Amazon ECS-based job definitions. These properties to describe\n the container that's launched as part of a job.

" + } + }, + "com.amazonaws.batch#TaskPropertiesOverride": { + "type": "structure", + "members": { + "containers": { + "target": "com.amazonaws.batch#ListTaskContainerOverrides", + "traits": { + "smithy.api#documentation": "

The overrides for the container definition of a job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains overrides for the task definition of a job.

" + } + }, "com.amazonaws.batch#TerminateJob": { "type": "operation", "input": { @@ -6770,7 +7396,7 @@ } ], "traits": { - "smithy.api#documentation": "

Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are\n terminated, which causes them to transition to FAILED. Jobs that have not progressed to the\n STARTING state are cancelled.

", + "smithy.api#documentation": "

Terminates a job in a job queue. Jobs that are in the STARTING or\n RUNNING state are terminated, which causes them to transition to\n FAILED. Jobs that have not progressed to the STARTING state are\n cancelled.

", "smithy.api#examples": [ { "title": "To terminate a job", @@ -6804,7 +7430,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future\n DescribeJobs operations on the job. This message is also recorded in the Batch activity\n logs.

", + "smithy.api#documentation": "

A message to attach to the job that explains the reason for canceling it. This message is\n returned by future DescribeJobs operations on the job. This message is also\n recorded in the Batch activity logs.

", "smithy.api#required": {} } } @@ -6872,7 +7498,7 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of the ulimit. Valid values are: core | cpu | \n data | fsize | locks | memlock | msgqueue | \n nice | nofile | nproc | rss | rtprio | \n rttime | sigpending | stack.

", + "smithy.api#documentation": "

The type of the ulimit. Valid values are: core |\n cpu | data | fsize | locks |\n memlock | msgqueue | nice | nofile |\n nproc | rss | rtprio | rttime |\n sigpending | stack.

", "smithy.api#required": {} } }, @@ -6886,7 +7512,7 @@ } }, "traits": { - "smithy.api#documentation": "

The ulimit settings to pass to the container. For more information, see \n Ulimit.

\n \n

This object isn't applicable to jobs that are running on Fargate resources.

\n
" + "smithy.api#documentation": "

The ulimit settings to pass to the container. For more information, see Ulimit.

\n \n

This object isn't applicable to jobs that are running on Fargate resources.

\n
" } }, "com.amazonaws.batch#Ulimits": { @@ -7025,25 +7651,25 @@ "unmanagedvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of vCPUs expected to be used for an unmanaged compute environment. Don't specify this\n parameter for a managed compute environment. This parameter is only used for fair share scheduling to reserve vCPU\n capacity for new share identifiers. If this parameter isn't provided for a fair share job queue, no vCPU capacity is\n reserved.

" + "smithy.api#documentation": "

The maximum number of vCPUs expected to be used for an unmanaged compute environment.\n Don't specify this parameter for a managed compute environment. This parameter is only used\n for fair share scheduling to reserve vCPU capacity for new share identifiers. If this\n parameter isn't provided for a fair share job queue, no vCPU capacity is reserved.

" } }, "computeResources": { "target": "com.amazonaws.batch#ComputeResourceUpdate", "traits": { - "smithy.api#documentation": "

Details of the compute resources managed by the compute environment. Required for a managed compute environment.\n For more information, see Compute\n Environments in the Batch User Guide.

" + "smithy.api#documentation": "

Details of the compute resources managed by the compute environment. Required for a\n managed compute environment. For more information, see Compute Environments in the\n Batch User Guide.

" } }, "serviceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf.\n For more information, see Batch service IAM\n role in the Batch User Guide.

\n \n

If the compute environment has a service-linked role, it can't be changed to use a regular IAM role.\n Likewise, if the compute environment has a regular IAM role, it can't be changed to use a service-linked role. To\n update the parameters for the compute environment that require an infrastructure update to change, the AWSServiceRoleForBatch service-linked role must be used. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

If your specified role has a path other than /, then you must either specify the full role ARN\n (recommended) or prefix the role name with the path.

\n \n

Depending on how you created your Batch service role, its ARN might contain the service-role\n path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

\n
" + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services\n services on your behalf. For more information, see Batch service IAM role in the\n Batch User Guide.

\n \n

If the compute environment has a service-linked role, it can't be changed to use a\n regular IAM role. Likewise, if the compute environment has a regular IAM role, it can't\n be changed to use a service-linked role. To update the parameters for the compute\n environment that require an infrastructure update to change, the AWSServiceRoleForBatch service-linked role must be used. For more information,\n see Updating\n compute environments in the Batch User Guide.

\n
\n

If your specified role has a path other than /, then you must either specify\n the full role ARN (recommended) or prefix the role name with the path.

\n \n

Depending on how you created your Batch service role, its ARN might contain the\n service-role path prefix. When you only specify the name of the service role,\n Batch assumes that your ARN doesn't use the service-role path prefix. Because\n of this, we recommend that you specify the full ARN of your service role when you create\n compute environments.

\n
" } }, "updatePolicy": { "target": "com.amazonaws.batch#UpdatePolicy", "traits": { - "smithy.api#documentation": "

Specifies the updated infrastructure update policy for the compute environment. For more information about\n infrastructure updates, see Updating\n compute environments in the Batch User Guide.

" + "smithy.api#documentation": "

Specifies the updated infrastructure update policy for the compute environment. For more\n information about infrastructure updates, see Updating compute environments in\n the Batch User Guide.

" } } }, @@ -7125,25 +7751,25 @@ "state": { "target": "com.amazonaws.batch#JQState", "traits": { - "smithy.api#documentation": "

Describes the queue's ability to accept new jobs. If the job queue state is ENABLED, it can accept\n jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the\n queue can finish.

" + "smithy.api#documentation": "

Describes the queue's ability to accept new jobs. If the job queue state is\n ENABLED, it can accept jobs. If the job queue state is DISABLED,\n new jobs can't be added to the queue, but jobs already in the queue can finish.

" } }, "schedulingPolicyArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

Amazon Resource Name (ARN) of the fair share scheduling policy. Once a job queue is created, the fair share scheduling policy can\n be replaced but not removed. The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n For example,\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the fair share scheduling policy. Once a job queue is created, the fair share\n scheduling policy can be replaced but not removed. The format is\n aws:Partition:batch:Region:Account:scheduling-policy/Name\n .\n For example,\n aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" } }, "priority": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the\n priority parameter) are evaluated first when associated with the same compute environment. Priority is\n determined in descending order. For example, a job queue with a priority value of 10 is given scheduling\n preference over a job queue with a priority value of 1. All of the compute environments must be either\n EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and\n Fargate compute environments can't be mixed.

" + "smithy.api#documentation": "

The priority of the job queue. Job queues with a higher priority (or a higher integer\n value for the priority parameter) are evaluated first when associated with the\n same compute environment. Priority is determined in descending order. For example, a job queue\n with a priority value of 10 is given scheduling preference over a job queue with\n a priority value of 1. All of the compute environments must be either EC2\n (EC2 or SPOT) or Fargate (FARGATE or\n FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed.

" } }, "computeEnvironmentOrder": { "target": "com.amazonaws.batch#ComputeEnvironmentOrders", "traits": { - "smithy.api#documentation": "

Details the set of compute environments mapped to a job queue and their order relative to each other. This is\n one of the parameters used by the job scheduler to determine which compute environment runs a given job. Compute\n environments must be in the VALID state before you can associate them with a job queue. All of\n the compute environments must be either EC2 (EC2 or SPOT) or Fargate\n (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't\n support mixing compute environment architecture types in a single job queue.

\n
" + "smithy.api#documentation": "

Details the set of compute environments mapped to a job queue and their order relative to\n each other. This is one of the parameters used by the job scheduler to determine which compute\n environment runs a given job. Compute environments must be in the VALID state\n before you can associate them with a job queue. All of the compute environments must be either\n EC2 (EC2 or SPOT) or Fargate (FARGATE or\n FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed.

\n \n

All compute environments that are associated with a job queue must share the same\n architecture. Batch doesn't support mixing compute environment architecture types in a\n single job queue.

\n
" } } }, diff --git a/codegen/sdk/aws-models/bedrock-agent-runtime.json b/codegen/sdk/aws-models/bedrock-agent-runtime.json index 3aeb386278c..98b82011670 100644 --- a/codegen/sdk/aws-models/bedrock-agent-runtime.json +++ b/codegen/sdk/aws-models/bedrock-agent-runtime.json @@ -1326,6 +1326,9 @@ "traits": { "smithy.api#required": {} } + }, + "retrievalConfiguration": { + "target": "com.amazonaws.bedrockagentruntime#KnowledgeBaseRetrievalConfiguration" } }, "traits": { @@ -1338,12 +1341,19 @@ "numberOfResults": { "target": "smithy.api#Integer", "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": 5, "smithy.api#documentation": "Top-K results to retrieve from knowledge base.", "smithy.api#range": { "min": 1, - "max": 10 - }, - "smithy.api#required": {} + "max": 25 + } + } + }, + "overrideSearchType": { + "target": "com.amazonaws.bedrockagentruntime#SearchType", + "traits": { + "smithy.api#documentation": "Override the type of query to be performed on data store" } } }, @@ -1795,7 +1805,8 @@ } }, "traits": { - "smithy.api#documentation": "Content of a retrieval result." + "smithy.api#documentation": "Content of a retrieval result.", + "smithy.api#sensitive": {} } }, "com.amazonaws.bedrockagentruntime#RetrievalResultLocation": { @@ -1812,7 +1823,8 @@ } }, "traits": { - "smithy.api#documentation": "The source location of a retrieval result." + "smithy.api#documentation": "The source location of a retrieval result.", + "smithy.api#sensitive": {} } }, "com.amazonaws.bedrockagentruntime#RetrievalResultLocationType": { @@ -2151,6 +2163,26 @@ "smithy.api#documentation": "list of retrieved references" } }, + "com.amazonaws.bedrockagentruntime#SearchType": { + "type": "enum", + "members": { + "HYBRID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HYBRID" + } + }, + "SEMANTIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SEMANTIC" + } + } + }, + "traits": { + "smithy.api#documentation": "Query type to be performed on data store." + } + }, "com.amazonaws.bedrockagentruntime#ServiceQuotaExceededException": { "type": "structure", "members": { @@ -2297,7 +2329,8 @@ } }, "traits": { - "smithy.api#documentation": "Text response part" + "smithy.api#documentation": "Text response part", + "smithy.api#sensitive": {} } }, "com.amazonaws.bedrockagentruntime#ThrottlingException": { diff --git a/codegen/sdk/aws-models/chatbot.json b/codegen/sdk/aws-models/chatbot.json index 4926bdd15b5..a1f088d5c74 100644 --- a/codegen/sdk/aws-models/chatbot.json +++ b/codegen/sdk/aws-models/chatbot.json @@ -2823,7 +2823,7 @@ }, "aws.protocols#restJson1": {}, "smithy.api#documentation": "AWS Chatbot API", - "smithy.api#title": "chatbot", + "smithy.api#title": "AWS Chatbot", "smithy.api#xmlNamespace": { "uri": "http://wheatley.amazonaws.com/orchestration/2017-10-11/" }, diff --git a/codegen/sdk/aws-models/cloudformation.json b/codegen/sdk/aws-models/cloudformation.json index 09d2c3711b6..5c79fb32f72 100644 --- a/codegen/sdk/aws-models/cloudformation.json +++ b/codegen/sdk/aws-models/cloudformation.json @@ -73,18 +73,18 @@ "Status": { "target": "com.amazonaws.cloudformation#AccountGateStatus", "traits": { - "smithy.api#documentation": "

The status of the account gate function.

\n
    \n
  • \n

    \n SUCCEEDED: The account gate function has determined that the account and\n Region passes any requirements for a stack set operation to occur. CloudFormation\n proceeds with the stack operation in that account and Region.

    \n
  • \n
  • \n

    \n FAILED: The account gate function has determined that the account and Region\n doesn't meet the requirements for a stack set operation to occur. CloudFormation cancels\n the stack set operation in that account and Region, and sets the stack set operation result\n status for that account and Region to FAILED.

    \n
  • \n
  • \n

    \n SKIPPED: CloudFormation has skipped calling the account gate function for\n this account and Region, for one of the following reasons:

    \n
      \n
    • \n

      An account gate function hasn't been specified for the account and Region. CloudFormation proceeds with the stack set operation in this account and Region.

      \n
    • \n
    • \n

      The AWSCloudFormationStackSetExecutionRole of the stack set administration\n account lacks permissions to invoke the function. CloudFormation proceeds with the\n stack set operation in this account and Region.

      \n
    • \n
    • \n

      Either no action is necessary, or no action is possible, on the stack. CloudFormation skips the stack set operation in this account and Region.

      \n
    • \n
    \n
  • \n
" + "smithy.api#documentation": "

The status of the account gate function.

\n
    \n
  • \n

    \n SUCCEEDED: The account gate function has determined that the account and Region passes any\n requirements for a stack set operation to occur. CloudFormation proceeds with the stack operation in that account and\n Region.

    \n
  • \n
  • \n

    \n FAILED: The account gate function has determined that the account and Region doesn't meet the\n requirements for a stack set operation to occur. CloudFormation cancels the stack set operation in that account and Region,\n and sets the stack set operation result status for that account and Region to FAILED.

    \n
  • \n
  • \n

    \n SKIPPED: CloudFormation has skipped calling the account gate function for this account and Region, for one\n of the following reasons:

    \n
      \n
    • \n

      An account gate function hasn't been specified for the account and Region. CloudFormation proceeds with the stack set\n operation in this account and Region.

      \n
    • \n
    • \n

      The AWSCloudFormationStackSetExecutionRole of the stack set administration account lacks\n permissions to invoke the function. CloudFormation proceeds with the stack set operation in this account and\n Region.

      \n
    • \n
    • \n

      Either no action is necessary, or no action is possible, on the stack. CloudFormation skips the stack set operation\n in this account and Region.

      \n
    • \n
    \n
  • \n
" } }, "StatusReason": { "target": "com.amazonaws.cloudformation#AccountGateStatusReason", "traits": { - "smithy.api#documentation": "

The reason for the account gate status assigned to this account and Region for the stack set\n operation.

" + "smithy.api#documentation": "

The reason for the account gate status assigned to this account and Region for the stack set operation.

" } } }, "traits": { - "smithy.api#documentation": "

Structure that contains the results of the account gate function which CloudFormation\n invokes, if present, before proceeding with a stack set operation in an account and\n Region.

\n

For each account and Region, CloudFormation lets you specify a Lambda\n function that encapsulates any requirements that must be met before CloudFormation can\n proceed with a stack set operation in that account and Region. CloudFormation invokes\n the function each time a stack set operation is requested for that account and Region; if the\n function returns FAILED, CloudFormation cancels the operation in that\n account and Region, and sets the stack set operation result status for that account and Region to\n FAILED.

\n

For more information, see Configuring a target\n account gate.

" + "smithy.api#documentation": "

Structure that contains the results of the account gate function which CloudFormation invokes, if present, before\n proceeding with a stack set operation in an account and Region.

\n

For each account and Region, CloudFormation lets you specify a Lambda function that encapsulates any\n requirements that must be met before CloudFormation can proceed with a stack set operation in that account and Region.\n CloudFormation invokes the function each time a stack set operation is requested for that account and Region; if the\n function returns FAILED, CloudFormation cancels the operation in that account and Region, and sets the stack\n set operation result status for that account and Region to FAILED.

\n

For more information, see Configuring a target account\n gate.

" } }, "com.amazonaws.cloudformation#AccountGateStatus": { @@ -130,7 +130,7 @@ } }, "traits": { - "smithy.api#documentation": "

The AccountLimit data type.

\n

CloudFormation has the following limits per account:

\n
    \n
  • \n

    Number of concurrent resources

    \n
  • \n
  • \n

    Number of stacks

    \n
  • \n
  • \n

    Number of stack outputs

    \n
  • \n
\n

For more information about these account limits, and other CloudFormation limits, see CloudFormation\n quotas in the CloudFormation User Guide.

" + "smithy.api#documentation": "

The AccountLimit data type.

\n

CloudFormation has the following limits per account:

\n
    \n
  • \n

    Number of concurrent resources

    \n
  • \n
  • \n

    Number of stacks

    \n
  • \n
  • \n

    Number of stack outputs

    \n
  • \n
\n

For more information about these account limits, and other CloudFormation limits, see CloudFormation quotas in the\n CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#AccountLimitList": { @@ -172,7 +172,7 @@ } ], "traits": { - "smithy.api#documentation": "

Activate trusted access with Organizations. With trusted access between StackSets\n and Organizations activated, the management account has permissions to create\n and manage StackSets for your organization.

" + "smithy.api#documentation": "

Activate trusted access with Organizations. With trusted access between StackSets and Organizations\n activated, the management account has permissions to create and manage StackSets for your\n organization.

" } }, "com.amazonaws.cloudformation#ActivateOrganizationsAccessInput": { @@ -206,7 +206,7 @@ } ], "traits": { - "smithy.api#documentation": "

Activates a public third-party extension, making it available for use in stack templates. For more information,\n see Using public\n extensions in the CloudFormation User Guide.

\n

Once you have activated a public third-party extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see\n Configuring extensions at\n the account level in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Activates a public third-party extension, making it available for use in stack templates. For more information,\n see Using public\n extensions in the CloudFormation User Guide.

\n

Once you have activated a public third-party extension in your account and Region, use \n SetTypeConfiguration\n to specify configuration properties for the extension. For more information, see Configuring extensions at the account level in the CloudFormation User Guide.

", "smithy.api#idempotent": {} } }, @@ -216,31 +216,31 @@ "Type": { "target": "com.amazonaws.cloudformation#ThirdPartyType", "traits": { - "smithy.api#documentation": "

The extension type.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" + "smithy.api#documentation": "

The extension type.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" } }, "PublicTypeArn": { "target": "com.amazonaws.cloudformation#ThirdPartyTypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the public extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the public extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" } }, "PublisherId": { "target": "com.amazonaws.cloudformation#PublisherId", "traits": { - "smithy.api#documentation": "

The ID of the extension publisher.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" + "smithy.api#documentation": "

The ID of the extension publisher.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" } }, "TypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName, Type, and\n PublisherId.

" } }, "TypeNameAlias": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

An alias to assign to the public extension, in this account and Region. If you specify an alias for the\n extension, CloudFormation treats the alias as the extension type name within this account and Region. You\n must use the alias to refer to the extension in your templates, API calls, and CloudFormation\n console.

\n

An extension alias must be unique within a given account and Region. You can activate the same public resource\n multiple times in the same account and Region, using different type name aliases.

" + "smithy.api#documentation": "

An alias to assign to the public extension, in this account and Region. If you specify an alias for the\n extension, CloudFormation treats the alias as the extension type name within this account and Region. You must use the\n alias to refer to the extension in your templates, API calls, and CloudFormation console.

\n

An extension alias must be unique within a given account and Region. You can activate the same public resource\n multiple times in the same account and Region, using different type name aliases.

" } }, "AutoUpdate": { @@ -264,13 +264,13 @@ "VersionBump": { "target": "com.amazonaws.cloudformation#VersionBump", "traits": { - "smithy.api#documentation": "

Manually updates a previously-activated type to a new major or minor version, if available. You can also use\n this parameter to update the value of AutoUpdate.

\n
    \n
  • \n

    \n MAJOR: CloudFormation updates the extension to the newest major version, if one is\n available.

    \n
  • \n
  • \n

    \n MINOR: CloudFormation updates the extension to the newest minor version, if one is\n available.

    \n
  • \n
" + "smithy.api#documentation": "

Manually updates a previously-activated type to a new major or minor version, if available. You can also use\n this parameter to update the value of AutoUpdate.

\n
    \n
  • \n

    \n MAJOR: CloudFormation updates the extension to the newest major version, if one is available.

    \n
  • \n
  • \n

    \n MINOR: CloudFormation updates the extension to the newest minor version, if one is available.

    \n
  • \n
" } }, "MajorVersion": { "target": "com.amazonaws.cloudformation#MajorVersion", "traits": { - "smithy.api#documentation": "

The major version of this extension you want to activate, if multiple major versions are available. The default\n is the latest major version. CloudFormation uses the latest available minor version of\n the major version selected.

\n

You can specify MajorVersion or VersionBump, but not both.

" + "smithy.api#documentation": "

The major version of this extension you want to activate, if multiple major versions are available. The default\n is the latest major version. CloudFormation uses the latest available minor version of the major\n version selected.

\n

You can specify MajorVersion or VersionBump, but not both.

" } } }, @@ -327,18 +327,18 @@ "Enabled": { "target": "com.amazonaws.cloudformation#AutoDeploymentNullable", "traits": { - "smithy.api#documentation": "

If set to true, StackSets automatically deploys additional stack instances to\n Organizations accounts that are added to a target organization or organizational unit\n (OU) in the specified Regions. If an account is removed from a target organization or OU,\n StackSets deletes stack instances from the account in the specified Regions.

" + "smithy.api#documentation": "

If set to true, StackSets automatically deploys additional stack instances to Organizations\n accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account\n is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified\n Regions.

" } }, "RetainStacksOnAccountRemoval": { "target": "com.amazonaws.cloudformation#RetainStacksOnAccountRemovalNullable", "traits": { - "smithy.api#documentation": "

If set to true, stack resources are retained when an account is removed from a\n target organization or OU. If set to false, stack resources are deleted. Specify\n only if Enabled is set to True.

" + "smithy.api#documentation": "

If set to true, stack resources are retained when an account is removed from a target organization\n or OU. If set to false, stack resources are deleted. Specify only if Enabled is set to\n True.

" } } }, "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit\n (OU).

" + "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations\n accounts that are added to a target organization or organizational unit (OU).

" } }, "com.amazonaws.cloudformation#AutoDeploymentNullable": { @@ -364,7 +364,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and Region.

\n

For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry\n for the account and Region.

\n

For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsError": { @@ -427,7 +427,7 @@ "UnprocessedTypeConfigurations": { "target": "com.amazonaws.cloudformation#UnprocessedTypeConfigurations", "traits": { - "smithy.api#documentation": "

A list of any of the specified extension configurations that CloudFormation could not process for any\n reason.

" + "smithy.api#documentation": "

A list of any of the specified extension configurations that CloudFormation could not process for any reason.

" } }, "TypeConfigurations": { @@ -514,14 +514,14 @@ "target": "com.amazonaws.cloudformation#StackName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response that describes\n all resources in the account.

\n

The IAM policy below can be added to\n IAM policies when you want to limit resource-level permissions and\n avoid returning a response when no parameter is sent in the request:

\n

\n { \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Deny\", \"Action\":\n \"cloudformation:DescribeStacks\", \"NotResource\":\n \"arn:aws:cloudformation:*:*:stack/*/*\" }] }\n

\n
\n

The name or the unique stack ID that's associated with the stack.

", + "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response that describes all\n resources in the account.

\n

The IAM policy below can be added to IAM policies when you want to limit resource-level permissions and\n avoid returning a response when no parameter is sent in the request:

\n

\n { \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Deny\", \"Action\": \"cloudformation:DescribeStacks\",\n \"NotResource\": \"arn:aws:cloudformation:*:*:stack/*/*\" }] }\n

\n
\n

The name or the unique stack ID that's associated with the stack.

", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CancelUpdateStack request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to cancel an update on a stack with the same\n name. You might retry CancelUpdateStack requests to ensure that CloudFormation successfully received\n them.

" + "smithy.api#documentation": "

A unique identifier for this CancelUpdateStack request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to cancel an update on a stack with the same name. You might\n retry CancelUpdateStack requests to ensure that CloudFormation successfully received them.

" } } }, @@ -600,7 +600,7 @@ "Type": { "target": "com.amazonaws.cloudformation#ChangeType", "traits": { - "smithy.api#documentation": "

The type of entity that CloudFormation changes. Currently, the only entity type is\n Resource.

" + "smithy.api#documentation": "

The type of entity that CloudFormation changes. Currently, the only entity type is Resource.

" } }, "HookInvocationCount": { @@ -612,12 +612,12 @@ "ResourceChange": { "target": "com.amazonaws.cloudformation#ResourceChange", "traits": { - "smithy.api#documentation": "

A ResourceChange structure that describes the resource and action that CloudFormation will\n perform.

" + "smithy.api#documentation": "

A ResourceChange structure that describes the resource and action that CloudFormation will perform.

" } } }, "traits": { - "smithy.api#documentation": "

The Change structure describes the changes CloudFormation will perform if you execute the\n change set.

" + "smithy.api#documentation": "

The Change structure describes the changes CloudFormation will perform if you execute the change set.

" } }, "com.amazonaws.cloudformation#ChangeAction": { @@ -673,7 +673,7 @@ "TypeName": { "target": "com.amazonaws.cloudformation#HookTypeName", "traits": { - "smithy.api#documentation": "

The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of\n Organization::Service::Hook.

\n \n

The following organization namespaces are reserved and can't be used in your hook type names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n ASK\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
" + "smithy.api#documentation": "

The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of\n Organization::Service::Hook.

\n \n

The following organization namespaces are reserved and can't be used in your hook type names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n ASK\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
" } }, "TypeVersionId": { @@ -815,7 +815,7 @@ "code": "ChangeSetNotFound", "httpResponseCode": 404 }, - "smithy.api#documentation": "

The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the\n ListChangeSets operation.

", + "smithy.api#documentation": "

The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the\n ListChangeSets operation.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -912,19 +912,19 @@ "ExecutionStatus": { "target": "com.amazonaws.cloudformation#ExecutionStatus", "traits": { - "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change set. If you can't\n execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE\n state because CloudFormation is still creating it or in an OBSOLETE state because the stack was\n already updated.

" + "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change set. If you can't\n execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE\n state because CloudFormation is still creating it or in an OBSOLETE state because the stack was already\n updated.

" } }, "Status": { "target": "com.amazonaws.cloudformation#ChangeSetStatus", "traits": { - "smithy.api#documentation": "

The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or\n FAILED.

" + "smithy.api#documentation": "

The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or\n FAILED.

" } }, "StatusReason": { "target": "com.amazonaws.cloudformation#ChangeSetStatusReason", "traits": { - "smithy.api#documentation": "

A description of the change set's status. For example, if your change set is in the FAILED state,\n CloudFormation shows the error message.

" + "smithy.api#documentation": "

A description of the change set's status. For example, if your change set is in the FAILED state,\n CloudFormation shows the error message.

" } }, "CreationTime": { @@ -1322,7 +1322,7 @@ "name": "cloudformation" }, "aws.protocols#awsQuery": {}, - "smithy.api#documentation": "CloudFormation\n

CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably\n and repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build\n highly reliable, highly scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services infrastructure.

\n

With CloudFormation, you declare all your resources and dependencies in a template file. The template\n defines a collection of resources as a single unit called a stack. CloudFormation creates and deletes all member\n resources of the stack together and manages all dependencies between the resources for you.

\n

For more information about CloudFormation, see the CloudFormation product page.

\n

CloudFormation makes use of other Amazon Web Services products. If you need additional technical information\n about a specific Amazon Web Services product, you can find the product's technical documentation at docs.aws.amazon.com.

", + "smithy.api#documentation": "CloudFormation\n

CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably and\n repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly reliable, highly\n scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services\n infrastructure.

\n

With CloudFormation, you declare all your resources and dependencies in a template file. The template defines a\n collection of resources as a single unit called a stack. CloudFormation creates and deletes all member resources of the stack\n together and manages all dependencies between the resources for you.

\n

For more information about CloudFormation, see the CloudFormation\n product page.

\n

CloudFormation makes use of other Amazon Web Services products. If you need additional technical information about a\n specific Amazon Web Services product, you can find the product's technical documentation at docs.aws.amazon.com.

", "smithy.api#title": "AWS CloudFormation", "smithy.api#xmlNamespace": { "uri": "http://cloudformation.amazonaws.com/doc/2010-05-15/" @@ -2414,7 +2414,7 @@ } ], "traits": { - "smithy.api#documentation": "

For a specified stack that's in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the\n UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the\n error and continue the rollback. By continuing the rollback, you can return your stack to a working state\n (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again.

\n

A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll back all\n changes after a failed stack update. For example, you might have a stack that's rolling back to an old database\n instance that was deleted outside of CloudFormation. Because CloudFormation doesn't know the database was\n deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update\n rollback to fail.

" + "smithy.api#documentation": "

For a specified stack that's in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the\n UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the\n error and continue the rollback. By continuing the rollback, you can return your stack to a working state\n (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again.

\n

A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll back all changes after\n a failed stack update. For example, you might have a stack that's rolling back to an old database instance that was\n deleted outside of CloudFormation. Because CloudFormation doesn't know the database was deleted, it assumes that the database instance\n still exists and attempts to roll back to it, causing the update rollback to fail.

" } }, "com.amazonaws.cloudformation#ContinueUpdateRollbackInput": { @@ -2424,26 +2424,26 @@ "target": "com.amazonaws.cloudformation#StackNameOrId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name or the unique ID of the stack that you want to continue rolling back.

\n \n

Don't specify the name of a nested stack (a stack that was created by using the\n AWS::CloudFormation::Stack resource). Instead, use this operation on the parent stack (the stack that\n contains the AWS::CloudFormation::Stack resource).

\n
", + "smithy.api#documentation": "

The name or the unique ID of the stack that you want to continue rolling back.

\n \n

Don't specify the name of a nested stack (a stack that was created by using the\n AWS::CloudFormation::Stack resource). Instead, use this operation on the parent stack (the stack that\n contains the AWS::CloudFormation::Stack resource).

\n
", "smithy.api#required": {} } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to roll back the stack. CloudFormation uses the role's credentials to make calls on your behalf.\n CloudFormation always uses this role for all future operations on the stack. Provided that users have\n permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the\n stack. If no role is available, CloudFormation uses a temporary session that's generated from your user\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to\n roll back the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this\n role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation\n uses this role even if the users don't have permission to pass it. Ensure that the role grants least\n permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role\n is available, CloudFormation uses a temporary session that's generated from your user credentials.

" } }, "ResourcesToSkip": { "target": "com.amazonaws.cloudformation#ResourcesToSkip", "traits": { - "smithy.api#documentation": "

A list of the logical IDs of the resources that CloudFormation skips during the continue update rollback\n operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed.\n You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because\n an update was canceled. To check why a resource update failed, use the DescribeStackResources\n action, and view the resource status reason.

\n \n

Specify this property to skip rolling back resources that CloudFormation can't successfully roll back.\n We recommend that you \n troubleshoot resources before skipping them. CloudFormation sets the status of the specified\n resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the\n state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before\n performing another stack update, you must update the stack or resources to be consistent with each other. If you\n don't, subsequent stack updates might fail, and the stack will become unrecoverable.

\n
\n

Specify the minimum number of resources required to successfully roll back your stack. For example, a failed\n resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the\n dependent resources.

\n

To skip resources that are part of nested stacks, use the following format:\n NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource\n (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding\n embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE,\n or DELETE_FAILED.

\n \n

Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an\n example of a continue update rollback operation with nested stacks, see Using\n ResourcesToSkip to recover a nested stacks hierarchy.

\n
" + "smithy.api#documentation": "

A list of the logical IDs of the resources that CloudFormation skips during the continue update rollback operation.\n You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't\n specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update\n was canceled. To check why a resource update failed, use the DescribeStackResources action, and\n view the resource status reason.

\n \n

Specify this property to skip rolling back resources that CloudFormation can't successfully roll back. We recommend\n that you \n troubleshoot resources before skipping them. CloudFormation sets the status of the specified resources to\n UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the\n skipped resources will be inconsistent with the state of the resources in the stack template. Before performing\n another stack update, you must update the stack or resources to be consistent with each other. If you don't,\n subsequent stack updates might fail, and the stack will become unrecoverable.

\n
\n

Specify the minimum number of resources required to successfully roll back your stack. For example, a failed\n resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the\n dependent resources.

\n

To skip resources that are part of nested stacks, use the following format:\n NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource\n (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding\n embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE,\n or DELETE_FAILED.

\n \n

Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an\n example of a continue update rollback operation with nested stacks, see Using\n ResourcesToSkip to recover a nested stacks hierarchy.

\n
" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to\n retry requests so that CloudFormation knows that you're not attempting to continue the rollback to a stack with\n the same name. You might retry ContinueUpdateRollback requests to ensure that CloudFormation\n successfully received them.

" + "smithy.api#documentation": "

A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to\n retry requests so that CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name.\n You might retry ContinueUpdateRollback requests to ensure that CloudFormation successfully received\n them.

" } } }, @@ -2480,7 +2480,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a list of changes that will be applied to a stack so that you can review the changes before executing\n them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for\n a stack that doesn't exist, the change set shows all of the resources that CloudFormation will create. If you\n create a change set for an existing stack, CloudFormation compares the stack's information with the information\n that you submit in the change set and lists the differences. Use change sets to understand which resources CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update\n a stack.

\n

To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify\n CREATE. To create a change set for an existing stack, specify UPDATE for the\n ChangeSetType parameter. To create a change set for an import operation, specify IMPORT\n for the ChangeSetType parameter. After the CreateChangeSet call successfully completes,\n CloudFormation starts creating the change set. To check the status of the change set or to review it, use the\n DescribeChangeSet action.

\n

When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. CloudFormation doesn't make changes until you execute the change\n set.

\n

To create a change set for the entire stack hierarchy, set IncludeNestedStacks to\n True.

" + "smithy.api#documentation": "

Creates a list of changes that will be applied to a stack so that you can review the changes before executing\n them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for\n a stack that doesn't exist, the change set shows all of the resources that CloudFormation will create. If you create a change\n set for an existing stack, CloudFormation compares the stack's information with the information that you submit in the change\n set and lists the differences. Use change sets to understand which resources CloudFormation will create or\n change, and how it will change resources in an existing stack, before you create or update a stack.

\n

To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify\n CREATE. To create a change set for an existing stack, specify UPDATE for the\n ChangeSetType parameter. To create a change set for an import operation, specify IMPORT for\n the ChangeSetType parameter. After the CreateChangeSet call successfully completes, CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action.

\n

When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. CloudFormation doesn't make changes until you execute the change set.

\n

To create a change set for the entire stack hierarchy, set IncludeNestedStacks to\n True.

" } }, "com.amazonaws.cloudformation#CreateChangeSetInput": { @@ -2490,20 +2490,20 @@ "target": "com.amazonaws.cloudformation#StackNameOrId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name or the unique ID of the stack for which you are creating a change set. CloudFormation generates the\n change set by comparing this stack's information with the information that you submit, such as a modified template or\n different parameter input values.

", + "smithy.api#documentation": "

The name or the unique ID of the stack for which you are creating a change set. CloudFormation generates the change set\n by comparing this stack's information with the information that you submit, such as a modified template or different\n parameter input values.

", "smithy.api#required": {} } }, "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length\n of 51,200 bytes. CloudFormation generates the change set by comparing this template with the template of the\n stack that you specified.

\n

Conditional: You must specify only TemplateBody or TemplateURL.

" + "smithy.api#documentation": "

A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length\n of 51,200 bytes. CloudFormation generates the change set by comparing this template with the template of the stack that you\n specified.

\n

Conditional: You must specify only TemplateBody or TemplateURL.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

The location of the file that contains the revised template. The URL must point to a template (max size: 460,800\n bytes) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation generates the\n change set by comparing this template with the stack that you specified.

\n

Conditional: You must specify only TemplateBody or TemplateURL.

" + "smithy.api#documentation": "

The location of the file that contains the revised template. The URL must point to a template (max size: 460,800\n bytes) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation generates the change set by\n comparing this template with the stack that you specified. The location for an Amazon S3 bucket must start with\n https://.

\n

Conditional: You must specify only TemplateBody or TemplateURL.

" } }, "UsePreviousTemplate": { @@ -2521,37 +2521,37 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM\n resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually creating the stack. If your stack template contains one or more macros, and you choose\n to create a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which\n are macros hosted by CloudFormation.

    \n \n

    This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no\n effect.

    \n

    If you want to create a stack from a stack template that contains macros and nested\n stacks, you must create or update the stack directly from the template using the CreateStack or\n UpdateStack action, and specifying this capability.

    \n
    \n

    For more information about macros, see Using CloudFormation macros to perform custom\n processing on templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly\n acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in\n CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually creating the stack. If your stack template contains one or more macros, and you choose\n to create a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the \n AWS::Include\n and \n AWS::Serverless\n transforms, which\n are macros hosted by CloudFormation.

    \n \n

    This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no\n effect.

    \n

    If you want to create a stack from a stack template that contains macros and nested\n stacks, you must create or update the stack directly from the template using the CreateStack or\n UpdateStack action, and specifying this capability.

    \n
    \n

    For more information about macros, see Using CloudFormation macros to perform custom processing on\n templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with if you execute this change set, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM)\n uses this parameter for condition keys in IAM policies for CloudFormation. For more information,\n see Controlling access\n with Identity and Access Management in the CloudFormation User Guide.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

The template resource types that you have permissions to work with if you execute this change set, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for\n condition keys in IAM policies for CloudFormation. For more information, see Controlling access with Identity and Access Management in the CloudFormation User Guide.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation\n assumes when executing the change set. CloudFormation uses the role's credentials to make calls on your behalf.\n CloudFormation uses this role for all future operations on the stack. Provided that users have permission to\n operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure\n that the role grants least permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If\n no role is available, CloudFormation uses a temporary session that is generated from your user\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes when executing the\n change set. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation uses this role for all future\n operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if\n the users don't have permission to pass it. Ensure that the role grants least permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is\n available, CloudFormation uses a temporary session that is generated from your user credentials.

" } }, "RollbackConfiguration": { "target": "com.amazonaws.cloudformation#RollbackConfiguration", "traits": { - "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for\n the specified monitoring period afterwards.

" + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified\n monitoring period afterwards.

" } }, "NotificationARNs": { "target": "com.amazonaws.cloudformation#NotificationARNs", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that CloudFormation\n associates with the stack. To remove all associated notification topics, specify an empty list.

" + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that CloudFormation associates\n with the stack. To remove all associated notification topics, specify an empty list.

" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to resources in the\n stack. You can specify a maximum of 50 tags.

" + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to resources in the stack. You\n can specify a maximum of 50 tags.

" } }, "ChangeSetName": { @@ -2565,7 +2565,7 @@ "ClientToken": { "target": "com.amazonaws.cloudformation#ClientToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateChangeSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to create another change set with the same name.\n You might retry CreateChangeSet requests to ensure that CloudFormation successfully received\n them.

" + "smithy.api#documentation": "

A unique identifier for this CreateChangeSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to create another change set with the same name. You might\n retry CreateChangeSet requests to ensure that CloudFormation successfully received them.

" } }, "Description": { @@ -2577,7 +2577,7 @@ "ChangeSetType": { "target": "com.amazonaws.cloudformation#ChangeSetType", "traits": { - "smithy.api#documentation": "

The type of change set operation. To create a change set for a new stack, specify CREATE. To create\n a change set for an existing stack, specify UPDATE. To create a change set for an import operation,\n specify IMPORT.

\n

If you create a change set for a new stack, CloudFormation creates a stack with a unique stack ID, but no\n template or resources. The stack will be in the REVIEW_IN_PROGRESS state\n until you execute the change set.

\n

By default, CloudFormation specifies UPDATE. You can't use the UPDATE type to\n create a change set for a new stack or the CREATE type to create a change set for an existing\n stack.

" + "smithy.api#documentation": "

The type of change set operation. To create a change set for a new stack, specify CREATE. To create\n a change set for an existing stack, specify UPDATE. To create a change set for an import operation,\n specify IMPORT.

\n

If you create a change set for a new stack, CloudFormation creates a stack with a unique stack ID, but no template or\n resources. The stack will be in the REVIEW_IN_PROGRESS state\n until you execute the change set.

\n

By default, CloudFormation specifies UPDATE. You can't use the UPDATE type to create a change\n set for a new stack or the CREATE type to create a change set for an existing stack.

" } }, "ResourcesToImport": { @@ -2595,7 +2595,7 @@ "OnStackFailure": { "target": "com.amazonaws.cloudformation#OnStackFailure", "traits": { - "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. If this parameter is specified, the\n DisableRollback parameter to the ExecuteChangeSet API operation must not\n be specified. This must be one of these values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only valid when the\n ChangeSetType parameter is set to CREATE. If the deletion of the stack fails, the status\n of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent to specifying\n true for the DisableRollback parameter to the ExecuteChangeSet API\n operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is equivalent to specifying\n false for the DisableRollback parameter to the ExecuteChangeSet API\n operation.

    \n
  • \n
\n

For nested stacks, when the OnStackFailure parameter is set to DELETE for the change\n set for the parent stack, any failure in a child stack will cause the parent stack creation to fail and all stacks to\n be deleted.

" + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. If this parameter is specified, the\n DisableRollback parameter to the \n ExecuteChangeSet\n API operation must not\n be specified. This must be one of these values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only valid when the\n ChangeSetType parameter is set to CREATE. If the deletion of the stack fails, the status\n of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent to specifying\n true for the DisableRollback parameter to the \n ExecuteChangeSet\n API\n operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is equivalent to specifying\n false for the DisableRollback parameter to the \n ExecuteChangeSet\n API\n operation.

    \n
  • \n
\n

For nested stacks, when the OnStackFailure parameter is set to DELETE for the change\n set for the parent stack, any failure in a child stack will cause the parent stack creation to fail and all stacks to\n be deleted.

" } }, "ImportExistingResources": { @@ -2774,25 +2774,25 @@ "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's\n located in an Amazon S3 bucket or a Systems Manager document. For more information, go to the Template anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify either the TemplateBody or the TemplateURL parameter,\n but not both.

" + "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's\n located in an Amazon S3 bucket or a Systems Manager document. For more information, go to the Template anatomy in the\n CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://.

\n

Conditional: You must specify either the TemplateBody or the TemplateURL parameter,\n but not both.

" } }, "Parameters": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack. For more information,\n see the Parameter\n data type.

" + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack. For more information,\n see the \n Parameter\n \n data type.

" } }, "DisableRollback": { "target": "com.amazonaws.cloudformation#DisableRollback", "traits": { - "smithy.api#documentation": "

Set to true to disable rollback of the stack if stack creation failed. You can specify either\n DisableRollback or OnFailure, but not both.

\n

Default: false\n

" + "smithy.api#documentation": "

Set to true to disable rollback of the stack if stack creation failed. You can specify either\n DisableRollback or OnFailure, but not both.

\n

Default: false\n

" } }, "RollbackConfiguration": { "target": "com.amazonaws.cloudformation#RollbackConfiguration", "traits": { - "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and\n for the specified monitoring period afterwards.

" + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the\n specified monitoring period afterwards.

" } }, "TimeoutInMinutes": { @@ -2804,55 +2804,55 @@ "NotificationARNs": { "target": "com.amazonaws.cloudformation#NotificationARNs", "traits": { - "smithy.api#documentation": "

The Amazon Simple Notification Service (Amazon SNS) topic ARNs to publish stack related events. You can find your\n Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface (CLI).

" + "smithy.api#documentation": "

The Amazon Simple Notification Service (Amazon SNS) topic ARNs to publish stack related events. You can find your\n Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface (CLI).

" } }, "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM\n Resources in CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually creating the stack. If your stack template contains one or more macros, and you choose\n to create a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which\n are macros hosted by CloudFormation.

    \n

    If you want to create a stack from a stack template that contains macros and nested\n stacks, you must create the stack directly from the template using this capability.

    \n \n

    You should only create stacks directly from a stack template that contains macros if you know what processing\n the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack templates. Be\n aware that the Lambda function owner can update the function operation without CloudFormation being\n notified.

    \n
    \n

    For more information, see Using CloudFormation macros to perform custom\n processing on templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly\n acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually creating the stack. If your stack template contains one or more macros, and you choose\n to create a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the \n AWS::Include\n and \n AWS::Serverless\n transforms, which\n are macros hosted by CloudFormation.

    \n

    If you want to create a stack from a stack template that contains macros and nested\n stacks, you must create the stack directly from the template using this capability.

    \n \n

    You should only create stacks directly from a stack template that contains macros if you know what processing\n the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack templates. Be\n aware that the Lambda function owner can update the function operation without CloudFormation being\n notified.

    \n
    \n

    For more information, see Using CloudFormation macros to perform custom processing\n on templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with for this create stack action, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the\n following syntax to describe template resource types: AWS::* (for all Amazon Web Services resources),\n Custom::* (for all custom resources), Custom::logical_ID\n (for a specific custom resource), AWS::service_name::* (for all resources\n of a particular Amazon Web Services service), and\n AWS::service_name::resource_logical_ID\n (for a specific Amazon Web Services resource).

\n

If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM)\n uses this parameter for CloudFormation-specific condition keys in IAM policies. For more\n information, see Controlling Access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

The template resource types that you have permissions to work with for this create stack action, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the\n following syntax to describe template resource types: AWS::* (for all Amazon Web Services resources),\n Custom::* (for all custom resources), Custom::logical_ID\n (for a\n specific custom resource), AWS::service_name::* (for all resources of a particular\n Amazon Web Services service), and\n AWS::service_name::resource_logical_ID\n (for a specific\n Amazon Web Services resource).

\n

If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for\n CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to create the stack. CloudFormation uses the role's credentials to make calls on your behalf.\n CloudFormation always uses this role for all future operations on the stack. Provided that users have\n permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the\n stack. If no role is available, CloudFormation uses a temporary session that's generated from your user\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to\n create the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role\n for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses\n this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role\n is available, CloudFormation uses a temporary session that's generated from your user credentials.

" } }, "OnFailure": { "target": "com.amazonaws.cloudformation#OnFailure", "traits": { - "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING,\n ROLLBACK, or DELETE. You can specify either OnFailure or\n DisableRollback, but not both.

\n

Default: ROLLBACK\n

" + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING,\n ROLLBACK, or DELETE. You can specify either OnFailure or\n DisableRollback, but not both.

\n

Default: ROLLBACK\n

" } }, "StackPolicyBody": { "target": "com.amazonaws.cloudformation#StackPolicyBody", "traits": { - "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in\n the CloudFormation User Guide. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" + "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in\n the CloudFormation User Guide. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" } }, "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in\n an S3 bucket in the same Region as the stack. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" + "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in\n an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://.\n You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not\n both.

" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to the resources\n created in the stack. A maximum number of 50 tags can be specified.

" + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to the resources created in\n the stack. A maximum number of 50 tags can be specified.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to create a stack with the same name. You might retry\n CreateStack requests to ensure that CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this CreateStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to create a stack with the same name. You might retry\n CreateStack requests to ensure that CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } }, "EnableTerminationProtection": { @@ -2864,7 +2864,7 @@ "RetainExceptOnCreate": { "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", "traits": { - "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes newly\n created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes\n newly created resources marked with a deletion policy of Retain.

\n

Default: false\n

" } } }, @@ -2902,7 +2902,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack\n instance refers to a stack in a specific account and Region. You must specify at least one value for either\n Accounts or DeploymentTargets, and you must specify at least one value for\n Regions.

" + "smithy.api#documentation": "

Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A stack\n instance refers to a stack in a specific account and Region. You must specify at least one value for either\n Accounts or DeploymentTargets, and you must specify at least one value for\n Regions.

" } }, "com.amazonaws.cloudformation#CreateStackInstancesInput": { @@ -2932,14 +2932,14 @@ "target": "com.amazonaws.cloudformation#RegionList", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions where you want to create stack instances using the specified\n Amazon Web Services accounts.

", + "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions where you want to create stack instances using the specified\n Amazon Web Services accounts.

", "smithy.api#required": {} } }, "ParameterOverrides": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of stack set parameters whose values you want to override in the selected stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how CloudFormation sets\n parameter values during stack instance operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and specify\n UsePreviousValue as true. (You can't specify both a value and set\n UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the stack set, specify a parameter list but\n don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at all.

    \n
  • \n
\n

During stack set updates, any parameter values overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only override the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use UpdateStackSet to update the stack set\n template.

" + "smithy.api#documentation": "

A list of stack set parameters whose values you want to override in the selected stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how CloudFormation sets parameter values\n during stack instance operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and specify\n UsePreviousValue as true. (You can't specify both a value and set\n UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the stack set, specify a parameter list but\n don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at all.

    \n
  • \n
\n

During stack set updates, any parameter values overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only override the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use \n UpdateStackSet\n to update the stack set\n template.

" } }, "OperationPreferences": { @@ -2951,14 +2951,14 @@ "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the\n stack set operation only once, even if you retry the request multiple times. You might retry stack set operation\n requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set\n operation only once, even if you retry the request multiple times. You might retry stack set operation requests to\n ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -3044,7 +3044,7 @@ "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

The location of the file that contains the template body. The URL must point to a template (maximum size:\n 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, see\n Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" + "smithy.api#documentation": "

The location of the file that contains the template body. The URL must point to a template (maximum size:\n 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, see\n Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

" } }, "StackId": { @@ -3062,49 +3062,49 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in\n order for CloudFormation to create the stack set and related stack instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stack sets, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your stack set template references one or more macros, you must create the\n stack set directly from the processed template, without first reviewing the resulting changes in a change set. To\n create the stack set directly, you must acknowledge this capability. For more information, see Using CloudFormation Macros to Perform\n Custom Processing on Templates.

    \n \n

    Stack sets with service-managed permissions don't currently support the use of macros in templates. (This\n includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a\n stack set with service-managed permissions, if you reference a macro in your template the stack set operation will\n fail.

    \n
    \n
  • \n
" + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in\n order for CloudFormation to create the stack set and related stack instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stack sets, you must explicitly\n acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your stack set template references one or more macros, you must create the\n stack set directly from the processed template, without first reviewing the resulting changes in a change set. To\n create the stack set directly, you must acknowledge this capability. For more information, see Using CloudFormation Macros to\n Perform Custom Processing on Templates.

    \n \n

    Stack sets with service-managed permissions don't currently support the use of macros in templates. (This\n includes the \n AWS::Include\n and \n AWS::Serverless\n transforms, which\n are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions,\n if you reference a macro in your template the stack set operation will fail.

    \n
    \n
  • \n
" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also\n propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be\n specified.

\n

If you specify tags as part of a CreateStackSet action, CloudFormation checks to see if you\n have the required IAM permission to tag resources. If you don't, the entire\n CreateStackSet action fails with an access denied error, and the stack set is not\n created.

" + "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also propagates\n these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be\n specified.

\n

If you specify tags as part of a CreateStackSet action, CloudFormation checks to see if you have the\n required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails with an\n access denied error, and the stack set is not created.

" } }, "AdministrationRoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to use to create this stack set.

\n

Specify an IAM role only if you are using customized administrator roles to control which users\n or groups can manage specific stack sets within the same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set\n Operations in the CloudFormation User Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to use to create this stack set.

\n

Specify an IAM role only if you are using customized administrator roles to control which users or groups can\n manage specific stack sets within the same administrator account. For more information, see Prerequisites: Granting\n Permissions for Stack Set Operations in the CloudFormation User Guide.

" } }, "ExecutionRoleName": { "target": "com.amazonaws.cloudformation#ExecutionRoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM execution role to use to create the stack set. If you do not specify an\n execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set\n operation.

\n

Specify an IAM role only if you are using customized execution roles to control which stack\n resources users and groups can include in their stack sets.

" + "smithy.api#documentation": "

The name of the IAM execution role to use to create the stack set. If you do not specify an execution role,\n CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.

\n

Specify an IAM role only if you are using customized execution roles to control which stack resources users\n and groups can include in their stack sets.

" } }, "PermissionModel": { "target": "com.amazonaws.cloudformation#PermissionModels", "traits": { - "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created. By default,\n SELF-MANAGED is specified.

\n " + "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created. By default,\n SELF-MANAGED is specified.

\n " } }, "AutoDeployment": { "target": "com.amazonaws.cloudformation#AutoDeployment", "traits": { - "smithy.api#documentation": "

Describes whether StackSets automatically deploys to Organizations accounts that are added to the target\n organization or organizational unit (OU). Specify only if PermissionModel is\n SERVICE_MANAGED.

" + "smithy.api#documentation": "

Describes whether StackSets automatically deploys to Organizations accounts that are added to the target\n organization or organizational unit (OU). Specify only if PermissionModel is\n SERVICE_MANAGED.

" } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    To create a stack set with service-managed permissions while signed in to the management account,\n specify SELF.

    \n
  • \n
  • \n

    To create a stack set with service-managed permissions while signed in to a delegated administrator account,\n specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated admin in the management account.\n For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
\n

Stack sets with service-managed permissions are created in the management account, including stack\n sets that are created by delegated administrators.

" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    To create a stack set with service-managed permissions while signed in to the management account,\n specify SELF.

    \n
  • \n
  • \n

    To create a stack set with service-managed permissions while signed in to a delegated administrator account,\n specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated admin in the management account.\n For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
\n

Stack sets with service-managed permissions are created in the management account, including stack\n sets that are created by delegated administrators.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateStackSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to create another stack set with the same\n name. You might retry CreateStackSet requests to ensure that CloudFormation successfully\n received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

", + "smithy.api#documentation": "

A unique identifier for this CreateStackSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to create another stack set with the same name. You might\n retry CreateStackSet requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

", "smithy.api#idempotencyToken": {} } }, @@ -3170,7 +3170,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deactivates trusted access with Organizations. If trusted access is deactivated,\n the management account does not have permissions to create and manage\n service-managed StackSets for your organization.

" + "smithy.api#documentation": "

Deactivates trusted access with Organizations. If trusted access is deactivated, the management account does not have permissions to create and manage service-managed StackSets for your\n organization.

" } }, "com.amazonaws.cloudformation#DeactivateOrganizationsAccessInput": { @@ -3204,7 +3204,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deactivates a public extension that was previously activated in this account and Region.

\n

Once deactivated, an extension can't be used in any CloudFormation operation. This includes stack\n update operations where the stack template includes the extension, even if no updates are being made to the\n extension. In addition, deactivated extensions aren't automatically updated if a new version of the extension is\n released.

", + "smithy.api#documentation": "

Deactivates a public extension that was previously activated in this account and Region.

\n

Once deactivated, an extension can't be used in any CloudFormation operation. This includes stack update operations\n where the stack template includes the extension, even if no updates are being made to the extension. In addition,\n deactivated extensions aren't automatically updated if a new version of the extension is released.

", "smithy.api#idempotent": {} } }, @@ -3365,19 +3365,19 @@ "RetainResources": { "target": "com.amazonaws.cloudformation#RetainResources", "traits": { - "smithy.api#documentation": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the\n resources you want to retain. During deletion, CloudFormation deletes the stack but doesn't delete the\n retained resources.

\n

Retaining resources is useful when you can't delete a resource, such as a non-empty S3 bucket, but you want to\n delete the stack.

" + "smithy.api#documentation": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the\n resources you want to retain. During deletion, CloudFormation deletes the stack but doesn't delete the retained\n resources.

\n

Retaining resources is useful when you can't delete a resource, such as a non-empty S3 bucket, but you want to\n delete the stack.

" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to delete the stack. CloudFormation uses the role's credentials to make calls on your\n behalf.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the\n stack. If no role is available, CloudFormation uses a temporary session that's generated from your user\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to\n delete the stack. CloudFormation uses the role's credentials to make calls on your behalf.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role\n is available, CloudFormation uses a temporary session that's generated from your user credentials.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry\n DeleteStack requests to ensure that CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry\n DeleteStack requests to ensure that CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } } }, @@ -3456,21 +3456,21 @@ "target": "com.amazonaws.cloudformation#RetainStacks", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a\n retained stack or add an existing, saved stack to a new stack set.

\n

For more information, see Stack set operation\n options.

", + "smithy.api#documentation": "

Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a\n retained stack or add an existing, saved stack to a new stack set.

\n

For more information, see Stack set operation\n options.

", "smithy.api#required": {} } }, "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the\n stack set operation only once, even if you retry the request multiple times. You can retry stack set operation\n requests to ensure that CloudFormation successfully received them.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set\n operation only once, even if you retry the request multiple times. You can retry stack set operation requests to\n ensure that CloudFormation successfully received them.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -3526,7 +3526,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -3550,7 +3550,7 @@ "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

The names of one or more Amazon Web Services accounts for which you want to deploy stack set\n updates.

" + "smithy.api#documentation": "

The names of one or more Amazon Web Services accounts for which you want to deploy stack set updates.

" } }, "AccountsUrl": { @@ -3568,12 +3568,12 @@ "AccountFilterType": { "target": "com.amazonaws.cloudformation#AccountFilterType", "traits": { - "smithy.api#documentation": "

Limit deployment targets to individual accounts or include additional accounts with provided\n OUs.

\n

The following is a list of possible values for the AccountFilterType\n operation.

\n
    \n
  • \n

    \n INTERSECTION: StackSets deploys to the accounts specified in\n Accounts parameter.

    \n
  • \n
  • \n

    \n DIFFERENCE: StackSets excludes the accounts specified in\n Accounts parameter. This enables user to avoid certain accounts within an OU such\n as suspended accounts.

    \n
  • \n
  • \n

    \n UNION: StackSets includes additional accounts deployment targets.

    \n

    This is the default value if AccountFilterType is not provided. This enables\n user to update an entire OU and individual accounts from a different OU in one request, which\n used to be two separate requests.

    \n
  • \n
  • \n

    \n NONE: Deploys to all the accounts in specified organizational units\n (OU).

    \n
  • \n
" + "smithy.api#documentation": "

Limit deployment targets to individual accounts or include additional accounts with provided OUs.

\n

The following is a list of possible values for the AccountFilterType operation.

\n
    \n
  • \n

    \n INTERSECTION: StackSets deploys to the accounts specified in Accounts parameter.\n

    \n
  • \n
  • \n

    \n DIFFERENCE: StackSets excludes the accounts specified in Accounts parameter. This\n enables user to avoid certain accounts within an OU such as suspended accounts.

    \n
  • \n
  • \n

    \n UNION: StackSets includes additional accounts deployment targets.

    \n

    This is the default value if AccountFilterType is not provided. This enables user to update an\n entire OU and individual accounts from a different OU in one request, which used to be two separate\n requests.

    \n
  • \n
  • \n

    \n NONE: Deploys to all the accounts in specified organizational units (OU).

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts to which StackSets deploys.\n StackSets doesn't deploy stack instances to the organization management account, even\n if the organization management account is in your organization or in an OU in your\n organization.

\n

For update operations, you can specify either Accounts or\n OrganizationalUnitIds. For create and delete operations, specify\n OrganizationalUnitIds.

" + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts to which StackSets deploys. StackSets doesn't\n deploy stack instances to the organization management account, even if the organization management account is in your organization or in an OU in your organization.

\n

For update operations, you can specify either Accounts or OrganizationalUnitIds. For\n create and delete operations, specify OrganizationalUnitIds.

" } }, "com.amazonaws.cloudformation#DeprecatedStatus": { @@ -3610,7 +3610,7 @@ } ], "traits": { - "smithy.api#documentation": "

Marks an extension or extension version as DEPRECATED in the CloudFormation registry,\n removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation\n operations.

\n

To deregister an entire extension, you must individually deregister all active versions of that extension. If an\n extension has only a single active version, deregistering that version results in the extension itself being\n deregistered and marked as deprecated in the registry.

\n

You can't deregister the default version of an extension if there are other active version of that extension. If\n you do deregister the default version of an extension, the extension type itself is deregistered as well and marked\n as deprecated.

\n

To view the deprecation status of an extension or extension version, use DescribeType.

", + "smithy.api#documentation": "

Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it from\n active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations.

\n

To deregister an entire extension, you must individually deregister all active versions of that extension. If an\n extension has only a single active version, deregistering that version results in the extension itself being\n deregistered and marked as deprecated in the registry.

\n

You can't deregister the default version of an extension if there are other active version of that extension. If\n you do deregister the default version of an extension, the extension type itself is deregistered as well and marked\n as deprecated.

\n

To view the deprecation status of an extension or extension version, use \n DescribeType\n .

", "smithy.api#idempotent": {} } }, @@ -3662,7 +3662,7 @@ "target": "com.amazonaws.cloudformation#DescribeAccountLimitsOutput" }, "traits": { - "smithy.api#documentation": "

Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you can create in\n your account. For more information about account limits, see CloudFormation Quotas in the\n CloudFormation User Guide.

", + "smithy.api#documentation": "

Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you can create in your account.\n For more information about account limits, see CloudFormation Quotas in the\n CloudFormation User Guide.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3720,7 +3720,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the\n change set. For more information, see Updating Stacks Using Change\n Sets in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the change set.\n For more information, see Updating Stacks Using Change\n Sets in the CloudFormation User Guide.

", "smithy.api#suppress": [ "WaitableTraitInvalidErrorType" ], @@ -3774,7 +3774,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns hook-related information for the change set and a list of changes that CloudFormation makes when you\n run the change set.

" + "smithy.api#documentation": "

Returns hook-related information for the change set and a list of changes that CloudFormation makes when you run the\n change set.

" } }, "com.amazonaws.cloudformation#DescribeChangeSetHooksInput": { @@ -3926,7 +3926,7 @@ "Parameters": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of Parameter structures that describes the input parameters and their values used to create\n the change set. For more information, see the Parameter data type.

" + "smithy.api#documentation": "

A list of Parameter structures that describes the input parameters and their values used to create\n the change set. For more information, see the \n Parameter\n data type.

" } }, "CreationTime": { @@ -3938,13 +3938,13 @@ "ExecutionStatus": { "target": "com.amazonaws.cloudformation#ExecutionStatus", "traits": { - "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change set. If you can't\n execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE\n state because CloudFormation is still creating it or in an OBSOLETE state because the stack was\n already updated.

" + "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change set. If you can't\n execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE\n state because CloudFormation is still creating it or in an OBSOLETE state because the stack was already\n updated.

" } }, "Status": { "target": "com.amazonaws.cloudformation#ChangeSetStatus", "traits": { - "smithy.api#documentation": "

The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or\n FAILED.

" + "smithy.api#documentation": "

The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or\n FAILED.

" } }, "StatusReason": { @@ -3962,7 +3962,7 @@ "RollbackConfiguration": { "target": "com.amazonaws.cloudformation#RollbackConfiguration", "traits": { - "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for\n the specified monitoring period afterwards.

" + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified\n monitoring period afterwards.

" } }, "Capabilities": { @@ -3980,7 +3980,7 @@ "Changes": { "target": "com.amazonaws.cloudformation#Changes", "traits": { - "smithy.api#documentation": "

A list of Change structures that describes the resources CloudFormation changes if you execute\n the change set.

" + "smithy.api#documentation": "

A list of Change structures that describes the resources CloudFormation changes if you execute the change\n set.

" } }, "NextToken": { @@ -4010,7 +4010,7 @@ "OnStackFailure": { "target": "com.amazonaws.cloudformation#OnStackFailure", "traits": { - "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. When this parameter is specified, the\n DisableRollback parameter to the ExecuteChangeSet API operation must not\n be specified. This must be one of these values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only valid when the\n ChangeSetType parameter is set to CREATE. If the deletion of the stack fails, the status\n of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent to specifying\n true for the DisableRollback parameter to the ExecuteChangeSet API\n operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is equivalent to specifying\n false for the DisableRollback parameter to the ExecuteChangeSet API\n operation.

    \n
  • \n
" + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. When this parameter is specified, the\n DisableRollback parameter to the \n ExecuteChangeSet\n API operation must not\n be specified. This must be one of these values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only valid when the\n ChangeSetType parameter is set to CREATE. If the deletion of the stack fails, the status\n of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent to specifying\n true for the DisableRollback parameter to the \n ExecuteChangeSet\n API\n operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is equivalent to specifying\n false for the DisableRollback parameter to the \n ExecuteChangeSet\n API\n operation.

    \n
  • \n
" } }, "ImportExistingResources": { @@ -4149,7 +4149,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about the account's OrganizationAccess status. This API\n can be called either by the management account or the delegated administrator by using the\n CallAs parameter. This API can also be called without the CallAs\n parameter by the management account.

" + "smithy.api#documentation": "

Retrieves information about the account's OrganizationAccess status. This API can be called either\n by the management account or the delegated administrator by using the CallAs parameter. This API can\n also be called without the CallAs parameter by the management account.

" } }, "com.amazonaws.cloudformation#DescribeOrganizationsAccessInput": { @@ -4158,7 +4158,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the\n management account. For more information, see Register a\n delegated administrator in the CloudFormation User\n Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -4194,7 +4194,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a CloudFormation extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension publisher,\n DescribePublisher returns information about your own publisher account.

\n

For more information about registering as a publisher, see:

\n ", + "smithy.api#documentation": "

Returns information about a CloudFormation extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension publisher,\n DescribePublisher returns information about your own publisher account.

\n

For more information about registering as a publisher, see:

\n ", "smithy.api#idempotent": {} } }, @@ -4204,7 +4204,7 @@ "PublisherId": { "target": "com.amazonaws.cloudformation#PublisherId", "traits": { - "smithy.api#documentation": "

The ID of the extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension publisher,\n DescribePublisher returns information about your own publisher account.

" + "smithy.api#documentation": "

The ID of the extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension publisher,\n DescribePublisher returns information about your own publisher account.

" } } }, @@ -4348,7 +4348,7 @@ "target": "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusOutput" }, "traits": { - "smithy.api#documentation": "

Returns information about a stack drift detection operation. A stack drift detection operation detects whether a\n stack's actual configuration differs, or has drifted, from its expected configuration, as\n defined in the stack template and any values specified as template parameters. A stack is considered to have drifted\n if one or more of its resources have drifted. For more information about stack and resource drift, see Detecting Unregulated\n Configuration Changes to Stacks and Resources.

\n

Use DetectStackDrift to initiate a stack drift detection operation.\n DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of\n the operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed,\n use DescribeStackResourceDrifts to return drift information about the stack and its\n resources.

" + "smithy.api#documentation": "

Returns information about a stack drift detection operation. A stack drift detection operation detects whether a\n stack's actual configuration differs, or has drifted, from its expected configuration, as\n defined in the stack template and any values specified as template parameters. A stack is considered to have drifted\n if one or more of its resources have drifted. For more information about stack and resource drift, see Detecting Unregulated\n Configuration Changes to Stacks and Resources.

\n

Use DetectStackDrift to initiate a stack drift detection operation.\n DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of the\n operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use\n DescribeStackResourceDrifts to return drift information about the stack and its resources.

" } }, "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusInput": { @@ -4501,7 +4501,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the stack instance that's associated with the specified StackSet, Amazon Web Services account, and\n Amazon Web Services Region.

\n

For a list of stack instances that are associated with a specific StackSet, use ListStackInstances.

" + "smithy.api#documentation": "

Returns the stack instance that's associated with the specified StackSet, Amazon Web Services account, and\n Amazon Web Services Region.

\n

For a list of stack instances that are associated with a specific StackSet, use ListStackInstances.

" } }, "com.amazonaws.cloudformation#DescribeStackInstanceInput": { @@ -4534,7 +4534,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -4633,7 +4633,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve\n the next set of results, call DescribeStackResourceDrifts again and assign that token to the request\n object's NextToken parameter. If the request returns all results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve\n the next set of results, call DescribeStackResourceDrifts again and assign that token to the request\n object's NextToken parameter. If the request returns all results, NextToken is set to\n null.

" } } }, @@ -4690,7 +4690,7 @@ "target": "com.amazonaws.cloudformation#DescribeStackResourcesOutput" }, "traits": { - "smithy.api#documentation": "

Returns Amazon Web Services resource descriptions for running and deleted stacks. If StackName is\n specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId\n is specified, the associated resources of the stack that the resource belongs to are returned.

\n \n

Only the first 100 resources will be returned. If your stack has more resources than this, you should use\n ListStackResources instead.

\n
\n

For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the\n stack has been deleted.

\n

You must specify either StackName or PhysicalResourceId, but not both. In addition,\n you can specify LogicalResourceId to filter the returned result. For more information about resources,\n the LogicalResourceId and PhysicalResourceId, go to the CloudFormation User Guide.

\n \n

A ValidationError is returned if you specify both StackName and\n PhysicalResourceId in the same request.

\n
" + "smithy.api#documentation": "

Returns Amazon Web Services resource descriptions for running and deleted stacks. If StackName is\n specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId\n is specified, the associated resources of the stack that the resource belongs to are returned.

\n \n

Only the first 100 resources will be returned. If your stack has more resources than this, you should use\n ListStackResources instead.

\n
\n

For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the\n stack has been deleted.

\n

You must specify either StackName or PhysicalResourceId, but not both. In addition,\n you can specify LogicalResourceId to filter the returned result. For more information about resources,\n the LogicalResourceId and PhysicalResourceId, go to the CloudFormation User Guide.

\n \n

A ValidationError is returned if you specify both StackName and\n PhysicalResourceId in the same request.

\n
" } }, "com.amazonaws.cloudformation#DescribeStackResourcesInput": { @@ -4699,7 +4699,7 @@ "StackName": { "target": "com.amazonaws.cloudformation#StackName", "traits": { - "smithy.api#documentation": "

The name or the unique stack ID that is associated with the stack, which aren't always interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
\n

Default: There is no default value.

\n

Required: Conditional. If you don't specify StackName, you must specify\n PhysicalResourceId.

" + "smithy.api#documentation": "

The name or the unique stack ID that is associated with the stack, which aren't always interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
\n

Default: There is no default value.

\n

Required: Conditional. If you don't specify StackName, you must specify\n PhysicalResourceId.

" } }, "LogicalResourceId": { @@ -4711,7 +4711,7 @@ "PhysicalResourceId": { "target": "com.amazonaws.cloudformation#PhysicalResourceId", "traits": { - "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by CloudFormation.

\n

For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to\n the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to\n find which stack the instance belongs to and what other resources are part of the stack.

\n

Required: Conditional. If you don't specify PhysicalResourceId, you must specify\n StackName.

\n

Default: There is no default value.

" + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by CloudFormation.

\n

For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to\n the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to\n find which stack the instance belongs to and what other resources are part of the stack.

\n

Required: Conditional. If you don't specify PhysicalResourceId, you must specify\n StackName.

\n

Default: There is no default value.

" } } }, @@ -4766,7 +4766,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -4816,7 +4816,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -5317,7 +5317,7 @@ "StackName": { "target": "com.amazonaws.cloudformation#StackName", "traits": { - "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response that describes all\n resources in the account, which can impact performance. This requires ListStacks and DescribeStacks permissions.

\n

Consider using the ListStacks API if you're not passing a parameter to StackName.

\n

The IAM policy below can be added to IAM policies when you want to limit\n resource-level permissions and avoid returning a response when no parameter is sent in the request:

\n

{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Deny\", \"Action\": \"cloudformation:DescribeStacks\",\n \"NotResource\": \"arn:aws:cloudformation:*:*:stack/*/*\" }] }

\n
\n

The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
\n

Default: There is no default value.

" + "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response that describes all\n resources in the account, which can impact performance. This requires ListStacks and\n DescribeStacks permissions.

\n

Consider using the ListStacks API if you're not passing a parameter to\n StackName.

\n

The IAM policy below can be added to IAM policies when you want to limit resource-level permissions and\n avoid returning a response when no parameter is sent in the request:

\n

{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Deny\", \"Action\": \"cloudformation:DescribeStacks\",\n \"NotResource\": \"arn:aws:cloudformation:*:*:stack/*/*\" }] }

\n
\n

The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
\n

Default: There is no default value.

" } }, "NextToken": { @@ -5436,31 +5436,31 @@ "TypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

The name of the extension.

\n

If the extension is a public third-party type you have activated with a type name alias, CloudFormation\n returns the type name alias. For more information, see ActivateType.

" + "smithy.api#documentation": "

The name of the extension.

\n

If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the\n type name alias. For more information, see \n ActivateType\n .

" } }, "DefaultVersionId": { "target": "com.amazonaws.cloudformation#TypeVersionId", "traits": { - "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the extension version isn't\n specified.

\n

This applies only to private extensions you have registered in your account. For public extensions, both those\n provided by Amazon Web Services and published by third parties, CloudFormation returns null. For\n more information, see RegisterType.

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" + "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the extension version isn't\n specified.

\n

This applies only to private extensions you have registered in your account. For public extensions, both those\n provided by Amazon Web Services and published by third parties, CloudFormation returns null. For more\n information, see \n RegisterType\n .

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" } }, "IsDefaultVersion": { "target": "com.amazonaws.cloudformation#IsDefaultVersion", "traits": { - "smithy.api#documentation": "

Whether the specified extension version is set as the default version.

\n

This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation\n returns null.

" + "smithy.api#documentation": "

Whether the specified extension version is set as the default version.

\n

This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns\n null.

" } }, "TypeTestsStatus": { "target": "com.amazonaws.cloudformation#TypeTestsStatus", "traits": { - "smithy.api#documentation": "

The contract test status of the registered extension version. To return the extension test status of a specific\n extension version, you must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this\n information for public extensions, whether they are activated in your account.

\n
    \n
  • \n

    \n PASSED: The extension has passed all its contract tests.

    \n

    An extension must have a test status of PASSED before it can be published. For more information,\n see Publishing\n extensions to make them available for public use in the CloudFormation Command Line\n Interface User Guide.

    \n
  • \n
  • \n

    \n FAILED: The extension has failed one or more contract tests.

    \n
  • \n
  • \n

    \n IN_PROGRESS: Contract tests are currently being performed on the extension.

    \n
  • \n
  • \n

    \n NOT_TESTED: Contract tests haven't been performed on the extension.

    \n
  • \n
" + "smithy.api#documentation": "

The contract test status of the registered extension version. To return the extension test status of a specific\n extension version, you must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this information for\n public extensions, whether they are activated in your account.

\n
    \n
  • \n

    \n PASSED: The extension has passed all its contract tests.

    \n

    An extension must have a test status of PASSED before it can be published. For more information,\n see Publishing\n extensions to make them available for public use in the CloudFormation Command Line Interface User\n Guide.

    \n
  • \n
  • \n

    \n FAILED: The extension has failed one or more contract tests.

    \n
  • \n
  • \n

    \n IN_PROGRESS: Contract tests are currently being performed on the extension.

    \n
  • \n
  • \n

    \n NOT_TESTED: Contract tests haven't been performed on the extension.

    \n
  • \n
" } }, "TypeTestsStatusDescription": { "target": "com.amazonaws.cloudformation#TypeTestsStatusDescription", "traits": { - "smithy.api#documentation": "

The description of the test status. To return the extension test status of a specific extension version, you\n must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this\n information for public extensions, whether they are activated in your account.

" + "smithy.api#documentation": "

The description of the test status. To return the extension test status of a specific extension version, you\n must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this information for\n public extensions, whether they are activated in your account.

" } }, "Description": { @@ -5472,7 +5472,7 @@ "Schema": { "target": "com.amazonaws.cloudformation#TypeSchema", "traits": { - "smithy.api#documentation": "

The schema that defines the extension.

\n

For more information about extension schemas, see Resource Provider Schema in the\n CloudFormation CLI User Guide.

" + "smithy.api#documentation": "

The schema that defines the extension.

\n

For more information about extension schemas, see Resource Provider Schema in the\n CloudFormation CLI User Guide.

" } }, "ProvisioningType": { @@ -5484,13 +5484,13 @@ "DeprecatedStatus": { "target": "com.amazonaws.cloudformation#DeprecatedStatus", "traits": { - "smithy.api#documentation": "

The deprecation status of the extension version.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension is activated or registered and can be used in CloudFormation\n operations, dependent on its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension has been deactivated or deregistered and can no longer be used in\n CloudFormation operations.

    \n
  • \n
\n

For public third-party extensions, CloudFormation returns null.

" + "smithy.api#documentation": "

The deprecation status of the extension version.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension is activated or registered and can be used in CloudFormation operations,\n dependent on its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension has been deactivated or deregistered and can no longer be used in\n CloudFormation operations.

    \n
  • \n
\n

For public third-party extensions, CloudFormation returns null.

" } }, "LoggingConfig": { "target": "com.amazonaws.cloudformation#LoggingConfig", "traits": { - "smithy.api#documentation": "

Contains logging configuration information for private extensions. This applies only to private extensions you\n have registered in your account. For public extensions, both those provided by Amazon Web Services and published by\n third parties, CloudFormation returns null. For more information, see RegisterType.

" + "smithy.api#documentation": "

Contains logging configuration information for private extensions. This applies only to private extensions you\n have registered in your account. For public extensions, both those provided by Amazon Web Services and published by\n third parties, CloudFormation returns null. For more information, see \n RegisterType\n .

" } }, "RequiredActivatedTypes": { @@ -5502,7 +5502,7 @@ "ExecutionRoleArn": { "target": "com.amazonaws.cloudformation#RoleARN2", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This\n applies only to private extensions you have registered in your account. For more information, see RegisterType.

\n

If the registered extension calls any Amazon Web Services APIs, you must create an \n IAM execution role\n \n that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in\n your account. CloudFormation then assumes that execution role to provide your extension with the appropriate\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to\n private extensions you have registered in your account. For more information, see \n RegisterType\n .

\n

If the registered extension calls any Amazon Web Services APIs, you must create an \n IAM execution role\n that includes\n the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account.\n CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.

" } }, "Visibility": { @@ -5526,7 +5526,7 @@ "LastUpdated": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see RegisterType.

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For more information, see\n ActivateType.

    \n
  • \n
" + "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see \n RegisterType\n .

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For more information, see\n \n ActivateType\n .

    \n
  • \n
" } }, "TimeCreated": { @@ -5538,7 +5538,7 @@ "ConfigurationSchema": { "target": "com.amazonaws.cloudformation#ConfigurationSchema", "traits": { - "smithy.api#documentation": "

A JSON string that represent the current configuration data for the extension in this account and Region.

\n

To set the configuration data for an extension, use SetTypeConfiguration. For more\n information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" + "smithy.api#documentation": "

A JSON string that represent the current configuration data for the extension in this account and Region.

\n

To set the configuration data for an extension, use \n SetTypeConfiguration\n . For more\n information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" } }, "PublisherId": { @@ -5550,7 +5550,7 @@ "OriginalTypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name of the public\n extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name of the public\n extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" } }, "OriginalTypeArn": { @@ -5562,25 +5562,25 @@ "PublicVersionNumber": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

The version number of a public third-party extension.

\n

This applies only if you specify a public extension you have activated in your account, or specify a public\n extension without specifying a version. For all other extensions, CloudFormation returns\n null.

" + "smithy.api#documentation": "

The version number of a public third-party extension.

\n

This applies only if you specify a public extension you have activated in your account, or specify a public\n extension without specifying a version. For all other extensions, CloudFormation returns null.

" } }, "LatestPublicVersion": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

The latest version of a public extension that is available for use.

\n

This only applies if you specify a public extension, and you don't specify a version. For all other requests,\n CloudFormation returns null.

" + "smithy.api#documentation": "

The latest version of a public extension that is available for use.

\n

This only applies if you specify a public extension, and you don't specify a version. For all other requests,\n CloudFormation returns null.

" } }, "IsActivated": { "target": "com.amazonaws.cloudformation#IsActivated", "traits": { - "smithy.api#documentation": "

Whether the extension is activated in the account and Region.

\n

This only applies to public third-party extensions. For all other extensions, CloudFormation returns\n null.

" + "smithy.api#documentation": "

Whether the extension is activated in the account and Region.

\n

This only applies to public third-party extensions. For all other extensions, CloudFormation returns\n null.

" } }, "AutoUpdate": { "target": "com.amazonaws.cloudformation#AutoUpdate", "traits": { - "smithy.api#documentation": "

Whether CloudFormation automatically updates the extension in this account and Region when a new\n minor version is published by the extension publisher. Major versions released by the publisher\n must be manually updated. For more information, see Activating public extensions\n for use in your account in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Whether CloudFormation automatically updates the extension in this account and Region when a new\n minor version is published by the extension publisher. Major versions released by the publisher\n must be manually updated. For more information, see Activating public extensions for\n use in your account in the CloudFormation User Guide.

" } } }, @@ -5641,7 +5641,7 @@ "target": "com.amazonaws.cloudformation#RegistrationToken", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The identifier for this registration request.

\n

This registration token is generated by CloudFormation when you initiate a registration request using\n RegisterType.

", + "smithy.api#documentation": "

The identifier for this registration request.

\n

This registration token is generated by CloudFormation when you initiate a registration request using RegisterType.

", "smithy.api#required": {} } } @@ -5668,13 +5668,13 @@ "TypeArn": { "target": "com.amazonaws.cloudformation#TypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension being registered.

\n

For registration requests with a ProgressStatus of other than COMPLETE, this will be\n null.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension being registered.

\n

For registration requests with a ProgressStatus of other than COMPLETE, this will be\n null.

" } }, "TypeVersionArn": { "target": "com.amazonaws.cloudformation#TypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of this specific version of the extension being registered.

\n

For registration requests with a ProgressStatus of other than COMPLETE, this will be\n null.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of this specific version of the extension being registered.

\n

For registration requests with a ProgressStatus of other than COMPLETE, this will be\n null.

" } } }, @@ -5691,6 +5691,23 @@ } } }, + "com.amazonaws.cloudformation#DetailedStatus": { + "type": "enum", + "members": { + "CONFIGURATION_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURATION_COMPLETE" + } + }, + "VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_FAILED" + } + } + } + }, "com.amazonaws.cloudformation#DetectStackDrift": { "type": "operation", "input": { @@ -5700,7 +5717,7 @@ "target": "com.amazonaws.cloudformation#DetectStackDriftOutput" }, "traits": { - "smithy.api#documentation": "

Detects whether a stack's actual configuration differs, or has drifted, from its expected\n configuration, as defined in the stack template and any values specified as template parameters. For each resource in\n the stack that supports drift detection, CloudFormation compares the actual configuration of the resource with its expected\n template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A\n stack is considered to have drifted if one or more of its resources differ from their expected template\n configurations. For more information, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Use DetectStackDrift to detect drift on all supported resources for a given stack, or DetectStackResourceDrift to detect drift on individual resources.

\n

For a list of stack resources that currently support drift detection, see Resources that Support Drift\n Detection.

\n

\n DetectStackDrift can take up to several minutes, depending on the number of resources contained\n within the stack. Use DescribeStackDriftDetectionStatus to monitor the progress of a detect stack\n drift operation. Once the drift detection operation has completed, use DescribeStackResourceDrifts\n to return drift information about the stack and its resources.

\n

When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks belonging to that stack.\n Perform DetectStackDrift directly on the nested stack itself.

" + "smithy.api#documentation": "

Detects whether a stack's actual configuration differs, or has drifted, from its expected\n configuration, as defined in the stack template and any values specified as template parameters. For each resource in\n the stack that supports drift detection, CloudFormation compares the actual configuration of the resource with its expected\n template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A\n stack is considered to have drifted if one or more of its resources differ from their expected template\n configurations. For more information, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Use DetectStackDrift to detect drift on all supported resources for a given stack, or DetectStackResourceDrift to detect drift on individual resources.

\n

For a list of stack resources that currently support drift detection, see Resources that Support Drift\n Detection.

\n

\n DetectStackDrift can take up to several minutes, depending on the number of resources contained\n within the stack. Use DescribeStackDriftDetectionStatus to monitor the progress of a detect stack\n drift operation. Once the drift detection operation has completed, use DescribeStackResourceDrifts\n to return drift information about the stack and its resources.

\n

When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks belonging to that stack.\n Perform DetectStackDrift directly on the nested stack itself.

" } }, "com.amazonaws.cloudformation#DetectStackDriftInput": { @@ -5750,7 +5767,7 @@ "target": "com.amazonaws.cloudformation#DetectStackResourceDriftOutput" }, "traits": { - "smithy.api#documentation": "

Returns information about whether a resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template and any values\n specified as template parameters. This information includes actual and expected property values for resources in\n which CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift.\n For more information about stack and resource drift, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection.

\n

Resources that don't currently support drift detection can't be checked. For a list of resources that support\n drift detection, see Resources that Support Drift\n Detection.

" + "smithy.api#documentation": "

Returns information about whether a resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template and any values\n specified as template parameters. This information includes actual and expected property values for resources in\n which CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift.\n For more information about stack and resource drift, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection.

\n

Resources that don't currently support drift detection can't be checked. For a list of resources that support\n drift detection, see Resources that Support Drift\n Detection.

" } }, "com.amazonaws.cloudformation#DetectStackResourceDriftInput": { @@ -5813,7 +5830,7 @@ } ], "traits": { - "smithy.api#documentation": "

Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs\n drift detection on the stack associated with each stack instance in the stack set. For more information, see How CloudFormation\n performs drift detection on a stack set.

\n

\n DetectStackSetDrift returns the OperationId of the stack set drift detection\n operation. Use this operation id with DescribeStackSetOperation to monitor the progress of the\n drift detection operation. The drift detection operation may take some time, depending on the number of stack\n instances included in the stack set, in addition to the number of resources included in each stack.

\n

Once the operation has completed, use the following actions to return drift information:

\n
    \n
  • \n

    Use DescribeStackSet to return detailed information about the stack set, including detailed\n information about the last completed drift operation performed on the stack set. (Information\n about drift operations that are in progress isn't included.)

    \n
  • \n
  • \n

    Use ListStackInstances to return a list of stack instances belonging to the stack set,\n including the drift status and last drift time checked of each instance.

    \n
  • \n
  • \n

    Use DescribeStackInstance to return detailed information about a specific stack instance,\n including its drift status and last drift time checked.

    \n
  • \n
\n

For more information about performing a drift detection operation on a stack set, see Detecting unmanaged changes in\n stack sets.

\n

You can only run a single drift detection operation on a given stack set at one time.

\n

To stop a drift detection stack set operation, use StopStackSetOperation.

" + "smithy.api#documentation": "

Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs drift\n detection on the stack associated with each stack instance in the stack set. For more information, see How CloudFormation performs drift\n detection on a stack set.

\n

\n DetectStackSetDrift returns the OperationId of the stack set drift detection\n operation. Use this operation id with DescribeStackSetOperation to monitor the progress of the\n drift detection operation. The drift detection operation may take some time, depending on the number of stack\n instances included in the stack set, in addition to the number of resources included in each stack.

\n

Once the operation has completed, use the following actions to return drift information:

\n
    \n
  • \n

    Use DescribeStackSet to return detailed information about the stack set, including detailed\n information about the last completed drift operation performed on the stack set. (Information\n about drift operations that are in progress isn't included.)

    \n
  • \n
  • \n

    Use ListStackInstances to return a list of stack instances belonging to the stack set,\n including the drift status and last drift time checked of each instance.

    \n
  • \n
  • \n

    Use DescribeStackInstance to return detailed information about a specific stack instance,\n including its drift status and last drift time checked.

    \n
  • \n
\n

For more information about performing a drift detection operation on a stack set, see Detecting unmanaged changes in\n stack sets.

\n

You can only run a single drift detection operation on a given stack set at one time.

\n

To stop a drift detection stack set operation, use StopStackSetOperation.

" } }, "com.amazonaws.cloudformation#DetectStackSetDriftInput": { @@ -5830,7 +5847,7 @@ "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" } }, "OperationId": { @@ -5843,7 +5860,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -5938,13 +5955,13 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.\n (For more information, go to Template Anatomy in the\n CloudFormation User Guide.)

\n

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only\n TemplateBody is used.

" + "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.\n (For more information, go to Template Anatomy in the\n CloudFormation User Guide.)

\n

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only\n TemplateBody is used.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of 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. For more information, go to Template Anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" + "smithy.api#documentation": "

Location of 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. For more information, go to Template Anatomy in the\n CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" } }, "Parameters": { @@ -6017,7 +6034,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a stack using the input information that was provided when the specified change set was created. After\n the call successfully completes, CloudFormation starts updating the stack. Use the DescribeStacks action to view the status of the update.

\n

When you execute a change set, CloudFormation deletes all other change sets associated with the stack\n because they aren't valid for the updated stack.

\n

If a stack policy is associated with the stack, CloudFormation enforces the policy during the update. You\n can't specify a temporary stack policy that overrides the current policy.

\n

To create a change set for the entire stack hierarchy, IncludeNestedStacks must have been set to\n True.

" + "smithy.api#documentation": "

Updates a stack using the input information that was provided when the specified change set was created. After\n the call successfully completes, CloudFormation starts updating the stack. Use the DescribeStacks action to\n view the status of the update.

\n

When you execute a change set, CloudFormation deletes all other change sets associated with the stack because they aren't\n valid for the updated stack.

\n

If a stack policy is associated with the stack, CloudFormation enforces the policy during the update. You can't specify a\n temporary stack policy that overrides the current policy.

\n

To create a change set for the entire stack hierarchy, IncludeNestedStacks must have been set to\n True.

" } }, "com.amazonaws.cloudformation#ExecuteChangeSetInput": { @@ -6040,19 +6057,19 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to execute a change set to update a stack with\n the same name. You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully\n received them.

" + "smithy.api#documentation": "

A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry\n requests so that CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name.\n You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully received them.

" } }, "DisableRollback": { "target": "com.amazonaws.cloudformation#DisableRollback", "traits": { - "smithy.api#documentation": "

Preserves the state of previously provisioned resources when an operation\n fails. This parameter can't be specified when\n the OnStackFailure parameter to the CreateChangeSet API operation was\n specified.

\n
    \n
  • \n

    \n True - if the stack creation fails, do nothing. This is equivalent to specifying\n DO_NOTHING for the OnStackFailure parameter to the CreateChangeSet API operation.

    \n
  • \n
  • \n

    \n False - if the stack creation fails, roll back the stack. This is equivalent to specifying\n ROLLBACK for the OnStackFailure parameter to the CreateChangeSet API operation.

    \n
  • \n
\n

Default: True\n

" + "smithy.api#documentation": "

Preserves the state of previously provisioned resources when an operation fails. This parameter can't be\n specified when the OnStackFailure parameter to the \n CreateChangeSet\n API operation was\n specified.

\n
    \n
  • \n

    \n True - if the stack creation fails, do nothing. This is equivalent to specifying\n DO_NOTHING for the OnStackFailure parameter to the \n CreateChangeSet\n API operation.

    \n
  • \n
  • \n

    \n False - if the stack creation fails, roll back the stack. This is equivalent to specifying\n ROLLBACK for the OnStackFailure parameter to the \n CreateChangeSet\n API operation.

    \n
  • \n
\n

Default: True\n

" } }, "RetainExceptOnCreate": { "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", "traits": { - "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes newly\n created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes\n newly created resources marked with a deletion policy of Retain.

\n

Default: false\n

" } } }, @@ -6132,13 +6149,13 @@ "Name": { "target": "com.amazonaws.cloudformation#ExportName", "traits": { - "smithy.api#documentation": "

The name of exported output value. Use this name and the Fn::ImportValue function to import the\n associated value into other stacks. The name is defined in the Export field in the associated stack's\n Outputs section.

" + "smithy.api#documentation": "

The name of exported output value. Use this name and the Fn::ImportValue function to import the\n associated value into other stacks. The name is defined in the Export field in the associated stack's\n Outputs section.

" } }, "Value": { "target": "com.amazonaws.cloudformation#ExportValue", "traits": { - "smithy.api#documentation": "

The value of the exported output, such as a resource physical ID. This value is defined in the\n Export field in the associated stack's Outputs section.

" + "smithy.api#documentation": "

The value of the exported output, such as a resource physical ID. This value is defined in the\n Export field in the associated stack's Outputs section.

" } } }, @@ -6491,13 +6508,13 @@ "ChangeSetName": { "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", "traits": { - "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated\n template. If you specify a name, you must also specify the StackName.

" + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If\n you specify a name, you must also specify the StackName.

" } }, "TemplateStage": { "target": "com.amazonaws.cloudformation#TemplateStage", "traits": { - "smithy.api#documentation": "

For templates that include transforms, the stage of the template that CloudFormation returns. To get the\n user-submitted template, specify Original. To get the template after CloudFormation has\n processed all transforms, specify Processed.

\n

If the template doesn't include transforms, Original and Processed return the same\n template. By default, CloudFormation specifies Processed.

" + "smithy.api#documentation": "

For templates that include transforms, the stage of the template that CloudFormation returns. To get the\n user-submitted template, specify Original. To get the template after CloudFormation has processed all\n transforms, specify Processed.

\n

If the template doesn't include transforms, Original and Processed return the same\n template. By default, CloudFormation specifies Processed.

" } } }, @@ -6518,7 +6535,7 @@ "StagesAvailable": { "target": "com.amazonaws.cloudformation#StageList", "traits": { - "smithy.api#documentation": "

The stage of the template that you can retrieve. For stacks, the Original and\n Processed templates are always available. For change sets, the Original template is always\n available. After CloudFormation finishes creating the change set, the Processed template becomes\n available.

" + "smithy.api#documentation": "

The stage of the template that you can retrieve. For stacks, the Original and\n Processed templates are always available. For change sets, the Original template is always\n available. After CloudFormation finishes creating the change set, the Processed template becomes\n available.

" } } }, @@ -6550,31 +6567,31 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For\n more information about templates, see Template anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" + "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For\n more information about templates, see Template anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's\n located in an Amazon S3 bucket or a Systems Manager document. For more information about templates, see\n Template anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" + "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's\n located in an Amazon S3 bucket or a Systems Manager document. For more information about templates, see\n Template anatomy\n in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with\n https://.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" } }, "StackName": { "target": "com.amazonaws.cloudformation#StackNameOrId", "traits": { - "smithy.api#documentation": "

The name or the stack ID that's associated with the stack, which aren't always interchangeable. For running\n stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the\n unique stack ID.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" + "smithy.api#documentation": "

The name or the stack ID that's associated with the stack, which aren't always interchangeable. For running\n stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the\n unique stack ID.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" } }, "StackSetName": { "target": "com.amazonaws.cloudformation#StackSetNameOrId", "traits": { - "smithy.api#documentation": "

The name or unique ID of the stack set from which the stack was created.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" + "smithy.api#documentation": "

The name or unique ID of the stack set from which the stack was created.

\n

Conditional: You must specify only one of the following parameters: StackName,\n StackSetName, TemplateBody, or TemplateURL.

" } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } }, "TemplateSummaryConfig": { @@ -6607,7 +6624,7 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you must\n specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use\n the CreateStack or UpdateStack actions with your template; otherwise, those\n actions return an InsufficientCapabilities error.

\n

For more information, see Acknowledging IAM\n Resources in CloudFormation Templates.

" + "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you must specify the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return\n an InsufficientCapabilities error.

\n

For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

" } }, "CapabilitiesReason": { @@ -6619,7 +6636,7 @@ "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

A list of all the template resource types that are defined in the template, such as\n AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.

" + "smithy.api#documentation": "

A list of all the template resource types that are defined in the template, such as\n AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.

" } }, "Version": { @@ -7004,7 +7021,7 @@ "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" } }, "OperationId": { @@ -7093,7 +7110,7 @@ "code": "InvalidChangeSetStatus", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The specified change set can't be used to update the stack. For example, the change set status might be\n CREATE_IN_PROGRESS, or the stack status might be UPDATE_IN_PROGRESS.

", + "smithy.api#documentation": "

The specified change set can't be used to update the stack. For example, the change set status might be\n CREATE_IN_PROGRESS, or the stack status might be UPDATE_IN_PROGRESS.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -7127,7 +7144,7 @@ "code": "InvalidStateTransition", "httpResponseCode": 400 }, - "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI.\n CloudFormation doesn't return this error to users.

", + "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI. CloudFormation doesn't\n return this error to users.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -7186,7 +7203,7 @@ "code": "LimitExceededException", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The quota for the resource has already been reached.

\n

For information about resource and stack limitations, see CloudFormation quotas in the\n CloudFormation User Guide.

", + "smithy.api#documentation": "

The quota for the resource has already been reached.

\n

For information about resource and stack limitations, see CloudFormation quotas in the\n CloudFormation User Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -7206,7 +7223,7 @@ "target": "com.amazonaws.cloudformation#ListChangeSetsOutput" }, "traits": { - "smithy.api#documentation": "

Returns the ID and status of each active change set for a stack. For example, CloudFormation lists change\n sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state.

", + "smithy.api#documentation": "

Returns the ID and status of each active change set for a stack. For example, CloudFormation lists change sets that are\n in the CREATE_IN_PROGRESS or CREATE_PENDING state.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -7267,7 +7284,7 @@ "target": "com.amazonaws.cloudformation#ListExportsOutput" }, "traits": { - "smithy.api#documentation": "

Lists all exported output values in the account and Region in which you call this action. Use this action to see\n the exported output values that you can import into other stacks. To import values, use the \n Fn::ImportValue function.

\n

For more information, see \n CloudFormation export stack output values.

", + "smithy.api#documentation": "

Lists all exported output values in the account and Region in which you call this action. Use this action to see\n the exported output values that you can import into other stacks. To import values, use the \n Fn::ImportValue function.

\n

For more information, see CloudFormation export stack output\n values.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -7391,7 +7408,7 @@ "target": "com.amazonaws.cloudformation#ExportName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the exported output value. CloudFormation returns the stack names that are importing this\n value.

", + "smithy.api#documentation": "

The name of the exported output value. CloudFormation returns the stack names that are importing this value.

", "smithy.api#required": {} } }, @@ -7797,7 +7814,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns drift information for resources in a stack instance.

\n \n

\n ListStackInstanceResourceDrifts returns drift information for the most\n recent drift detection operation. If an operation is in progress, it may only return\n partial results.

\n
" + "smithy.api#documentation": "

Returns drift information for resources in a stack instance.

\n \n

\n ListStackInstanceResourceDrifts returns drift information for the most recent drift detection\n operation. If an operation is in progress, it may only return partial results.

\n
" } }, "com.amazonaws.cloudformation#ListStackInstanceResourceDriftsInput": { @@ -7807,26 +7824,26 @@ "target": "com.amazonaws.cloudformation#StackSetNameOrId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name or unique ID of the stack set that you want to list drifted resources\n for.

", + "smithy.api#documentation": "

The name or unique ID of the stack set that you want to list drifted resources for.

", "smithy.api#required": {} } }, "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the\n response object's NextToken parameter value is set to a token. To retrieve the\n next set of results, call this action again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, the previous\n response object's NextToken parameter is set to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action again\n and assign that token to the request object's NextToken parameter. If there are no remaining results,\n the previous response object's NextToken parameter is set to null.

" } }, "MaxResults": { "target": "com.amazonaws.cloudformation#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken\n value that you can assign to the NextToken request parameter to get the next\n set of results.

" + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this\n maximum, the response includes a NextToken value that you can assign to the NextToken\n request parameter to get the next set of results.

" } }, "StackInstanceResourceDriftStatuses": { "target": "com.amazonaws.cloudformation#StackResourceDriftStatusFilters", "traits": { - "smithy.api#documentation": "

The resource drift status of the stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template\n configuration in that the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected\n template values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected\n template configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
" + "smithy.api#documentation": "

The resource drift status of the stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in that the resource has\n been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected template values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected template configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
" } }, "StackInstanceAccount": { @@ -7856,7 +7873,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated\n administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in\n the management account. For more information, see Register a delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -7870,13 +7887,13 @@ "Summaries": { "target": "com.amazonaws.cloudformation#StackInstanceResourceDriftsSummaries", "traits": { - "smithy.api#documentation": "

A list of StackInstanceResourceDriftSummary structures that contain\n information about the specified stack instances.

" + "smithy.api#documentation": "

A list of StackInstanceResourceDriftSummary structures that contain information about the specified\n stack instances.

" } }, "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the\n response object's NextToken parameter value is set to a token. To retrieve the\n next set of results, call this action again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, the previous\n response object's NextToken parameter is set to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action again\n and assign that token to the request object's NextToken parameter. If there are no remaining results,\n the previous response object's NextToken parameter is set to null.

" } } }, @@ -7951,7 +7968,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -7971,7 +7988,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve\n the next set of results, call ListStackInstances again and assign that token to the request object's\n NextToken parameter. If the request returns all results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve\n the next set of results, call ListStackInstances again and assign that token to the request object's\n NextToken parameter. If the request returns all results, NextToken is set to\n null.

" } } }, @@ -8088,7 +8105,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous request didn't return all the remaining results, the response object's NextToken\n parameter value is set to a token. To retrieve the next set of results, call\n ListStackSetOperationResults again and assign that token to the request object's NextToken\n parameter. If there are no remaining results, the previous response object's NextToken parameter is set\n to null.

" + "smithy.api#documentation": "

If the previous request didn't return all the remaining results, the response object's NextToken\n parameter value is set to a token. To retrieve the next set of results, call\n ListStackSetOperationResults again and assign that token to the request object's NextToken\n parameter. If there are no remaining results, the previous response object's NextToken parameter is set\n to null.

" } }, "MaxResults": { @@ -8100,7 +8117,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } }, "Filters": { @@ -8126,7 +8143,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of\n results, call ListOperationResults again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of\n results, call ListOperationResults again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, NextToken is set to\n null.

" } } }, @@ -8171,7 +8188,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call\n ListStackSetOperations again and assign that token to the request object's NextToken\n parameter. If there are no remaining results, the previous response object's NextToken parameter is set\n to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call\n ListStackSetOperations again and assign that token to the request object's NextToken\n parameter. If there are no remaining results, the previous response object's NextToken parameter is set\n to null.

" } }, "MaxResults": { @@ -8183,7 +8200,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -8203,7 +8220,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of\n results, call ListOperationResults again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of\n results, call ListOperationResults again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, NextToken is set to\n null.

" } } }, @@ -8235,7 +8252,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call\n ListStackSets again and assign that token to the request object's NextToken parameter. If\n there are no remaining results, the previous response object's NextToken parameter is set to\n null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call\n ListStackSets again and assign that token to the request object's NextToken parameter. If\n there are no remaining results, the previous response object's NextToken parameter is set to\n null.

" } }, "MaxResults": { @@ -8253,7 +8270,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -8273,7 +8290,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To\n retrieve the next set of results, call ListStackInstances again and assign that token to the request\n object's NextToken parameter. If the request returns all results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To\n retrieve the next set of results, call ListStackInstances again and assign that token to the request\n object's NextToken parameter. If the request returns all results, NextToken is set to\n null.

" } } }, @@ -8399,7 +8416,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action\n again and assign that token to the request object's NextToken parameter. If there are no remaining\n results, the previous response object's NextToken parameter is set to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action again\n and assign that token to the request object's NextToken parameter. If there are no remaining results,\n the previous response object's NextToken parameter is set to null.

" } } }, @@ -8480,13 +8497,13 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action\n again and assign that token to the request object's NextToken parameter. If there are no remaining\n results, the previous response object's NextToken parameter is set to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action again\n and assign that token to the request object's NextToken parameter. If there are no remaining results,\n the previous response object's NextToken parameter is set to null.

" } }, "DeprecatedStatus": { "target": "com.amazonaws.cloudformation#DeprecatedStatus", "traits": { - "smithy.api#documentation": "

The deprecation status of the extension versions that you want to get summary information about.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension version is registered and can be used in CloudFormation operations,\n dependent on its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension version has been deregistered and can no longer be used in CloudFormation operations.

    \n
  • \n
\n

The default is LIVE.

" + "smithy.api#documentation": "

The deprecation status of the extension versions that you want to get summary information about.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension version is registered and can be used in CloudFormation operations, dependent on\n its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension version has been deregistered and can no longer be used in CloudFormation operations.

    \n
  • \n
\n

The default is LIVE.

" } }, "PublisherId": { @@ -8512,7 +8529,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To\n retrieve the next set of results, call this action again and assign that token to the request object's\n NextToken parameter. If the request returns all results, NextToken is set to\n null.

" + "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To\n retrieve the next set of results, call this action again and assign that token to the request object's\n NextToken parameter. If the request returns all results, NextToken is set to\n null.

" } } }, @@ -8550,7 +8567,7 @@ "Visibility": { "target": "com.amazonaws.cloudformation#Visibility", "traits": { - "smithy.api#documentation": "

The scope at which the extensions are visible and usable in CloudFormation operations.

\n

Valid values include:

\n
    \n
  • \n

    \n PRIVATE: Extensions that are visible and usable within this account and Region. This\n includes:

    \n
      \n
    • \n

      Private extensions you have registered in this account and Region.

      \n
    • \n
    • \n

      Public extensions that you have activated in this account and Region.

      \n
    • \n
    \n
  • \n
  • \n

    \n PUBLIC: Extensions that are publicly visible and available to be activated within any Amazon Web Services account. This includes extensions from Amazon Web Services, in addition to third-party\n publishers.

    \n
  • \n
\n

The default is PRIVATE.

" + "smithy.api#documentation": "

The scope at which the extensions are visible and usable in CloudFormation operations.

\n

Valid values include:

\n
    \n
  • \n

    \n PRIVATE: Extensions that are visible and usable within this account and Region. This\n includes:

    \n
      \n
    • \n

      Private extensions you have registered in this account and Region.

      \n
    • \n
    • \n

      Public extensions that you have activated in this account and Region.

      \n
    • \n
    \n
  • \n
  • \n

    \n PUBLIC: Extensions that are publicly visible and available to be activated within any Amazon Web Services account. This includes extensions from Amazon Web Services, in addition to third-party publishers.

    \n
  • \n
\n

The default is PRIVATE.

" } }, "ProvisioningType": { @@ -8574,7 +8591,7 @@ "Filters": { "target": "com.amazonaws.cloudformation#TypeFilters", "traits": { - "smithy.api#documentation": "

Filter criteria to use in determining which extensions to return.

\n

Filters must be compatible with Visibility to return valid results. For example, specifying\n AWS_TYPES for Category and PRIVATE for Visibility returns an\n empty list of types, but specifying PUBLIC for Visibility returns the desired list.

" + "smithy.api#documentation": "

Filter criteria to use in determining which extensions to return.

\n

Filters must be compatible with Visibility to return valid results. For example, specifying\n AWS_TYPES for Category and PRIVATE for Visibility returns an\n empty list of types, but specifying PUBLIC for Visibility returns the desired list.

" } }, "MaxResults": { @@ -8586,7 +8603,7 @@ "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action\n again and assign that token to the request object's NextToken parameter. If there are no remaining\n results, the previous response object's NextToken parameter is set to null.

" + "smithy.api#documentation": "

If the previous paginated request didn't return all the remaining results, the response object's\n NextToken parameter value is set to a token. To retrieve the next set of results, call this action again\n and assign that token to the request object's NextToken parameter. If there are no remaining results,\n the previous response object's NextToken parameter is set to null.

" } } }, @@ -8631,7 +8648,7 @@ "target": "com.amazonaws.cloudformation#RoleARN2", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries\n to CloudWatch Logs.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs.

", "smithy.api#required": {} } }, @@ -8639,7 +8656,7 @@ "target": "com.amazonaws.cloudformation#LogGroupName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking\n the extension's handlers.

", + "smithy.api#documentation": "

The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the\n extension's handlers.

", "smithy.api#required": {} } } @@ -8684,12 +8701,12 @@ "Active": { "target": "com.amazonaws.cloudformation#ManagedExecutionNullable", "traits": { - "smithy.api#documentation": "

When true, StackSets performs non-conflicting operations concurrently and\n queues conflicting operations. After conflicting operations finish, StackSets starts queued\n operations in request order.

\n \n

If there are already running or queued operations, StackSets queues all incoming operations\n even if they are non-conflicting.

\n

You can't modify your stack set's execution configuration while there are running or queued\n operations for that stack set.

\n
\n

When false (default), StackSets performs one operation at a time in request\n order.

" + "smithy.api#documentation": "

When true, StackSets performs non-conflicting operations concurrently and queues conflicting\n operations. After conflicting operations finish, StackSets starts queued operations in request order.

\n \n

If there are already running or queued operations, StackSets queues all incoming operations even if they are\n non-conflicting.

\n

You can't modify your stack set's execution configuration while there are running or queued operations for that\n stack set.

\n
\n

When false (default), StackSets performs one operation at a time in request order.

" } } }, "traits": { - "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting\n operations.

" } }, "com.amazonaws.cloudformation#ManagedExecutionNullable": { @@ -8730,7 +8747,7 @@ "TypeHierarchy": { "target": "com.amazonaws.cloudformation#TypeHierarchy", "traits": { - "smithy.api#documentation": "

A concatenated list of the module type or types containing the resource. Module types are listed starting with\n the inner-most nested module, and separated by /.

\n

In the following example, the resource was created from a module of type\n AWS::First::Example::MODULE, that's nested inside a parent module of type\n AWS::Second::Example::MODULE.

\n

\n AWS::First::Example::MODULE/AWS::Second::Example::MODULE\n

" + "smithy.api#documentation": "

A concatenated list of the module type or types containing the resource. Module types are listed starting with\n the inner-most nested module, and separated by /.

\n

In the following example, the resource was created from a module of type\n AWS::First::Example::MODULE, that's nested inside a parent module of type\n AWS::Second::Example::MODULE.

\n

\n AWS::First::Example::MODULE/AWS::Second::Example::MODULE\n

" } }, "LogicalIdHierarchy": { @@ -8741,7 +8758,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource was created from a\n module included in the stack template.

\n

For more information about modules, see Using modules to encapsulate and reuse resource\n configurations in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource was created from a\n module included in the stack template.

\n

For more information about modules, see Using modules to encapsulate and reuse resource\n configurations in the CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#MonitoringTimeInMinutes": { @@ -8996,7 +9013,7 @@ "code": "ConditionalCheckFailed", "httpResponseCode": 400 }, - "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI.\n CloudFormation doesn't return this error to users.

", + "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI. CloudFormation doesn't\n return this error to users.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -9113,7 +9130,7 @@ "ResolvedValue": { "target": "com.amazonaws.cloudformation#ParameterValue", "traits": { - "smithy.api#documentation": "

Read-only. The value that corresponds to a SSM parameter key. This field is returned only for\n SSM\n parameter types in the template.

" + "smithy.api#documentation": "

Read-only. The value that corresponds to a SSM parameter key. This field is returned only for\n SSM\n parameter types in the template.

" } } }, @@ -9132,7 +9149,7 @@ } }, "traits": { - "smithy.api#documentation": "

A set of criteria that CloudFormation uses to validate parameter values. Although other constraints might be\n defined in the stack template, CloudFormation returns only the AllowedValues property.

" + "smithy.api#documentation": "

A set of criteria that CloudFormation uses to validate parameter values. Although other constraints might be defined in\n the stack template, CloudFormation returns only the AllowedValues property.

" } }, "com.amazonaws.cloudformation#ParameterDeclaration": { @@ -9312,7 +9329,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about a resource property whose actual value differs from its expected value, as defined in the\n stack template and any values specified as template parameters. These will be present only for resources whose\n StackResourceDriftStatus is MODIFIED. For more information, see Detecting Unregulated\n Configuration Changes to Stacks and Resources.

" + "smithy.api#documentation": "

Information about a resource property whose actual value differs from its expected value, as defined in the\n stack template and any values specified as template parameters. These will be present only for resources whose\n StackResourceDriftStatus is MODIFIED. For more information, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

" } }, "com.amazonaws.cloudformation#PropertyDifferences": { @@ -9379,7 +9396,7 @@ } ], "traits": { - "smithy.api#documentation": "

Publishes the specified extension to the CloudFormation registry as a public extension in this Region.\n Public extensions are available for use by all CloudFormation users. For more information about publishing\n extensions, see Publishing extensions to make them available for public use in the CloudFormation CLI\n User Guide.

\n

To publish an extension, you must be registered as a publisher with CloudFormation. For more\n information, see RegisterPublisher.

", + "smithy.api#documentation": "

Publishes the specified extension to the CloudFormation registry as a public extension in this Region. Public\n extensions are available for use by all CloudFormation users. For more information about publishing extensions, see\n Publishing extensions to\n make them available for public use in the CloudFormation CLI User Guide.

\n

To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see \n RegisterPublisher\n .

", "smithy.api#idempotent": {} } }, @@ -9407,7 +9424,7 @@ "PublicVersionNumber": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

The version number to assign to this version of the extension.

\n

Use the following format, and adhere to semantic versioning when assigning a version number to your\n extension:

\n

\n MAJOR.MINOR.PATCH\n

\n

For more information, see Semantic Versioning 2.0.0.

\n

If you don't specify a version number, CloudFormation increments the version number by one minor\n version release.

\n

You cannot specify a version number the first time you publish a type. CloudFormation automatically sets the first\n version number to be 1.0.0.

" + "smithy.api#documentation": "

The version number to assign to this version of the extension.

\n

Use the following format, and adhere to semantic versioning when assigning a version number to your\n extension:

\n

\n MAJOR.MINOR.PATCH\n

\n

For more information, see Semantic Versioning 2.0.0.

\n

If you don't specify a version number, CloudFormation increments the version number by one minor version\n release.

\n

You cannot specify a version number the first time you publish a type. CloudFormation automatically sets the first\n version number to be 1.0.0.

" } } }, @@ -9496,7 +9513,7 @@ } ], "traits": { - "smithy.api#documentation": "

Reports progress of a resource handler to CloudFormation.

\n

Reserved for use by the CloudFormation CLI. Don't\n use this API in your code.

", + "smithy.api#documentation": "

Reports progress of a resource handler to CloudFormation.

\n

Reserved for use by the CloudFormation CLI. Don't use this API\n in your code.

", "smithy.api#idempotent": {} } }, @@ -9507,7 +9524,7 @@ "target": "com.amazonaws.cloudformation#ClientToken", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

", + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

", "smithy.api#required": {} } }, @@ -9515,38 +9532,38 @@ "target": "com.amazonaws.cloudformation#OperationStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

", + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

", "smithy.api#required": {} } }, "CurrentOperationStatus": { "target": "com.amazonaws.cloudformation#OperationStatus", "traits": { - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

" } }, "StatusMessage": { "target": "com.amazonaws.cloudformation#StatusMessage", "traits": { - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

" } }, "ErrorCode": { "target": "com.amazonaws.cloudformation#HandlerErrorCode", "traits": { - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

" } }, "ResourceModel": { "target": "com.amazonaws.cloudformation#ResourceModel", "traits": { - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + "smithy.api#documentation": "

Reserved for use by the CloudFormation CLI.

" } } }, @@ -9607,7 +9624,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers your account as a publisher of public extensions in the CloudFormation registry. Public\n extensions are available for use by all CloudFormation users. This publisher ID applies to your account in\n all Amazon Web Services Regions.

\n

For information about requirements for registering as a public extension publisher, see Registering your account to publish CloudFormation extensions in the CloudFormation CLI User Guide.

\n

", + "smithy.api#documentation": "

Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are\n available for use by all CloudFormation users. This publisher ID applies to your account in all Amazon Web Services Regions.

\n

For information about requirements for registering as a public extension publisher, see Registering your account to publish CloudFormation extensions in the CloudFormation CLI User\n Guide.

\n

", "smithy.api#idempotent": {} } }, @@ -9617,13 +9634,13 @@ "AcceptTermsAndConditions": { "target": "com.amazonaws.cloudformation#AcceptTermsAndConditions", "traits": { - "smithy.api#documentation": "

Whether you accept the Terms and Conditions for publishing extensions in the CloudFormation registry. You must accept the\n terms and conditions in order to register to publish public extensions to the CloudFormation\n registry.

\n

The default is false.

" + "smithy.api#documentation": "

Whether you accept the Terms and Conditions for publishing extensions in the CloudFormation registry. You must accept the terms and\n conditions in order to register to publish public extensions to the CloudFormation registry.

\n

The default is false.

" } }, "ConnectionArn": { "target": "com.amazonaws.cloudformation#ConnectionArn", "traits": { - "smithy.api#documentation": "

If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for\n your connection to that account.

\n

For more information, see Registering your account\n to publish CloudFormation extensions in the CloudFormation CLI User\n Guide.

" + "smithy.api#documentation": "

If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for\n your connection to that account.

\n

For more information, see Registering your account\n to publish CloudFormation extensions in the CloudFormation CLI User Guide.

" } } }, @@ -9659,7 +9676,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers an extension with the CloudFormation service. Registering an extension makes it available for\n use in CloudFormation templates in your Amazon Web Services account, and includes:

\n
    \n
  • \n

    Validating the extension schema.

    \n
  • \n
  • \n

    Determining which handlers, if any, have been specified for the extension.

    \n
  • \n
  • \n

    Making the extension available for use in your account.

    \n
  • \n
\n

For more information about how to develop extensions and ready them for registration, see Creating Resource\n Providers in the CloudFormation CLI User Guide.

\n

You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and\n per Region. Use DeregisterType to deregister specific extension versions if necessary.

\n

Once you have initiated a registration request using RegisterType, you can use DescribeTypeRegistration to monitor the progress of the registration request.

\n

Once you have registered a private extension in your account and Region, use SetTypeConfiguration to specify\n configuration properties for the extension. For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Registers an extension with the CloudFormation service. Registering an extension makes it available for use in\n CloudFormation templates in your Amazon Web Services account, and includes:

\n
    \n
  • \n

    Validating the extension schema.

    \n
  • \n
  • \n

    Determining which handlers, if any, have been specified for the extension.

    \n
  • \n
  • \n

    Making the extension available for use in your account.

    \n
  • \n
\n

For more information about how to develop extensions and ready them for registration, see Creating Resource\n Providers in the CloudFormation CLI User Guide.

\n

You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and\n per Region. Use \n DeregisterType\n to deregister specific extension versions if necessary.

\n

Once you have initiated a registration request using RegisterType, you can use DescribeTypeRegistration to monitor the progress of the registration request.

\n

Once you have registered a private extension in your account and Region, use \n SetTypeConfiguration\n to specify\n configuration properties for the extension. For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

", "smithy.api#idempotent": {} } }, @@ -9676,7 +9693,7 @@ "target": "com.amazonaws.cloudformation#TypeName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the extension being registered.

\n

We suggest that extension names adhere to the following patterns:

\n
    \n
  • \n

    For resource types,\n company_or_organization::service::type.

    \n
  • \n
  • \n

    For modules,\n company_or_organization::service::type::MODULE.

    \n
  • \n
  • \n

    For hooks,\n MyCompany::Testing::MyTestHook.

    \n
  • \n
\n \n

The following organization namespaces are reserved and can't be used in your extension names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
", + "smithy.api#documentation": "

The name of the extension being registered.

\n

We suggest that extension names adhere to the following patterns:

\n
    \n
  • \n

    For resource types,\n company_or_organization::service::type.

    \n
  • \n
  • \n

    For modules,\n company_or_organization::service::type::MODULE.

    \n
  • \n
  • \n

    For hooks,\n MyCompany::Testing::MyTestHook.

    \n
  • \n
\n \n

The following organization namespaces are reserved and can't be used in your extension names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
", "smithy.api#required": {} } }, @@ -9684,7 +9701,7 @@ "target": "com.amazonaws.cloudformation#S3Url", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A URL to the S3 bucket containing the extension project package that contains the necessary files for the\n extension you want to register.

\n

For information about generating a schema handler package for the extension you want to register, see submit in the\n CloudFormation CLI User Guide.

\n \n

The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs\n to have GetObject permissions for\n the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3\n in the Identity and Access Management User Guide.

\n
", + "smithy.api#documentation": "

A URL to the S3 bucket containing the extension project package that contains the necessary files for the\n extension you want to register.

\n

For information about generating a schema handler package for the extension you want to register, see submit in the\n CloudFormation CLI User Guide.

\n \n

The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs\n to have GetObject permissions for\n the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3\n in the Identity and Access Management User Guide.

\n
", "smithy.api#required": {} } }, @@ -9697,13 +9714,13 @@ "ExecutionRoleArn": { "target": "com.amazonaws.cloudformation#RoleARN2", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when\n invoking the extension.

\n

For CloudFormation to assume the specified execution role, the role must contain a trust relationship\n with the CloudFormation service principal (resources.cloudformation.amazonaws.com). For more\n information about adding trust relationships, see Modifying a\n role trust policy in the Identity and Access Management User Guide.

\n

If your extension calls Amazon Web Services APIs in any of its handlers, you must create an \n IAM execution role\n \n that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in\n your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this\n execution role to create a temporary session token, which it then passes to the resource type handler, thereby\n supplying your resource type with the appropriate credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension.

\n

For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the\n CloudFormation service principal (resources.cloudformation.amazonaws.com). For more information about adding\n trust relationships, see Modifying a\n role trust policy in the Identity and Access Management User Guide.

\n

If your extension calls Amazon Web Services APIs in any of its handlers, you must create an \n IAM execution role\n that includes\n the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account.\n When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary\n session token, which it then passes to the resource type handler, thereby supplying your resource type with the\n appropriate credentials.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#RequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier that acts as an idempotency key for this registration request. Specifying a client request\n token prevents CloudFormation from generating more than one version of an extension from the same\n registration request, even if the request is submitted multiple times.

" + "smithy.api#documentation": "

A unique identifier that acts as an idempotency key for this registration request. Specifying a client request\n token prevents CloudFormation from generating more than one version of an extension from the same registration request,\n even if the request is submitted multiple times.

" } } }, @@ -9832,13 +9849,13 @@ "TypeNameAlias": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

An alias assigned to the public extension, in this account and Region. If you specify an alias for the\n extension, CloudFormation treats the alias as the extension type name within this account and Region. You\n must use the alias to refer to the extension in your templates, API calls, and CloudFormation\n console.

" + "smithy.api#documentation": "

An alias assigned to the public extension, in this account and Region. If you specify an alias for the\n extension, CloudFormation treats the alias as the extension type name within this account and Region. You must use the\n alias to refer to the extension in your templates, API calls, and CloudFormation console.

" } }, "OriginalTypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

The type name of the public extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" + "smithy.api#documentation": "

The type name of the public extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" } }, "PublisherId": { @@ -9855,7 +9872,7 @@ } }, "traits": { - "smithy.api#documentation": "

For extensions that are modules, a public third-party extension that must be activated in your account in order\n for the module itself to be activated.

\n

For more information, see Activating public modules for use in your\n account in the CloudFormation User Guide.

" + "smithy.api#documentation": "

For extensions that are modules, a public third-party extension that must be activated in your account in order\n for the module itself to be activated.

\n

For more information, see Activating public modules for use in your\n account in the CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#RequiredActivatedTypes": { @@ -9943,7 +9960,7 @@ "Action": { "target": "com.amazonaws.cloudformation#ChangeAction", "traits": { - "smithy.api#documentation": "

The action that CloudFormation takes on the resource, such as Add (adds a new resource),\n Modify (changes a resource), Remove (deletes a resource), Import (imports a\n resource), or Dynamic (exact action for the resource can't be determined).

" + "smithy.api#documentation": "

The action that CloudFormation takes on the resource, such as Add (adds a new resource), Modify\n (changes a resource), Remove (deletes a resource), Import (imports a resource), or\n Dynamic (exact action for the resource can't be determined).

" } }, "LogicalResourceId": { @@ -9967,7 +9984,7 @@ "Replacement": { "target": "com.amazonaws.cloudformation#Replacement", "traits": { - "smithy.api#documentation": "

For the Modify action, indicates whether CloudFormation will replace the resource by creating a\n new one and deleting the old one. This value depends on the value of the RequiresRecreation property in\n the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is\n Always and the Evaluation field is Static, Replacement is\n True. If the RequiresRecreation field is Always and the\n Evaluation field is Dynamic, Replacement is\n Conditionally.

\n

If you have multiple changes with different RequiresRecreation values, the Replacement\n value depends on the change with the most impact. A RequiresRecreation value of Always has\n the most impact, followed by Conditionally, and then Never.

" + "smithy.api#documentation": "

For the Modify action, indicates whether CloudFormation will replace the resource by creating a new one and\n deleting the old one. This value depends on the value of the RequiresRecreation property in the\n ResourceTargetDefinition structure. For example, if the RequiresRecreation field is\n Always and the Evaluation field is Static, Replacement is\n True. If the RequiresRecreation field is Always and the\n Evaluation field is Dynamic, Replacement is Conditionally.

\n

If you have multiple changes with different RequiresRecreation values, the Replacement\n value depends on the change with the most impact. A RequiresRecreation value of Always has\n the most impact, followed by Conditionally, and then Never.

" } }, "Scope": { @@ -9996,7 +10013,7 @@ } }, "traits": { - "smithy.api#documentation": "

The ResourceChange structure describes the resource and the action that CloudFormation will\n perform on it if you execute this change set.

" + "smithy.api#documentation": "

The ResourceChange structure describes the resource and the action that CloudFormation will perform on it if\n you execute this change set.

" } }, "com.amazonaws.cloudformation#ResourceChangeDetail": { @@ -10005,25 +10022,25 @@ "Target": { "target": "com.amazonaws.cloudformation#ResourceTargetDefinition", "traits": { - "smithy.api#documentation": "

A ResourceTargetDefinition structure that describes the field that CloudFormation will change\n and whether the resource will be recreated.

" + "smithy.api#documentation": "

A ResourceTargetDefinition structure that describes the field that CloudFormation will change and whether\n the resource will be recreated.

" } }, "Evaluation": { "target": "com.amazonaws.cloudformation#EvaluationType", "traits": { - "smithy.api#documentation": "

Indicates whether CloudFormation can determine the target value, and whether the target value will change\n before you execute a change set.

\n

For Static evaluations, CloudFormation can determine that the target value will change, and its\n value. For example, if you directly modify the InstanceType property of an EC2 instance, CloudFormation knows that this property value will change, and its value, so this is a Static\n evaluation.

\n

For Dynamic evaluations, can't determine the target value because it depends on the result of an\n intrinsic function, such as a Ref or Fn::GetAtt intrinsic function, when the stack is\n updated. For example, if your template includes a reference to a resource that's conditionally recreated, the value\n of the reference (the physical ID of the resource) might change, depending on if the resource is recreated. If the\n resource is recreated, it will have a new physical ID, so all references to that resource will also be\n updated.

" + "smithy.api#documentation": "

Indicates whether CloudFormation can determine the target value, and whether the target value will change before you\n execute a change set.

\n

For Static evaluations, CloudFormation can determine that the target value will change, and its value. For\n example, if you directly modify the InstanceType property of an EC2 instance, CloudFormation knows\n that this property value will change, and its value, so this is a Static evaluation.

\n

For Dynamic evaluations, can't determine the target value because it depends on the result of an\n intrinsic function, such as a Ref or Fn::GetAtt intrinsic function, when the stack is\n updated. For example, if your template includes a reference to a resource that's conditionally recreated, the value\n of the reference (the physical ID of the resource) might change, depending on if the resource is recreated. If the\n resource is recreated, it will have a new physical ID, so all references to that resource will also be\n updated.

" } }, "ChangeSource": { "target": "com.amazonaws.cloudformation#ChangeSource", "traits": { - "smithy.api#documentation": "

The group to which the CausingEntity value belongs. There are five entity groups:

\n
    \n
  • \n

    \n ResourceReference entities are Ref intrinsic functions that refer to resources in the\n template, such as { \"Ref\" : \"MyEC2InstanceResource\" }.

    \n
  • \n
  • \n

    \n ParameterReference entities are Ref intrinsic functions that get template parameter\n values, such as { \"Ref\" : \"MyPasswordParameter\" }.

    \n
  • \n
  • \n

    \n ResourceAttribute entities are Fn::GetAtt intrinsic functions that get resource attribute\n values, such as { \"Fn::GetAtt\" : [ \"MyEC2InstanceResource\", \"PublicDnsName\" ] }.

    \n
  • \n
  • \n

    \n DirectModification entities are changes that are made directly to the template.

    \n
  • \n
  • \n

    \n Automatic entities are AWS::CloudFormation::Stack resource types, which are also known as\n nested stacks. If you made no changes to the AWS::CloudFormation::Stack resource, CloudFormation\n sets the ChangeSource to Automatic because the nested stack's template might have\n changed. Changes to a nested stack's template aren't visible to CloudFormation until you run an update on the\n parent stack.

    \n
  • \n
" + "smithy.api#documentation": "

The group to which the CausingEntity value belongs. There are five entity groups:

\n
    \n
  • \n

    \n ResourceReference entities are Ref intrinsic functions that refer to resources in\n the template, such as { \"Ref\" : \"MyEC2InstanceResource\" }.

    \n
  • \n
  • \n

    \n ParameterReference entities are Ref intrinsic functions that get template parameter\n values, such as { \"Ref\" : \"MyPasswordParameter\" }.

    \n
  • \n
  • \n

    \n ResourceAttribute entities are Fn::GetAtt intrinsic functions that get resource\n attribute values, such as { \"Fn::GetAtt\" : [ \"MyEC2InstanceResource\", \"PublicDnsName\" ] }.

    \n
  • \n
  • \n

    \n DirectModification entities are changes that are made directly to the template.

    \n
  • \n
  • \n

    \n Automatic entities are AWS::CloudFormation::Stack resource types, which are also\n known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack resource, CloudFormation sets the ChangeSource to Automatic because the nested stack's template might\n have changed. Changes to a nested stack's template aren't visible to CloudFormation until you run an update on the parent\n stack.

    \n
  • \n
" } }, "CausingEntity": { "target": "com.amazonaws.cloudformation#CausingEntity", "traits": { - "smithy.api#documentation": "

The identity of the entity that triggered this change. This entity is a member of the group that's specified by\n the ChangeSource field. For example, if you modified the value of the KeyPairName\n parameter, the CausingEntity is the name of the parameter (KeyPairName).

\n

If the ChangeSource value is DirectModification, no value is given for\n CausingEntity.

" + "smithy.api#documentation": "

The identity of the entity that triggered this change. This entity is a member of the group that's specified by\n the ChangeSource field. For example, if you modified the value of the KeyPairName\n parameter, the CausingEntity is the name of the parameter (KeyPairName).

\n

If the ChangeSource value is DirectModification, no value is given for\n CausingEntity.

" } } }, @@ -10044,7 +10061,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types in the CloudFormation User Guide\n

", + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types in the CloudFormation User Guide\n

", "smithy.api#required": {} } }, @@ -10085,7 +10102,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types In the CloudFormation User Guide\n

" + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types In the CloudFormation User Guide\n

" } }, "LogicalResourceId": { @@ -10195,12 +10212,12 @@ "ResourceIdentifiers": { "target": "com.amazonaws.cloudformation#ResourceIdentifiers", "traits": { - "smithy.api#documentation": "

The resource properties you can provide during the import to identify your target resources. For example,\n BucketName is a possible identifier property for AWS::S3::Bucket resources.

" + "smithy.api#documentation": "

The resource properties you can provide during the import to identify your target resources. For example,\n BucketName is a possible identifier property for AWS::S3::Bucket resources.

" } } }, "traits": { - "smithy.api#documentation": "

Describes the target resources of a specific type in your import template (for example, all\n AWS::S3::Bucket resources) and the properties you can provide during the import to identify resources\n of that type.

" + "smithy.api#documentation": "

Describes the target resources of a specific type in your import template (for example, all\n AWS::S3::Bucket resources) and the properties you can provide during the import to identify resources of\n that type.

" } }, "com.amazonaws.cloudformation#ResourceIdentifiers": { @@ -10532,7 +10549,7 @@ "Attribute": { "target": "com.amazonaws.cloudformation#ResourceAttribute", "traits": { - "smithy.api#documentation": "

Indicates which resource attribute is triggering this update, such as a change in the resource attribute's\n Metadata, Properties, or Tags.

" + "smithy.api#documentation": "

Indicates which resource attribute is triggering this update, such as a change in the resource attribute's\n Metadata, Properties, or Tags.

" } }, "Name": { @@ -10544,12 +10561,12 @@ "RequiresRecreation": { "target": "com.amazonaws.cloudformation#RequiresRecreation", "traits": { - "smithy.api#documentation": "

If the Attribute value is Properties, indicates whether a change to this property\n causes the resource to be recreated. The value can be Never, Always, or\n Conditionally. To determine the conditions for a Conditionally recreation, see the update\n behavior for that property in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

If the Attribute value is Properties, indicates whether a change to this property\n causes the resource to be recreated. The value can be Never, Always, or\n Conditionally. To determine the conditions for a Conditionally recreation, see the update\n behavior for that property in the\n CloudFormation User Guide.

" } } }, "traits": { - "smithy.api#documentation": "

The field that CloudFormation will change, such as the name of a resource's property, and whether the\n resource will be recreated.

" + "smithy.api#documentation": "

The field that CloudFormation will change, such as the name of a resource's property, and whether the resource will be\n recreated.

" } }, "com.amazonaws.cloudformation#ResourceToImport": { @@ -10559,7 +10576,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of resource to import into your stack, such as AWS::S3::Bucket. For a list of supported\n resource types, see Resources that support import\n operations in the CloudFormation User Guide.

", + "smithy.api#documentation": "

The type of resource to import into your stack, such as AWS::S3::Bucket. For a list of supported\n resource types, see Resources that support import\n operations in the CloudFormation User Guide.

", "smithy.api#required": {} } }, @@ -10575,7 +10592,7 @@ "target": "com.amazonaws.cloudformation#ResourceIdentifierProperties", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A key-value pair that identifies the target resource. The key is an identifier property (for example,\n BucketName for AWS::S3::Bucket resources) and the value is the actual property value (for\n example, MyS3Bucket).

", + "smithy.api#documentation": "

A key-value pair that identifies the target resource. The key is an identifier property (for example,\n BucketName for AWS::S3::Bucket resources) and the value is the actual property value (for\n example, MyS3Bucket).

", "smithy.api#required": {} } } @@ -10713,7 +10730,7 @@ "MonitoringTimeInMinutes": { "target": "com.amazonaws.cloudformation#MonitoringTimeInMinutes", "traits": { - "smithy.api#documentation": "

The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers\n after the stack creation or update operation deploys all necessary resources.

\n

The default is 0 minutes.

\n

If you specify a monitoring period but don't specify any rollback triggers, CloudFormation still waits\n the specified period of time before cleaning up old resources after update operations. You can use this monitoring\n period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

\n

If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers\n during stack creation and update operations. Then, for update operations, it begins disposing of old resources\n immediately once the operation completes.

" + "smithy.api#documentation": "

The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack\n creation or update operation deploys all necessary resources.

\n

The default is 0 minutes.

\n

If you specify a monitoring period but don't specify any rollback triggers, CloudFormation still waits the specified\n period of time before cleaning up old resources after update operations. You can use this monitoring period to\n perform any manual stack validation desired, and manually cancel the stack creation or update (using \n CancelUpdateStack\n , for example) as necessary.

\n

If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack\n creation and update operations. Then, for update operations, it begins disposing of old resources immediately once\n the operation completes.

" } } }, @@ -10735,7 +10752,7 @@ } ], "traits": { - "smithy.api#documentation": "

When specifying RollbackStack, you preserve the state of previously provisioned resources when an\n operation fails. You can check the status of the stack through the DescribeStacks operation.

\n

Rolls back the specified stack to the last known stable state from CREATE_FAILED or\n UPDATE_FAILED stack statuses.

\n

This operation will delete a stack if it doesn't contain a last known stable state. A last known stable state\n includes any status in a *_COMPLETE. This includes the following stack statuses.

\n
    \n
  • \n

    \n CREATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_ROLLBACK_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_ROLLBACK_COMPLETE\n

    \n
  • \n
" + "smithy.api#documentation": "

When specifying RollbackStack, you preserve the state of previously provisioned resources when an\n operation fails. You can check the status of the stack through the DescribeStacks operation.

\n

Rolls back the specified stack to the last known stable state from CREATE_FAILED or\n UPDATE_FAILED stack statuses.

\n

This operation will delete a stack if it doesn't contain a last known stable state. A last known stable state\n includes any status in a *_COMPLETE. This includes the following stack statuses.

\n
    \n
  • \n

    \n CREATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_ROLLBACK_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_ROLLBACK_COMPLETE\n

    \n
  • \n
" } }, "com.amazonaws.cloudformation#RollbackStackInput": { @@ -10764,7 +10781,7 @@ "RetainExceptOnCreate": { "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", "traits": { - "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes newly\n created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes\n newly created resources marked with a deletion policy of Retain.

\n

Default: false\n

" } } }, @@ -10801,7 +10818,7 @@ "target": "com.amazonaws.cloudformation#Type", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The resource type of the rollback trigger. Specify either AWS::CloudWatch::Alarm or AWS::CloudWatch::CompositeAlarm resource types.

", + "smithy.api#documentation": "

The resource type of the rollback trigger. Specify either \n AWS::CloudWatch::Alarm\n or \n AWS::CloudWatch::CompositeAlarm\n resource types.

", "smithy.api#required": {} } } @@ -10847,7 +10864,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types In the CloudFormation User Guide\n

" + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n Resource type support In the CloudFormation User Guide\n

" } }, "ResourceIdentifier": { @@ -10874,7 +10891,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types In the CloudFormation User Guide\n

", + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see\n IaC\n generator supported resource types In the CloudFormation User Guide.

", "smithy.api#required": {} } }, @@ -10941,7 +10958,7 @@ "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in\n an Amazon S3 bucket in the same Amazon Web Services Region as the stack. You can specify either the\n StackPolicyBody or the StackPolicyURL parameter, but not both.

" + "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in\n an Amazon S3 bucket in the same Amazon Web Services Region as the stack. The location for an Amazon S3 bucket must\n start with https://. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" } } }, @@ -10967,7 +10984,7 @@ } ], "traits": { - "smithy.api#documentation": "

Specifies the configuration data for a registered CloudFormation extension, in the given account and\n Region.

\n

To view the current configuration data for an extension, refer to the ConfigurationSchema element\n of DescribeType. For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

\n \n

It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such\n as third-party credentials. For more details on dynamic references, see Using\n dynamic references to specify template values in the CloudFormation User\n Guide.

\n
" + "smithy.api#documentation": "

Specifies the configuration data for a registered CloudFormation extension, in the given account and Region.

\n

To view the current configuration data for an extension, refer to the ConfigurationSchema element\n of \n DescribeType\n . For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

\n \n

It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such\n as third-party credentials. For more details on dynamic references, see Using\n dynamic references to specify template values in the CloudFormation User Guide.

\n
" } }, "com.amazonaws.cloudformation#SetTypeConfigurationInput": { @@ -10976,14 +10993,14 @@ "TypeArn": { "target": "com.amazonaws.cloudformation#TypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you activate the type in this account and\n Region. For private extensions, this will be the ARN assigned when you register the type in this account and\n Region.

\n

Do not include the extension versions suffix at the end of the ARN. You can set the configuration for an\n extension, but not for a specific extension version.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the \n ActivateType\n API operation\n in this account and Region. For private extensions, this will be the ARN assigned when you call the \n RegisterType\n API operation in this account and Region.

\n

Do not include the extension versions suffix at the end of the ARN. You can set the configuration for an\n extension, but not for a specific extension version.

" } }, "Configuration": { "target": "com.amazonaws.cloudformation#TypeConfiguration", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The configuration data for the extension, in this account and Region.

\n

The configuration data must be formatted as JSON, and validate against the schema returned in the\n ConfigurationSchema response element of DescribeType. For more information, see\n Defining\n account-level configuration data for an extension in the CloudFormation CLI User\n Guide.

", + "smithy.api#documentation": "

The configuration data for the extension, in this account and Region.

\n

The configuration data must be formatted as JSON, and validate against the schema returned in the\n ConfigurationSchema response element of \n DescribeType\n . For more information, see\n Defining\n account-level configuration data for an extension in the CloudFormation CLI User\n Guide.

", "smithy.api#required": {} } }, @@ -11093,7 +11110,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "

Sends a signal to the specified resource with a success or failure status. You can use the\n SignalResource operation in conjunction with a creation policy or update policy. CloudFormation\n doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout\n period is exceeded. The SignalResource operation is useful in cases where you want to send signals from\n anywhere other than an Amazon EC2 instance.

" + "smithy.api#documentation": "

Sends a signal to the specified resource with a success or failure status. You can use the\n SignalResource operation in conjunction with a creation policy or update policy. CloudFormation doesn't\n proceed with a stack creation or update until resources receive the required number of signals or the timeout period\n is exceeded. The SignalResource operation is useful in cases where you want to send signals from\n anywhere other than an Amazon EC2 instance.

" } }, "com.amazonaws.cloudformation#SignalResourceInput": { @@ -11127,7 +11144,7 @@ "target": "com.amazonaws.cloudformation#ResourceSignalStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The status of the signal, which is either success or failure. A failure signal causes CloudFormation to\n immediately fail the stack creation or update.

", + "smithy.api#documentation": "

The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately\n fail the stack creation or update.

", "smithy.api#required": {} } } @@ -11195,7 +11212,7 @@ "RollbackConfiguration": { "target": "com.amazonaws.cloudformation#RollbackConfiguration", "traits": { - "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for\n the specified monitoring period afterwards.

" + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified\n monitoring period afterwards.

" } }, "StackStatus": { @@ -11245,7 +11262,7 @@ "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that's associated with the\n stack. During a stack operation, CloudFormation uses this role's credentials to make calls on your behalf.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that's associated with the stack.\n During a stack operation, CloudFormation uses this role's credentials to make calls on your behalf.

" } }, "Tags": { @@ -11281,7 +11298,13 @@ "RetainExceptOnCreate": { "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", "traits": { - "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes newly\n created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes\n newly created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + } + }, + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#DetailedStatus", + "traits": { + "smithy.api#documentation": "

The detailed status of the resource or stack. If CONFIGURATION_COMPLETE is present, the resource or\n resource configuration phase has completed and the stabilization of the resources is in progress. The stack sets\n CONFIGURATION_COMPLETE when all of the resources in the stack have reached that event. For more\n information, see CloudFormation stack deployment in\n the CloudFormation User Guide.

" } } }, @@ -11439,7 +11462,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.)

" + "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.)

" } }, "Timestamp": { @@ -11471,7 +11494,7 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The token passed to the operation that generated this event.

\n

All events triggered by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

The token passed to the operation that generated this event.

\n

All events triggered by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } }, "HookType": { @@ -11503,6 +11526,12 @@ "traits": { "smithy.api#documentation": "

Specify the hook failure mode for non-compliant resources in the followings ways.

\n
    \n
  • \n

    \n FAIL Stops provisioning resources.

    \n
  • \n
  • \n

    \n WARN Allows provisioning to continue with a warning message.

    \n
  • \n
" } + }, + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#DetailedStatus", + "traits": { + "smithy.api#documentation": "

An optional field containing information about the detailed status of the stack event.

\n
    \n
  • \n

    \n CONFIGURATION_COMPLETE - all of the resources in the stack have reached that event. For more\n information, see CloudFormation stack deployment\n in the CloudFormation User Guide.

    \n
  • \n
\n
    \n
  • \n

    \n VALIDATION_FAILED - template validation failed because of invalid properties in the template. The\n ResourceStatusReason field shows what properties are defined incorrectly.

    \n
  • \n
" + } } }, "traits": { @@ -11552,7 +11581,7 @@ "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack\n instance is associated with.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is associated\n with.

" } }, "StackId": { @@ -11564,13 +11593,13 @@ "ParameterOverrides": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of parameters from the stack set template whose values have been overridden in this\n stack instance.

" + "smithy.api#documentation": "

A list of parameters from the stack set template whose values have been overridden in this stack\n instance.

" } }, "Status": { "target": "com.amazonaws.cloudformation#StackInstanceStatus", "traits": { - "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack\n set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the stack set\n because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or\n UpdateStackSet operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet\n operation that failed or was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the stack set.

    \n
  • \n
" + "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an\n unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might\n need to perform a DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually. INOPERABLE can be\n returned here when the cause is a failed import. If it's due to a failed import, the operation can be retried once\n the failures are fixed. To see if this is due to a failed import, look at the DetailedStatus member in\n the StackInstanceSummary member that is a peer to this Status\n member.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the stack set because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or UpdateStackSet\n operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet operation that failed or\n was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the stack set.

    \n
  • \n
" } }, "StackInstanceStatus": { @@ -11588,19 +11617,19 @@ "OrganizationalUnitId": { "target": "com.amazonaws.cloudformation#OrganizationalUnitId", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for\n \n DeploymentTargets\n .

" } }, "DriftStatus": { "target": "com.amazonaws.cloudformation#StackDriftStatus", "traits": { - "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and\n parameter configuration of the stack set to which it belongs.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter\n configuration of the stack set to which it belongs. A stack instance is considered to have\n drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its\n expected stack set configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected stack\n set configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and parameter\n configuration of the stack set to which it belongs.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter configuration of the stack\n set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the\n associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its expected stack set\n configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected stack set\n configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" } }, "LastDriftCheckTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the\n stack instance. This value will be NULL for any stack instance on which drift\n detection hasn't yet been performed.

" + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be\n NULL for any stack instance on which drift detection hasn't yet been performed.

" } }, "LastOperationId": { @@ -11611,7 +11640,7 @@ } }, "traits": { - "smithy.api#documentation": "

An CloudFormation stack, in a specific account and Region, that's part of a stack set\n operation. A stack instance is a reference to an attempted or actual stack in a given account\n within a given Region. A stack instance can exist without a stack—for example, if the stack\n couldn't be created for some reason. A stack instance is associated with only one stack set. Each\n stack instance contains the ID of its associated stack set, in addition to the ID of the actual\n stack and the stack status.

" + "smithy.api#documentation": "

An CloudFormation stack, in a specific account and Region, that's part of a stack set operation. A stack instance is a\n reference to an attempted or actual stack in a given account within a given Region. A stack instance can exist\n without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with\n only one stack set. Each stack instance contains the ID of its associated stack set, in addition to the ID of the\n actual stack and the stack status.

" } }, "com.amazonaws.cloudformation#StackInstanceComprehensiveStatus": { @@ -11620,7 +11649,7 @@ "DetailedStatus": { "target": "com.amazonaws.cloudformation#StackInstanceDetailedStatus", "traits": { - "smithy.api#documentation": "
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been\n canceled. This is either because a user has stopped the stack set operation, or because the\n failure tolerance of the stack set operation has been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed. If the\n stack set operation fails in enough accounts within a Region, the failure tolerance for the\n stack set operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to\n start.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in\n progress.

    \n
  • \n
  • \n

    \n SKIPPED_SUSPENDED_ACCOUNT: The operation in the specified account and Region\n has been skipped because the account was suspended at the time of the operation.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed\n successfully.

    \n
  • \n
" + "smithy.api#documentation": "
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been canceled. This is either\n because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has\n been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed. If the stack set operation\n fails in enough accounts within a Region, the failure tolerance for the stack set operation as a whole might be\n exceeded.

    \n
  • \n
  • \n

    \n FAILED_IMPORT: The import of the stack instance in the specified account and Region failed and\n left the stack in an unstable state. Once the issues causing the failure are fixed, the import operation can be\n retried. If enough stack set operations fail in enough accounts within a Region, the failure tolerance for the\n stack set operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an\n unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might\n need to perform a DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to start.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in progress.

    \n
  • \n
  • \n

    \n SKIPPED_SUSPENDED_ACCOUNT: The operation in the specified account and Region has been skipped\n because the account was suspended at the time of the operation.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed successfully.

    \n
  • \n
" } } }, @@ -11672,6 +11701,12 @@ "traits": { "smithy.api#enumValue": "SKIPPED_SUSPENDED_ACCOUNT" } + }, + "FAILED_IMPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED_IMPORT" + } } } }, @@ -11785,34 +11820,34 @@ "PhysicalResourceId": { "target": "com.amazonaws.cloudformation#PhysicalResourceId", "traits": { - "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

" + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by CloudFormation.

" } }, "PhysicalResourceIdContext": { "target": "com.amazonaws.cloudformation#PhysicalResourceIdContext", "traits": { - "smithy.api#documentation": "

Context information that enables CloudFormation to uniquely identify a resource. CloudFormation uses\n context key-value pairs in cases where a resource's logical and physical IDs aren't enough\n to uniquely identify that resource. Each context key-value pair specifies a unique resource\n that contains the targeted resource.

" + "smithy.api#documentation": "

Context information that enables CloudFormation to uniquely identify a resource. CloudFormation uses context key-value pairs in\n cases where a resource's logical and physical IDs aren't enough to uniquely identify that resource. Each context\n key-value pair specifies a unique resource that contains the targeted resource.

" } }, "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services\n Resource Types Reference in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.

", "smithy.api#required": {} } }, "PropertyDifferences": { "target": "com.amazonaws.cloudformation#PropertyDifferences", "traits": { - "smithy.api#documentation": "

Status of the actual configuration of the resource compared to its expected\n configuration. These will be present only for resources whose\n StackInstanceResourceDriftStatus is MODIFIED.

" + "smithy.api#documentation": "

Status of the actual configuration of the resource compared to its expected configuration. These will be present\n only for resources whose StackInstanceResourceDriftStatus is MODIFIED.

" } }, "StackResourceDriftStatus": { "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The drift status of the resource in a stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in\n that the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected template\n values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
", + "smithy.api#documentation": "

The drift status of the resource in a stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in that the resource has\n been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected template values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected template configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -11826,7 +11861,7 @@ } }, "traits": { - "smithy.api#documentation": "

The structure containing summary information about resource drifts for a stack\n instance.

" + "smithy.api#documentation": "

The structure containing summary information about resource drifts for a stack instance.

" } }, "com.amazonaws.cloudformation#StackInstanceStatus": { @@ -11876,7 +11911,7 @@ "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack\n instance is associated with.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is associated\n with.

" } }, "StackId": { @@ -11888,7 +11923,7 @@ "Status": { "target": "com.amazonaws.cloudformation#StackInstanceStatus", "traits": { - "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack\n set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the stack set\n because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or\n UpdateStackSet operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet\n operation that failed or was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the stack set.

    \n
  • \n
" + "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an\n unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might\n need to perform a DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually. INOPERABLE can be\n returned here when the cause is a failed import. If it's due to a failed import, the operation can be retried once\n the failures are fixed. To see if this is due to a failed import, call the DescribeStackInstance\n API operation, look at the DetailedStatus member returned in the StackInstanceSummary\n member.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the stack set because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or UpdateStackSet\n operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet operation that failed or\n was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the stack set.

    \n
  • \n
" } }, "StatusReason": { @@ -11906,19 +11941,19 @@ "OrganizationalUnitId": { "target": "com.amazonaws.cloudformation#OrganizationalUnitId", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for\n \n DeploymentTargets\n .

" } }, "DriftStatus": { "target": "com.amazonaws.cloudformation#StackDriftStatus", "traits": { - "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and\n parameter configuration of the stack set to which it belongs.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter\n configuration of the stack set to which it belongs. A stack instance is considered to have\n drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its\n expected stack set configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected stack\n set configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and parameter\n configuration of the stack set to which it belongs.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter configuration of the stack\n set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the\n associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its expected stack set\n configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected stack set\n configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" } }, "LastDriftCheckTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the\n stack instance. This value will be NULL for any stack instance on which drift\n detection hasn't yet been performed.

" + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be\n NULL for any stack instance on which drift detection hasn't yet been performed.

" } }, "LastOperationId": { @@ -12030,7 +12065,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.

", "smithy.api#required": {} } }, @@ -12112,7 +12147,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.

", + "smithy.api#documentation": "

Type of resource. For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.

", "smithy.api#required": {} } }, @@ -12248,7 +12283,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains the drift information for a resource that has been checked for drift. This includes actual and expected\n property values for resources in which CloudFormation has detected drift. Only resource properties explicitly defined in the\n stack template are checked for drift. For more information, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Resources that don't currently support drift detection can't be checked. For a list of resources that support\n drift detection, see Resources that Support Drift\n Detection.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection.

" + "smithy.api#documentation": "

Contains the drift information for a resource that has been checked for drift. This includes actual and expected\n property values for resources in which CloudFormation has detected drift. Only resource properties explicitly defined in the\n stack template are checked for drift. For more information, see Detecting Unregulated Configuration Changes to\n Stacks and Resources.

\n

Resources that don't currently support drift detection can't be checked. For a list of resources that support\n drift detection, see Resources that Support Drift\n Detection.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection.

" } }, "com.amazonaws.cloudformation#StackResourceDriftInformation": { @@ -12258,7 +12293,7 @@ "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation has not checked if the resource differs from its expected\n configuration.

    \n

    Any resources that do not currently support drift detection have a status of NOT_CHECKED. For\n more information, see Resources that Support Drift\n Detection.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected configuration.

    \n
  • \n
", + "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation has not checked if the resource differs from its expected\n configuration.

    \n

    Any resources that do not currently support drift detection have a status of NOT_CHECKED. For\n more information, see Resources that Support Drift\n Detection.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected configuration.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -12270,7 +12305,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" + "smithy.api#documentation": "

Contains information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" } }, "com.amazonaws.cloudformation#StackResourceDriftInformationSummary": { @@ -12280,7 +12315,7 @@ "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the resource differs from its expected configuration.

    \n

    Any resources that don't currently support drift detection have a status of NOT_CHECKED. For more\n information, see Resources that Support Drift\n Detection. If you performed an ContinueUpdateRollback operation on a stack, any\n resources included in ResourcesToSkip will also have a status of NOT_CHECKED. For more\n information about skipping resources during rollback operations, see Continue Rolling\n Back an Update in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected configuration.

    \n
  • \n
", + "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the resource differs from its expected configuration.

    \n

    Any resources that don't currently support drift detection have a status of NOT_CHECKED. For more\n information, see Resources that Support Drift\n Detection. If you performed an ContinueUpdateRollback operation on a stack, any resources\n included in ResourcesToSkip will also have a status of NOT_CHECKED. For more information\n about skipping resources during rollback operations, see Continue Rolling\n Back an Update in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected configuration.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -12292,7 +12327,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summarizes information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" + "smithy.api#documentation": "

Summarizes information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" } }, "com.amazonaws.cloudformation#StackResourceDriftStatus": { @@ -12369,7 +12404,7 @@ "target": "com.amazonaws.cloudformation#ResourceType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.)

", + "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types\n Reference in the CloudFormation User Guide.)

", "smithy.api#required": {} } }, @@ -12436,7 +12471,7 @@ "Description": { "target": "com.amazonaws.cloudformation#Description", "traits": { - "smithy.api#documentation": "

A description of the stack set that you specify when the stack set is created or\n updated.

" + "smithy.api#documentation": "

A description of the stack set that you specify when the stack set is created or updated.

" } }, "Status": { @@ -12448,7 +12483,7 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

The structure that contains the body of the template that was used to create or update the\n stack set.

" + "smithy.api#documentation": "

The structure that contains the body of the template that was used to create or update the stack set.

" } }, "Parameters": { @@ -12460,13 +12495,13 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

The capabilities that are allowed in the stack set. Some stack set templates might include\n resources that can affect permissions in your Amazon Web Services account—for example, by creating\n new Identity and Access Management (IAM) users. For more information, see Acknowledging\n IAM Resources in CloudFormation Templates.\n

" + "smithy.api#documentation": "

The capabilities that are allowed in the stack set. Some stack set templates might include resources that can\n affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see Acknowledging IAM Resources in CloudFormation\n Templates.\n

" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

A list of tags that specify information about the stack set. A maximum number of 50 tags can\n be specified.

" + "smithy.api#documentation": "

A list of tags that specify information about the stack set. A maximum number of 50 tags can be\n specified.

" } }, "StackSetARN": { @@ -12478,54 +12513,54 @@ "AdministrationRoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to create or update the\n stack set.

\n

Use customized administrator roles to control which users or groups can manage specific\n stack sets within the same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set Operations in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.

\n

Use customized administrator roles to control which users or groups can manage specific stack sets within the\n same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set\n Operations in the CloudFormation User Guide.

" } }, "ExecutionRoleName": { "target": "com.amazonaws.cloudformation#ExecutionRoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM execution role used to create or update the stack\n set.

\n

Use customized execution roles to control which stack resources users and groups can include\n in their stack sets.

" + "smithy.api#documentation": "

The name of the IAM execution role used to create or update the stack set.

\n

Use customized execution roles to control which stack resources users and groups can include in their stack\n sets.

" } }, "StackSetDriftDetectionDetails": { "target": "com.amazonaws.cloudformation#StackSetDriftDetectionDetails", "traits": { - "smithy.api#documentation": "

Detailed information about the drift status of the stack set.

\n

For stack sets, contains information about the last completed drift\n operation performed on the stack set. Information about drift operations currently in progress\n isn't included.

" + "smithy.api#documentation": "

Detailed information about the drift status of the stack set.

\n

For stack sets, contains information about the last completed drift operation performed on\n the stack set. Information about drift operations currently in progress isn't included.

" } }, "AutoDeployment": { "target": "com.amazonaws.cloudformation#AutoDeployment", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit\n (OU).

" + "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations\n accounts that are added to a target organization or organizational unit (OU).

" } }, "PermissionModel": { "target": "com.amazonaws.cloudformation#PermissionModels", "traits": { - "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are\n created.

\n " + "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created.

\n " } }, "OrganizationalUnitIds": { "target": "com.amazonaws.cloudformation#OrganizationalUnitIdList", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for\n \n DeploymentTargets\n .

" } }, "ManagedExecution": { "target": "com.amazonaws.cloudformation#ManagedExecution", "traits": { - "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting\n operations.

" } }, "Regions": { "target": "com.amazonaws.cloudformation#RegionList", "traits": { - "smithy.api#documentation": "

Returns a list of all Amazon Web Services Regions the given StackSet has stack instances\n deployed in. The Amazon Web Services Regions list output is in no particular order.

" + "smithy.api#documentation": "

Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.

" } } }, "traits": { - "smithy.api#documentation": "

A structure that contains information about a stack set. A stack set enables you to\n provision stacks into Amazon Web Services accounts and across Regions by using a single CloudFormation template. In the stack set, you specify the template to use, in addition to any\n parameters and capabilities that the template requires.

" + "smithy.api#documentation": "

A structure that contains information about a stack set. A stack set enables you to provision stacks into\n Amazon Web Services accounts and across Regions by using a single CloudFormation template. In the stack set, you specify\n the template to use, in addition to any parameters and capabilities that the template requires.

" } }, "com.amazonaws.cloudformation#StackSetARN": { @@ -12537,19 +12572,19 @@ "DriftStatus": { "target": "com.amazonaws.cloudformation#StackSetDriftStatus", "traits": { - "smithy.api#documentation": "

Status of the stack set's actual configuration compared to its expected template and\n parameter configuration. A stack set is considered to have drifted if one or more of its stack\n instances have drifted from their expected template and parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the stack set stack\n differs from the expected template and parameter configuration. A stack instance is considered\n to have drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the stack set for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All of the stack instances belonging to the stack set stack match\n from the expected template and parameter configuration.

    \n
  • \n
" + "smithy.api#documentation": "

Status of the stack set's actual configuration compared to its expected template and parameter configuration. A\n stack set is considered to have drifted if one or more of its stack instances have drifted from their expected\n template and parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the stack set stack differs from the\n expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the\n resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the stack set for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All of the stack instances belonging to the stack set stack match from the expected\n template and parameter configuration.

    \n
  • \n
" } }, "DriftDetectionStatus": { "target": "com.amazonaws.cloudformation#StackSetDriftDetectionStatus", "traits": { - "smithy.api#documentation": "

The status of the stack set drift detection operation.

\n
    \n
  • \n

    \n COMPLETED: The drift detection operation completed without failing on any\n stack instances.

    \n
  • \n
  • \n

    \n FAILED: The drift detection operation exceeded the specified failure\n tolerance.

    \n
  • \n
  • \n

    \n PARTIAL_SUCCESS: The drift detection operation completed without exceeding\n the failure tolerance for the operation.

    \n
  • \n
  • \n

    \n IN_PROGRESS: The drift detection operation is currently being\n performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the drift detection operation.

    \n
  • \n
" + "smithy.api#documentation": "

The status of the stack set drift detection operation.

\n
    \n
  • \n

    \n COMPLETED: The drift detection operation completed without failing on any stack instances.

    \n
  • \n
  • \n

    \n FAILED: The drift detection operation exceeded the specified failure tolerance.

    \n
  • \n
  • \n

    \n PARTIAL_SUCCESS: The drift detection operation completed without exceeding the failure tolerance\n for the operation.

    \n
  • \n
  • \n

    \n IN_PROGRESS: The drift detection operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the drift detection operation.

    \n
  • \n
" } }, "LastDriftCheckTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the\n stack set. This value will be NULL for any stack set on which drift detection hasn't\n yet been performed.

" + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be\n NULL for any stack set on which drift detection hasn't yet been performed.

" } }, "TotalStackInstancesCount": { @@ -12561,13 +12596,13 @@ "DriftedStackInstancesCount": { "target": "com.amazonaws.cloudformation#DriftedStackInstancesCount", "traits": { - "smithy.api#documentation": "

The number of stack instances that have drifted from the expected template and parameter\n configuration of the stack set. A stack instance is considered to have drifted if one or more of\n the resources in the associated stack don't match their expected configuration.

" + "smithy.api#documentation": "

The number of stack instances that have drifted from the expected template and parameter configuration of the\n stack set. A stack instance is considered to have drifted if one or more of the resources in the associated stack\n don't match their expected configuration.

" } }, "InSyncStackInstancesCount": { "target": "com.amazonaws.cloudformation#InSyncStackInstancesCount", "traits": { - "smithy.api#documentation": "

The number of stack instances which match the expected template and parameter configuration\n of the stack set.

" + "smithy.api#documentation": "

The number of stack instances which match the expected template and parameter configuration of the stack\n set.

" } }, "InProgressStackInstancesCount": { @@ -12584,7 +12619,7 @@ } }, "traits": { - "smithy.api#documentation": "

Detailed information about the drift status of the stack set.

\n

For stack sets, contains information about the last completed drift\n operation performed on the stack set. Information about drift operations in-progress isn't\n included.

\n

For stack set operations, includes information about drift operations currently being\n performed on the stack set.

\n

For more information, see Detecting unmanaged changes in\n stack sets in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Detailed information about the drift status of the stack set.

\n

For stack sets, contains information about the last completed drift operation performed on\n the stack set. Information about drift operations in-progress isn't included.

\n

For stack set operations, includes information about drift operations currently being performed on the stack\n set.

\n

For more information, see Detecting unmanaged changes in stack sets in\n the CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#StackSetDriftDetectionStatus": { @@ -12709,13 +12744,13 @@ "Action": { "target": "com.amazonaws.cloudformation#StackSetOperationAction", "traits": { - "smithy.api#documentation": "

The type of stack set operation: CREATE, UPDATE, or\n DELETE. Create and delete operations affect only the specified stack set instances\n that are associated with the specified stack set. Update operations affect both the stack set\n itself, in addition to all associated stack set instances.

" + "smithy.api#documentation": "

The type of stack set operation: CREATE, UPDATE, or DELETE. Create and\n delete operations affect only the specified stack set instances that are associated with the specified stack set.\n Update operations affect both the stack set itself, in addition to all associated stack set\n instances.

" } }, "Status": { "target": "com.amazonaws.cloudformation#StackSetOperationStatus", "traits": { - "smithy.api#documentation": "

The status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure\n tolerance value that you've set for an operation is applied for each Region during stack create\n and update operations. If the number of failed stacks within a Region exceeds the failure\n tolerance, the status of the operation in the Region is set to FAILED. This in\n turn sets the status of the operation as a whole to FAILED, and CloudFormation\n cancels the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require\n a sequence of operations, the operation is queued to be performed. For more information, see\n the stack\n set operation status codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user\n request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified\n stacks without exceeding the failure tolerance for the operation.

    \n
  • \n
" + "smithy.api#documentation": "

The status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that\n you've set for an operation is applied for each Region during stack create and update operations. If the number of\n failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to\n FAILED. This in turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of\n operations, the operation is queued to be performed. For more information, see the stack set operation status\n codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified stacks without\n exceeding the failure tolerance for the operation.

    \n
  • \n
" } }, "OperationPreferences": { @@ -12727,43 +12762,43 @@ "RetainStacks": { "target": "com.amazonaws.cloudformation#RetainStacksNullable", "traits": { - "smithy.api#documentation": "

For stack set operations of action type DELETE, specifies whether to remove the\n stack instances from the specified stack set, but doesn't delete the stacks. You can't\n re-associate a retained stack, or add an existing, saved stack to a new stack set.

" + "smithy.api#documentation": "

For stack set operations of action type DELETE, specifies whether to remove the stack instances\n from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an\n existing, saved stack to a new stack set.

" } }, "AdministrationRoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to perform this stack set\n operation.

\n

Use customized administrator roles to control which users or groups can manage specific\n stack sets within the same administrator account. For more information, see Define\n Permissions for Multiple Administrators in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.

\n

Use customized administrator roles to control which users or groups can manage specific stack sets within the\n same administrator account. For more information, see Define Permissions for Multiple\n Administrators in the CloudFormation User Guide.

" } }, "ExecutionRoleName": { "target": "com.amazonaws.cloudformation#ExecutionRoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM execution role used to create or update the stack\n set.

\n

Use customized execution roles to control which stack resources users and groups can include\n in their stack sets.

" + "smithy.api#documentation": "

The name of the IAM execution role used to create or update the stack set.

\n

Use customized execution roles to control which stack resources users and groups can include in their stack\n sets.

" } }, "CreationTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the stack\n set operation might differ from the creation time of the individual stacks themselves. This is\n because CloudFormation needs to perform preparatory work for the operation, such as\n dispatching the work to the requested Regions, before actually creating the first stacks.

" + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the stack set operation might\n differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory\n work for the operation, such as dispatching the work to the requested Regions, before actually creating the first\n stacks.

" } }, "EndTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the stack set operation ended, across all accounts and Regions specified.\n Note that this doesn't necessarily mean that the stack set operation was successful, or even\n attempted, in each account or Region.

" + "smithy.api#documentation": "

The time at which the stack set operation ended, across all accounts and Regions specified. Note that this\n doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or\n Region.

" } }, "DeploymentTargets": { "target": "com.amazonaws.cloudformation#DeploymentTargets", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts affected by the stack\n operation.

" + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts affected by the stack operation.

" } }, "StackSetDriftDetectionDetails": { "target": "com.amazonaws.cloudformation#StackSetDriftDetectionDetails", "traits": { - "smithy.api#documentation": "

Detailed information about the drift status of the stack set. This includes information\n about drift operations currently being performed on the stack set.

\n

This information will only be present for stack set operations whose Action\n type is DETECT_DRIFT.

\n

For more information, see Detecting Unmanaged Changes in\n Stack Sets in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Detailed information about the drift status of the stack set. This includes information about drift operations\n currently being performed on the stack set.

\n

This information will only be present for stack set operations whose Action type is\n DETECT_DRIFT.

\n

For more information, see Detecting Unmanaged Changes in Stack Sets in\n the CloudFormation User Guide.

" } }, "StatusReason": { @@ -12818,7 +12853,7 @@ "RegionConcurrencyType": { "target": "com.amazonaws.cloudformation#RegionConcurrencyType", "traits": { - "smithy.api#documentation": "

The concurrency type of deploying StackSets operations in Regions, could be in parallel or\n one Region at a time.

" + "smithy.api#documentation": "

The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a\n time.

" } }, "RegionOrder": { @@ -12830,36 +12865,36 @@ "FailureToleranceCount": { "target": "com.amazonaws.cloudformation#FailureToleranceCount", "traits": { - "smithy.api#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,\n CloudFormation doesn't attempt the operation in any subsequent Regions.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage (but not both).

\n

By default, 0 is specified.

" + "smithy.api#documentation": "

The number of accounts, per Region, for which this operation can fail before CloudFormation stops the operation in\n that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent\n Regions.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage (but not both).

\n

By default, 0 is specified.

" } }, "FailureTolerancePercentage": { "target": "com.amazonaws.cloudformation#FailureTolerancePercentage", "traits": { - "smithy.api#documentation": "

The percentage of accounts, per Region, for which this stack operation can fail before\n CloudFormation stops the operation in that Region. If the operation is stopped in a Region,\n CloudFormation doesn't attempt the operation in any subsequent Regions.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" + "smithy.api#documentation": "

The percentage of accounts, per Region, for which this stack operation can fail before CloudFormation stops the operation\n in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent\n Regions.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds\n down to the next whole number.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" } }, "MaxConcurrentCount": { "target": "com.amazonaws.cloudformation#MaxConcurrentCount", "traits": { - "smithy.api#documentation": "

The maximum number of accounts in which to perform this operation at one time. This can\n depend on the value of FailureToleranceCount depending on your\n ConcurrencyMode. MaxConcurrentCount is at most one more than the\n FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

\n

Note that this setting lets you specify the maximum for operations. For\n large deployments, under certain circumstances the actual number of accounts acted upon\n concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + "smithy.api#documentation": "

The maximum number of accounts in which to perform this operation at one time. This can depend on the value of\n FailureToleranceCount depending on your ConcurrencyMode. MaxConcurrentCount is\n at most one more than the FailureToleranceCount if you're using\n STRICT_FAILURE_TOLERANCE.

\n

Note that this setting lets you specify the maximum for operations. For large deployments,\n under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service\n throttling.

\n

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,\n but not both.

\n

By default, 1 is specified.

" } }, "MaxConcurrentPercentage": { "target": "com.amazonaws.cloudformation#MaxConcurrentPercentage", "traits": { - "smithy.api#documentation": "

The maximum percentage of accounts in which to perform this operation at one time.

\n

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\n down would result is zero. In this case, CloudFormation sets the number as one\n instead.

\n

Note that this setting lets you specify the maximum for operations. For\n large deployments, under certain circumstances the actual number of accounts acted upon\n concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + "smithy.api#documentation": "

The maximum percentage of accounts in which to perform this operation at one time.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next\n 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.

\n

Note that this setting lets you specify the maximum for operations. For large deployments,\n under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service\n throttling.

\n

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,\n but not both.

\n

By default, 1 is specified.

" } }, "ConcurrencyMode": { "target": "com.amazonaws.cloudformation#ConcurrencyMode", "traits": { - "smithy.api#documentation": "

Specifies how the concurrency level behaves during the operation execution.

\n
    \n
  • \n

    \n STRICT_FAILURE_TOLERANCE: This option dynamically lowers the concurrency\n level to ensure the number of failed accounts never exceeds the value of\n FailureToleranceCount +1. The initial actual concurrency is set to the lower of\n either the value of the MaxConcurrentCount, or the value of\n MaxConcurrentCount +1. The actual concurrency is then reduced proportionally by\n the number of failures. This is the default behavior.

    \n

    If failure tolerance or Maximum concurrent accounts are set to percentages, the behavior\n is similar.

    \n
  • \n
  • \n

    \n SOFT_FAILURE_TOLERANCE: This option decouples\n FailureToleranceCount from the actual concurrency. This allows stack set\n operations to run at the concurrency level set by the MaxConcurrentCount value, or\n MaxConcurrentPercentage, regardless of the number of failures.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies how the concurrency level behaves during the operation execution.

\n
    \n
  • \n

    \n STRICT_FAILURE_TOLERANCE: This option dynamically lowers the concurrency level to ensure the\n number of failed accounts never exceeds the value of FailureToleranceCount +1. The initial actual\n concurrency is set to the lower of either the value of the MaxConcurrentCount, or the value of\n MaxConcurrentCount +1. The actual concurrency is then reduced proportionally by the number of\n failures. This is the default behavior.

    \n

    If failure tolerance or Maximum concurrent accounts are set to percentages, the behavior is similar.

    \n
  • \n
  • \n

    \n SOFT_FAILURE_TOLERANCE: This option decouples FailureToleranceCount from the actual\n concurrency. This allows stack set operations to run at the concurrency level set by the\n MaxConcurrentCount value, or MaxConcurrentPercentage, regardless of the number of\n failures.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set\n operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set\n operation options.

" + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" } }, "com.amazonaws.cloudformation#StackSetOperationResultStatus": { @@ -12909,7 +12944,7 @@ "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account for this operation\n result.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account for this operation result.

" } }, "Region": { @@ -12921,7 +12956,7 @@ "Status": { "target": "com.amazonaws.cloudformation#StackSetOperationResultStatus", "traits": { - "smithy.api#documentation": "

The result status of the stack set operation for the given account in the given\n Region.

\n
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been\n canceled. This is either because a user has stopped the stack set operation, or because the\n failure tolerance of the stack set operation has been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed.

    \n

    If the stack set operation fails in enough accounts within a Region, the failure tolerance\n for the stack set operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in\n progress.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to\n start.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed\n successfully.

    \n
  • \n
" + "smithy.api#documentation": "

The result status of the stack set operation for the given account in the given Region.

\n
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been canceled. This is either\n because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has\n been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed.

    \n

    If the stack set operation fails in enough accounts within a Region, the failure tolerance for the stack set\n operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in progress.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to start.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed successfully.

    \n
  • \n
" } }, "StatusReason": { @@ -12933,18 +12968,18 @@ "AccountGateResult": { "target": "com.amazonaws.cloudformation#AccountGateResult", "traits": { - "smithy.api#documentation": "

The results of the account gate function CloudFormation invokes, if present, before\n proceeding with stack set operations in an account.

" + "smithy.api#documentation": "

The results of the account gate function CloudFormation invokes, if present, before proceeding with stack set operations\n in an account.

" } }, "OrganizationalUnitId": { "target": "com.amazonaws.cloudformation#OrganizationalUnitId", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for\n \n DeploymentTargets\n .

" } } }, "traits": { - "smithy.api#documentation": "

The structure that contains information about a specified operation's results for a given\n account in a given Region.

" + "smithy.api#documentation": "

The structure that contains information about a specified operation's results for a given account in a given\n Region.

" } }, "com.amazonaws.cloudformation#StackSetOperationStatus": { @@ -13023,25 +13058,25 @@ "Action": { "target": "com.amazonaws.cloudformation#StackSetOperationAction", "traits": { - "smithy.api#documentation": "

The type of operation: CREATE, UPDATE, or DELETE.\n Create and delete operations affect only the specified stack instances that are associated with\n the specified stack set. Update operations affect both the stack set itself and\n all associated stack set instances.

" + "smithy.api#documentation": "

The type of operation: CREATE, UPDATE, or DELETE. Create and delete\n operations affect only the specified stack instances that are associated with the specified stack set. Update\n operations affect both the stack set itself and all associated stack set instances.

" } }, "Status": { "target": "com.amazonaws.cloudformation#StackSetOperationStatus", "traits": { - "smithy.api#documentation": "

The overall status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure\n tolerance value that you've set for an operation is applied for each Region during stack create\n and update operations. If the number of failed stacks within a Region exceeds the failure\n tolerance, the status of the operation in the Region is set to FAILED. This in\n turn sets the status of the operation as a whole to FAILED, and CloudFormation\n cancels the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require\n a sequence of operations, the operation is queued to be performed. For more information, see\n the stack\n set operation status codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user\n request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified\n stacks without exceeding the failure tolerance for the operation.

    \n
  • \n
" + "smithy.api#documentation": "

The overall status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that\n you've set for an operation is applied for each Region during stack create and update operations. If the number of\n failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to\n FAILED. This in turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of\n operations, the operation is queued to be performed. For more information, see the stack set operation status\n codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified stacks without\n exceeding the failure tolerance for the operation.

    \n
  • \n
" } }, "CreationTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the stack\n set operation might differ from the creation time of the individual stacks themselves. This is\n because CloudFormation needs to perform preparatory work for the operation, such as\n dispatching the work to the requested Regions, before actually creating the first stacks.

" + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the stack set operation might\n differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory\n work for the operation, such as dispatching the work to the requested Regions, before actually creating the first\n stacks.

" } }, "EndTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the stack set operation ended, across all accounts and Regions specified.\n Note that this doesn't necessarily mean that the stack set operation was successful, or even\n attempted, in each account or Region.

" + "smithy.api#documentation": "

The time at which the stack set operation ended, across all accounts and Regions specified. Note that this\n doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or\n Region.

" } }, "StatusReason": { @@ -13059,7 +13094,7 @@ "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set\n operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set\n operation options.

" + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a stack set operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see Stack set operation\n options.

" } } }, @@ -13108,7 +13143,7 @@ "Description": { "target": "com.amazonaws.cloudformation#Description", "traits": { - "smithy.api#documentation": "

A description of the stack set that you specify when the stack set is created or\n updated.

" + "smithy.api#documentation": "

A description of the stack set that you specify when the stack set is created or updated.

" } }, "Status": { @@ -13120,31 +13155,31 @@ "AutoDeployment": { "target": "com.amazonaws.cloudformation#AutoDeployment", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organizational unit (OU).

" + "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations\n accounts that are added to a target organizational unit (OU).

" } }, "PermissionModel": { "target": "com.amazonaws.cloudformation#PermissionModels", "traits": { - "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are\n created.

\n " + "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created.

\n " } }, "DriftStatus": { "target": "com.amazonaws.cloudformation#StackDriftStatus", "traits": { - "smithy.api#documentation": "

Status of the stack set's actual configuration compared to its expected template and\n parameter configuration. A stack set is considered to have drifted if one or more of its stack\n instances have drifted from their expected template and parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the stack set stack\n differs from the expected template and parameter configuration. A stack instance is considered\n to have drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the stack set for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All the stack instances belonging to the stack set stack match from\n the expected template and parameter configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + "smithy.api#documentation": "

Status of the stack set's actual configuration compared to its expected template and parameter configuration. A\n stack set is considered to have drifted if one or more of its stack instances have drifted from their expected\n template and parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the stack set stack differs from the\n expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the\n resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the stack set for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All the stack instances belonging to the stack set stack match from the expected\n template and parameter configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" } }, "LastDriftCheckTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the\n stack set. This value will be NULL for any stack set on which drift detection hasn't\n yet been performed.

" + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be\n NULL for any stack set on which drift detection hasn't yet been performed.

" } }, "ManagedExecution": { "target": "com.amazonaws.cloudformation#ManagedExecution", "traits": { - "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting\n operations.

" } } }, @@ -13505,7 +13540,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops an in-progress operation on a stack set and its associated stack instances. StackSets\n will cancel all the unstarted stack instance deployments and wait for those are in-progress to\n complete.

" + "smithy.api#documentation": "

Stops an in-progress operation on a stack set and its associated stack instances. StackSets will cancel all the\n unstarted stack instance deployments and wait for those are in-progress to complete.

" } }, "com.amazonaws.cloudformation#StopStackSetOperationInput": { @@ -13530,7 +13565,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a member\n account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the\n management account. For more information, see Register a\n delegated administrator in the CloudFormation User\n Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -13567,7 +13602,7 @@ "target": "com.amazonaws.cloudformation#TagKey", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n Required. A string used to identify this tag. You can specify a maximum of 128 characters for a\n tag key. Tags owned by Amazon Web Services (Amazon Web Services) have the reserved prefix: aws:.

", + "smithy.api#documentation": "

\n Required. A string used to identify this tag. You can specify a maximum of 128 characters\n for a tag key. Tags owned by Amazon Web Services (Amazon Web Services) have the reserved prefix:\n aws:.

", "smithy.api#required": {} } }, @@ -13854,7 +13889,7 @@ } ], "traits": { - "smithy.api#documentation": "

Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry.

\n
    \n
  • \n

    For resource types, this includes passing all contracts tests defined for the type.

    \n
  • \n
  • \n

    For modules, this includes determining if the module's model meets all necessary requirements.

    \n
  • \n
\n

For more information, see Testing your public\n extension prior to publishing in the CloudFormation CLI User Guide.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in your\n account and Region for testing.

\n

To perform testing, CloudFormation assumes the execution role specified when the type was registered.\n For more information, see RegisterType.

\n

Once you've initiated testing on an extension using TestType, you can pass the returned\n TypeVersionArn into DescribeType to monitor the current test\n status and test status description for the extension.

\n

An extension must have a test status of PASSED before it can be published. For more information,\n see Publishing\n extensions to make them available for public use in the CloudFormation CLI User\n Guide.

", + "smithy.api#documentation": "

Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry.

\n
    \n
  • \n

    For resource types, this includes passing all contracts tests defined for the type.

    \n
  • \n
  • \n

    For modules, this includes determining if the module's model meets all necessary requirements.

    \n
  • \n
\n

For more information, see Testing your public\n extension prior to publishing in the CloudFormation CLI User Guide.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region\n for testing.

\n

To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more\n information, see \n RegisterType\n .

\n

Once you've initiated testing on an extension using TestType, you can pass the returned\n TypeVersionArn into \n DescribeType\n to monitor the current test\n status and test status description for the extension.

\n

An extension must have a test status of PASSED before it can be published. For more information,\n see Publishing\n extensions to make them available for public use in the CloudFormation CLI User\n Guide.

", "smithy.api#idempotent": {} } }, @@ -13882,13 +13917,13 @@ "VersionId": { "target": "com.amazonaws.cloudformation#TypeVersionId", "traits": { - "smithy.api#documentation": "

The version of the extension to test.

\n

You can specify the version id with either Arn, or with TypeName and\n Type.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in this\n account and Region for testing.

" + "smithy.api#documentation": "

The version of the extension to test.

\n

You can specify the version id with either Arn, or with TypeName and\n Type.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in this account and Region\n for testing.

" } }, "LogDeliveryBucket": { "target": "com.amazonaws.cloudformation#S3Bucket", "traits": { - "smithy.api#documentation": "

The S3 bucket to which CloudFormation delivers the contract test execution logs.

\n

CloudFormation delivers the logs by the time contract testing has completed and the extension has been\n assigned a test type status of PASSED or FAILED.

\n

The user calling TestType must be able to access items in the specified S3 bucket. Specifically,\n the user needs the following permissions:

\n
    \n
  • \n

    \n GetObject\n

    \n
  • \n
  • \n

    \n PutObject\n

    \n
  • \n
\n

For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the Amazon Web Services Identity and Access Management User Guide.

" + "smithy.api#documentation": "

The S3 bucket to which CloudFormation delivers the contract test execution logs.

\n

CloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a\n test type status of PASSED or FAILED.

\n

The user calling TestType must be able to access items in the specified S3 bucket. Specifically,\n the user needs the following permissions:

\n
    \n
  • \n

    \n GetObject\n

    \n
  • \n
  • \n

    \n PutObject\n

    \n
  • \n
\n

For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the Amazon Web Services Identity and Access Management User Guide.

" } } }, @@ -14060,19 +14095,19 @@ "Configuration": { "target": "com.amazonaws.cloudformation#TypeConfiguration", "traits": { - "smithy.api#documentation": "

A JSON string specifying the configuration data for the extension, in this account and Region.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns\n {}.

" + "smithy.api#documentation": "

A JSON string specifying the configuration data for the extension, in this account and Region.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns {}.

" } }, "LastUpdated": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

When the configuration data was last updated for this extension.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns\n null.

" + "smithy.api#documentation": "

When the configuration data was last updated for this extension.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns null.

" } }, "TypeArn": { "target": "com.amazonaws.cloudformation#TypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you activate the type in this account and\n Region. For private extensions, this will be the ARN assigned when you register the type in this account and\n Region.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the \n ActivateType\n API operation in\n this account and Region. For private extensions, this will be the ARN assigned when you call the \n RegisterType\n API operation in this account and Region.

" } }, "TypeName": { @@ -14089,7 +14124,7 @@ } }, "traits": { - "smithy.api#documentation": "

Detailed information concerning the specification of a CloudFormation extension in a given account and\n Region.

\n

For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" + "smithy.api#documentation": "

Detailed information concerning the specification of a CloudFormation extension in a given account and\n Region.

\n

For more information, see Configuring extensions at\n the account level in the CloudFormation User Guide.

" } }, "com.amazonaws.cloudformation#TypeConfigurationDetailsList": { @@ -14104,7 +14139,7 @@ "TypeArn": { "target": "com.amazonaws.cloudformation#TypeArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you activate the type in this account and\n Region. For private extensions, this will be the ARN assigned when you register the type in this account and\n Region.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the \n ActivateType\n API operation in\n this account and Region. For private extensions, this will be the ARN assigned when you call the \n RegisterType\n API operation in this account and Region.

" } }, "TypeConfigurationAlias": { @@ -14263,13 +14298,13 @@ "TypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

The name of the extension.

\n

If you specified a TypeNameAlias when you activate this extension in your account\n and Region, CloudFormation considers that alias as the type name.

" + "smithy.api#documentation": "

The name of the extension.

\n

If you specified a TypeNameAlias when you call the \n ActivateType\n API operation in\n your account and Region, CloudFormation considers that alias as the type name.

" } }, "DefaultVersionId": { "target": "com.amazonaws.cloudformation#TypeVersionId", "traits": { - "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the extension version isn't\n specified.

\n

This applies only to private extensions you have registered in your account. For public extensions, both those\n provided by Amazon and published by third parties, CloudFormation returns null. For more\n information, see RegisterType.

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" + "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the extension version isn't\n specified.

\n

This applies only to private extensions you have registered in your account. For public extensions, both those\n provided by Amazon and published by third parties, CloudFormation returns null. For more information, see\n \n RegisterType\n .

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" } }, "TypeArn": { @@ -14281,7 +14316,7 @@ "LastUpdated": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see RegisterType.

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For more information, see\n ActivateType.

    \n
  • \n
\n

For all other extension types, CloudFormation returns null.

" + "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see \n RegisterType\n .

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For more information, see\n \n ActivateType\n .

    \n
  • \n
\n

For all other extension types, CloudFormation returns null.

" } }, "Description": { @@ -14299,25 +14334,25 @@ "OriginalTypeName": { "target": "com.amazonaws.cloudformation#TypeName", "traits": { - "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name of the public\n extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name of the public\n extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of\n the public extension. For more information, see Specifying aliases to\n refer to extensions in the CloudFormation User Guide.

" } }, "PublicVersionNumber": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of the public extension\n to be used for CloudFormation operations in this account and Region.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation\n automatically updates the extension in this account and Region when a new version is released. For more information,\n see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of the public extension\n to be used for CloudFormation operations in this account and Region.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically\n updates the extension in this account and Region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" } }, "LatestPublicVersion": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the latest version of the public\n extension that is available. For any extensions other than activated third-arty extensions,\n CloudFormation returns null.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation\n automatically updates the extension in this account and Region when a new version is released. For more information,\n see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the latest version of the public\n extension that is available. For any extensions other than activated third-arty extensions,\n CloudFormation returns null.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically\n updates the extension in this account and Region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" } }, "PublisherIdentity": { "target": "com.amazonaws.cloudformation#IdentityProvider", "traits": { - "smithy.api#documentation": "

The service used to verify the publisher identity.

\n

For more information, see Registering your account to publish CloudFormation extensions in the CFN-CLI User Guide for Extension\n Development.

" + "smithy.api#documentation": "

The service used to verify the publisher identity.

\n

For more information, see Registering your account to publish CloudFormation extensions in the CFN-CLI User Guide for Extension Development.

" } }, "PublisherName": { @@ -14440,7 +14475,7 @@ "PublicVersionNumber": { "target": "com.amazonaws.cloudformation#PublicVersionNumber", "traits": { - "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of the public extension\n to be used for CloudFormation operations in this account and Region. For any extensions other than activated\n third-arty extensions, CloudFormation returns null.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation\n automatically updates the extension in this account and Region when a new version is released. For more information,\n see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of the public extension\n to be used for CloudFormation operations in this account and Region. For any extensions other than activated third-arty\n extensions, CloudFormation returns null.

\n

How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically\n updates the extension in this account and Region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the\n CloudFormation User Guide.

" } } }, @@ -14566,7 +14601,7 @@ "TemplateConfiguration": { "target": "com.amazonaws.cloudformation#TemplateConfiguration", "traits": { - "smithy.api#documentation": "

The configuration details of the generated template, including the DeletionPolicy and UpdateReplacePolicy.

" + "smithy.api#documentation": "

The configuration details of the generated template, including the DeletionPolicy and\n UpdateReplacePolicy.

" } } }, @@ -14622,85 +14657,85 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.\n (For more information, go to Template Anatomy in the\n CloudFormation User Guide.)

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" + "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.\n (For more information, go to Template Anatomy in the\n CloudFormation User Guide.)

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of 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. For more information, go to Template Anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" + "smithy.api#documentation": "

Location of 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. For more information, go to Template Anatomy in the\n CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://.

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" } }, "UsePreviousTemplate": { "target": "com.amazonaws.cloudformation#UsePreviousTemplate", "traits": { - "smithy.api#documentation": "

Reuse the existing template that is associated with the stack that you are updating.

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" + "smithy.api#documentation": "

Reuse the existing template that is associated with the stack that you are updating.

\n

Conditional: You must specify only one of the following parameters: TemplateBody,\n TemplateURL, or set the UsePreviousTemplate to true.

" } }, "StackPolicyDuringUpdateBody": { "target": "com.amazonaws.cloudformation#StackPolicyDuringUpdateBody", "traits": { - "smithy.api#documentation": "

Structure containing the temporary overriding stack policy body. You can specify either the\n StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not\n both.

\n

If you want to update protected resources, specify a temporary overriding stack policy during this update. If\n you don't specify a stack policy, the current policy that is associated with the stack will be used.

" + "smithy.api#documentation": "

Structure containing the temporary overriding stack policy body. You can specify either the\n StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not\n both.

\n

If you want to update protected resources, specify a temporary overriding stack policy during this update. If\n you don't specify a stack policy, the current policy that is associated with the stack will be used.

" } }, "StackPolicyDuringUpdateURL": { "target": "com.amazonaws.cloudformation#StackPolicyDuringUpdateURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size:\n 16KB) located in an S3 bucket in the same Region as the stack. You can specify either the\n StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not\n both.

\n

If you want to update protected resources, specify a temporary overriding stack policy during this update. If\n you don't specify a stack policy, the current policy that is associated with the stack will be used.

" + "smithy.api#documentation": "

Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size:\n 16KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with\n https://. You can specify either the StackPolicyDuringUpdateBody or the\n StackPolicyDuringUpdateURL parameter, but not both.

\n

If you want to update protected resources, specify a temporary overriding stack policy during this update. If\n you don't specify a stack policy, the current policy that is associated with the stack will be used.

" } }, "Parameters": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack. For more information,\n see the Parameter\n data type.

" + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack. For more information,\n see the \n Parameter\n \n data type.

" } }, "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to update the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM\n Resources in CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually updating the stack. If your stack template contains one or more macros, and you choose\n to update a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which\n are macros hosted by CloudFormation.

    \n

    If you want to update a stack from a stack template that contains macros and nested\n stacks, you must update the stack directly from the template using this capability.

    \n \n

    You should only update stacks directly from a stack template that contains macros if you know what processing\n the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack templates. Be\n aware that the Lambda function owner can update the function operation without CloudFormation being\n notified.

    \n
    \n

    For more information, see Using CloudFormation Macros to Perform Custom\n Processing on Templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to update the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly\n acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can include simple actions\n like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this,\n users typically create a change set from the processed template, so that they can review the changes resulting from\n the macros before actually updating the stack. If your stack template contains one or more macros, and you choose\n to update a stack directly from the processed template, without first reviewing the resulting changes in a change\n set, you must acknowledge this capability. This includes the \n AWS::Include\n and \n AWS::Serverless\n transforms, which\n are macros hosted by CloudFormation.

    \n

    If you want to update a stack from a stack template that contains macros and nested\n stacks, you must update the stack directly from the template using this capability.

    \n \n

    You should only update stacks directly from a stack template that contains macros if you know what processing\n the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack templates. Be\n aware that the Lambda function owner can update the function operation without CloudFormation being\n notified.

    \n
    \n

    For more information, see Using CloudFormation Macros to Perform Custom Processing\n on Templates.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with for this update stack action, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're updating, the stack update fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM)\n uses this parameter for CloudFormation-specific condition keys in IAM policies. For more\n information, see Controlling Access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" + "smithy.api#documentation": "

The template resource types that you have permissions to work with for this update stack action, such as\n AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're updating, the stack update fails. By\n default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for\n CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can be specified.

\n
" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to update the stack. CloudFormation uses the role's credentials to make calls on your behalf.\n CloudFormation always uses this role for all future operations on the stack. Provided that users have\n permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the\n stack. If no role is available, CloudFormation uses a temporary session that is generated from your user\n credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to\n update the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role\n for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses\n this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role\n is available, CloudFormation uses a temporary session that is generated from your user credentials.

" } }, "RollbackConfiguration": { "target": "com.amazonaws.cloudformation#RollbackConfiguration", "traits": { - "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and\n for the specified monitoring period afterwards.

" + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the\n specified monitoring period afterwards.

" } }, "StackPolicyBody": { "target": "com.amazonaws.cloudformation#StackPolicyBody", "traits": { - "smithy.api#documentation": "

Structure containing a new stack policy body. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource that you created during a\n stack update. If you don't specify a stack policy, the current policy that is associated with the stack is\n unchanged.

" + "smithy.api#documentation": "

Structure containing a new stack policy body. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource that you created during a\n stack update. If you don't specify a stack policy, the current policy that is associated with the stack is\n unchanged.

" } }, "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located\n in an S3 bucket in the same Region as the stack. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource that you created during a\n stack update. If you don't specify a stack policy, the current policy that is associated with the stack is\n unchanged.

" + "smithy.api#documentation": "

Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located\n in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with\n https://. You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource that you created during a\n stack update. If you don't specify a stack policy, the current policy that is associated with the stack is\n unchanged.

" } }, "NotificationARNs": { "target": "com.amazonaws.cloudformation#NotificationARNs", "traits": { - "smithy.api#documentation": "

Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that CloudFormation associates\n with the stack. Specify an empty list to remove all notification topics.

" + "smithy.api#documentation": "

Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that CloudFormation associates with the stack.\n Specify an empty list to remove all notification topics.

" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to supported\n resources in the stack. You can specify a maximum number of 50 tags.

\n

If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. If you specify an\n empty value, CloudFormation removes all associated tags.

" + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to supported resources in the\n stack. You can specify a maximum number of 50 tags.

\n

If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. If you specify an empty value,\n CloudFormation removes all associated tags.

" } }, "DisableRollback": { @@ -14712,13 +14747,13 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to update a stack with the same name. You might retry\n UpdateStack requests to ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests\n so that CloudFormation knows that you're not attempting to update a stack with the same name. You might retry\n UpdateStack requests to ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request token, which you can use to\n track operations. For example, if you execute a CreateStack operation with the token\n token1, then all the StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack operations that are\n initiated from the console use the token format Console-StackOperation-ID, which helps you\n easily identify the stack operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } }, "RetainExceptOnCreate": { "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", "traits": { - "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes newly\n created resources marked with a deletion policy of Retain.

\n

Default: false\n

" + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls back. This includes\n newly created resources marked with a deletion policy of Retain.

\n

Default: false\n

" } } }, @@ -14756,7 +14791,7 @@ } ], "traits": { - "smithy.api#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.

\n

You can only update stack instances in Amazon Web Services Regions and accounts where they already exist; to\n create additional stack instances, use CreateStackInstances.

\n

During stack set updates, any parameters overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only update the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use UpdateStackSet to update the stack set\n template. If you add a parameter to a template, before you can override the parameter value specified in the stack\n set you must first use UpdateStackSet to update all stack\n instances with the updated template and parameter value specified in the stack set. Once a stack instance has been\n updated with the new parameter, you can then override the parameter value using\n UpdateStackInstances.

" + "smithy.api#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.

\n

You can only update stack instances in Amazon Web Services Regions and accounts where they already exist; to\n create additional stack instances, use \n CreateStackInstances\n .

\n

During stack set updates, any parameters overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only update the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use \n UpdateStackSet\n to update the stack set\n template. If you add a parameter to a template, before you can override the parameter value specified in the stack\n set you must first use \n UpdateStackSet\n to update all stack\n instances with the updated template and parameter value specified in the stack set. Once a stack instance has been\n updated with the new parameter, you can then override the parameter value using\n UpdateStackInstances.

" } }, "com.amazonaws.cloudformation#UpdateStackInstancesInput": { @@ -14786,14 +14821,14 @@ "target": "com.amazonaws.cloudformation#RegionList", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions in which you want to update parameter values for stack\n instances. The overridden parameter values will be applied to all stack instances in the specified accounts and\n Amazon Web Services Regions.

", + "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions in which you want to update parameter values for stack\n instances. The overridden parameter values will be applied to all stack instances in the specified accounts and\n Amazon Web Services Regions.

", "smithy.api#required": {} } }, "ParameterOverrides": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of input parameters whose values you want to update for the specified stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how CloudFormation sets\n parameter values during stack instance update operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and specify\n UsePreviousValue as true. (You can't specify both a value and set\n UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the stack set, specify a parameter list but\n don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at all.

    \n
  • \n
\n

During stack set updates, any parameter values overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only override the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter\n to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to\n update all stack instances with the updated template and parameter value specified in the stack set. Once a stack\n instance has been updated with the new parameter, you can then override the parameter value using\n UpdateStackInstances.

" + "smithy.api#documentation": "

A list of input parameters whose values you want to update for the specified stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how CloudFormation sets parameter values\n during stack instance update operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and specify\n UsePreviousValue as true. (You can't specify both a value and set\n UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the stack set, specify a parameter list but\n don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at all.

    \n
  • \n
\n

During stack set updates, any parameter values overridden for a stack instance aren't updated, but retain their\n overridden value.

\n

You can only override the parameter values that are specified in the stack set; to add or\n delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter\n to a template, before you can override the parameter value specified in the stack set you must first use \n UpdateStackSet\n to\n update all stack instances with the updated template and parameter value specified in the stack set. Once a stack\n instance has been updated with the new parameter, you can then override the parameter value using\n UpdateStackInstances.

" } }, "OperationPreferences": { @@ -14805,14 +14840,14 @@ "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the\n stack set operation only once, even if you retry the request multiple times. You might retry stack set operation\n requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set\n operation only once, even if you retry the request multiple times. You might retry stack set operation requests to\n ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } } }, @@ -14901,19 +14936,19 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200\n bytes. For more information, see Template Anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" + "smithy.api#documentation": "

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200\n bytes. For more information, see Template Anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

The location of the file that contains the template body. The URL must point to a template (maximum size:\n 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information,\n see Template\n Anatomy in the CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" + "smithy.api#documentation": "

The location of the file that contains the template body. The URL must point to a template (maximum size:\n 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information,\n see Template\n Anatomy in the CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" } }, "UsePreviousTemplate": { "target": "com.amazonaws.cloudformation#UsePreviousTemplate", "traits": { - "smithy.api#documentation": "

Use the existing template that's associated with the stack set that you're updating.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" + "smithy.api#documentation": "

Use the existing template that's associated with the stack set that you're updating.

\n

Conditional: You must specify only one of the following parameters: TemplateBody or\n TemplateURL—or set UsePreviousTemplate to true.

" } }, "Parameters": { @@ -14925,13 +14960,13 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to update the stack set and its associated stack instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks sets, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your stack set template references one or more macros, you must update the\n stack set directly from the processed template, without first reviewing the resulting changes in a change set. To\n update the stack set directly, you must acknowledge this capability. For more information, see Using CloudFormation Macros to Perform\n Custom Processing on Templates.

    \n \n

    Stack sets with service-managed permissions do not currently support the use of macros in templates. (This\n includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a\n stack set with service-managed permissions, if you reference a macro in your template the stack set operation will\n fail.

    \n
    \n
  • \n
" + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order\n for CloudFormation to update the stack set and its associated stack instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your Amazon Web Services account;\n for example, by creating new Identity and Access Management (IAM) users. For those stacks sets, you must explicitly\n acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the CAPABILITY_IAM or\n CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must specify\n CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all permissions associated with\n them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your stack set template references one or more macros, you must update the\n stack set directly from the processed template, without first reviewing the resulting changes in a change set. To\n update the stack set directly, you must acknowledge this capability. For more information, see Using CloudFormation Macros to\n Perform Custom Processing on Templates.

    \n \n

    Stack sets with service-managed permissions do not currently support the use of macros in templates. (This\n includes the \n AWS::Include\n and \n AWS::Serverless\n transforms, which\n are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions,\n if you reference a macro in your template the stack set operation will fail.

    \n
    \n
  • \n
" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also\n propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50\n tags.

\n

If you specify tags for this parameter, those tags replace any list of tags that are currently associated with\n this stack set. This means:

\n
    \n
  • \n

    If you don't specify this parameter, CloudFormation doesn't modify the stack's tags.

    \n
  • \n
  • \n

    If you specify any tags using this parameter, you must specify all\n the tags that you want associated with this stack set, even tags you've specified before (for example, when\n creating the stack set or during a previous update of the stack set.). Any tags that you don't include in the\n updated list of tags are removed from the stack set, and therefore from the stacks and resources as well.

    \n
  • \n
  • \n

    If you specify an empty value, CloudFormation removes all currently associated tags.

    \n
  • \n
\n

If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if\n you have the required IAM permission to tag resources. If you omit tags that are currently associated\n with the stack set from the list of tags you specify, CloudFormation assumes that you want to remove those tags\n from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary\n permission(s), the entire UpdateStackSet action fails with an access denied error, and the\n stack set is not updated.

" + "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also propagates these\n tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags.

\n

If you specify tags for this parameter, those tags replace any list of tags that are currently associated with\n this stack set. This means:

\n
    \n
  • \n

    If you don't specify this parameter, CloudFormation doesn't modify the stack's tags.

    \n
  • \n
  • \n

    If you specify any tags using this parameter, you must specify all\n the tags that you want associated with this stack set, even tags you've specified before (for example, when\n creating the stack set or during a previous update of the stack set.). Any tags that you don't include in the\n updated list of tags are removed from the stack set, and therefore from the stacks and resources as well.

    \n
  • \n
  • \n

    If you specify an empty value, CloudFormation removes all currently associated tags.

    \n
  • \n
\n

If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you have the\n required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from\n the list of tags you specify, CloudFormation assumes that you want to remove those tags from the stack set, and checks to see\n if you have permission to untag resources. If you don't have the necessary permission(s), the entire\n UpdateStackSet action fails with an access denied error, and the stack set is not\n updated.

" } }, "OperationPreferences": { @@ -14943,25 +14978,25 @@ "AdministrationRoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to use to update this stack set.

\n

Specify an IAM role only if you are using customized administrator roles to control which users\n or groups can manage specific stack sets within the same administrator account. For more information, see Granting Permissions for Stack Set\n Operations in the CloudFormation User Guide.

\n

If you specified a customized administrator role when you created the stack set, you must specify a customized\n administrator role, even if it is the same customized administrator role used with this stack set previously.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to use to update this stack set.

\n

Specify an IAM role only if you are using customized administrator roles to control which users or groups can\n manage specific stack sets within the same administrator account. For more information, see Granting Permissions for Stack\n Set Operations in the CloudFormation User Guide.

\n

If you specified a customized administrator role when you created the stack set, you must specify a customized\n administrator role, even if it is the same customized administrator role used with this stack set previously.

" } }, "ExecutionRoleName": { "target": "com.amazonaws.cloudformation#ExecutionRoleName", "traits": { - "smithy.api#documentation": "

The name of the IAM execution role to use to update the stack set. If you do not specify an\n execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set\n operation.

\n

Specify an IAM role only if you are using customized execution roles to control which stack\n resources users and groups can include in their stack sets.

\n

If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not specify a\n customized execution role, CloudFormation performs the update using the role previously associated with the stack set, so long\n as you have permissions to perform operations on the stack set.

" + "smithy.api#documentation": "

The name of the IAM execution role to use to update the stack set. If you do not specify an execution role,\n CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.

\n

Specify an IAM role only if you are using customized execution roles to control which stack resources users\n and groups can include in their stack sets.

\n

If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not specify a\n customized execution role, CloudFormation performs the update using the role previously associated with the stack set, so long\n as you have permissions to perform operations on the stack set.

" } }, "DeploymentTargets": { "target": "com.amazonaws.cloudformation#DeploymentTargets", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts in which to update associated stack\n instances.

\n

To update all the stack instances associated with this stack set, do not specify DeploymentTargets\n or Regions.

\n

If the stack set update includes changes to the template (that is, if TemplateBody or\n TemplateURL is specified), or the Parameters, CloudFormation marks all stack instances\n with a status of OUTDATED prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with\n their existing stack instance status.

" + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts in which to update associated stack\n instances.

\n

To update all the stack instances associated with this stack set, do not specify DeploymentTargets\n or Regions.

\n

If the stack set update includes changes to the template (that is, if TemplateBody or\n TemplateURL is specified), or the Parameters, CloudFormation marks all stack instances with a status\n of OUTDATED prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to the template or parameters, CloudFormation updates the stack instances\n in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance\n status.

" } }, "PermissionModel": { "target": "com.amazonaws.cloudformation#PermissionModels", "traits": { - "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created. You cannot modify\n PermissionModel if there are stack instances associated with your stack set.

\n " + "smithy.api#documentation": "

Describes how the IAM roles required for stack set operations are created. You cannot modify\n PermissionModel if there are stack instances associated with your stack set.

\n " } }, "AutoDeployment": { @@ -14973,26 +15008,26 @@ "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique ID for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the\n stack set operation only once, even if you retry the request multiple times. You might retry stack set operation\n requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, CloudFormation generates one automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", + "smithy.api#documentation": "

The unique ID for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set\n operation only once, even if you retry the request multiple times. You might retry stack set operation requests to\n ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, CloudFormation generates one automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack instances whose status is\n OUTDATED.

", "smithy.api#idempotencyToken": {} } }, "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts,\n you must also specify the Amazon Web Services Regions in which to update stack set instances.

\n

To update all the stack instances associated with this stack set, don't specify the\n Accounts or Regions properties.

\n

If the stack set update includes changes to the template (that is, if the TemplateBody or\n TemplateURL properties are specified), or the Parameters property, CloudFormation marks all stack\n instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and\n Amazon Web Services Regions. If the stack set update does not include changes to the template or parameters, CloudFormation\n updates the stack instances in the specified accounts and Amazon Web Services Regions, while leaving all other stack\n instances with their existing stack instance status.

" + "smithy.api#documentation": "

[Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts,\n you must also specify the Amazon Web Services Regions in which to update stack set instances.

\n

To update all the stack instances associated with this stack set, don't specify the\n Accounts or Regions properties.

\n

If the stack set update includes changes to the template (that is, if the TemplateBody or\n TemplateURL properties are specified), or the Parameters property, CloudFormation marks all stack\n instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and\n Amazon Web Services Regions. If the stack set update does not include changes to the template or parameters, CloudFormation\n updates the stack instances in the specified accounts and Amazon Web Services Regions, while leaving all other stack\n instances with their existing stack instance status.

" } }, "Regions": { "target": "com.amazonaws.cloudformation#RegionList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must\n also specify accounts in which to update stack set instances.

\n

To update all the stack instances associated with this stack set, do not specify the\n Accounts or Regions properties.

\n

If the stack set update includes changes to the template (that is, if the TemplateBody or\n TemplateURL properties are specified), or the Parameters property, CloudFormation marks all stack\n instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and\n Regions. If the stack set update does not include changes to the template or parameters, CloudFormation updates the stack\n instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack\n instance status.

" + "smithy.api#documentation": "

The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must\n also specify accounts in which to update stack set instances.

\n

To update all the stack instances associated with this stack set, do not specify the\n Accounts or Regions properties.

\n

If the stack set update includes changes to the template (that is, if the TemplateBody or\n TemplateURL properties are specified), or the Parameters property, CloudFormation marks all stack\n instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and\n Regions. If the stack set update does not include changes to the template or parameters, CloudFormation updates the stack\n instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack\n instance status.

" } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's\n management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed\n permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated\n administrator in the CloudFormation User Guide.

    \n
  • \n
" } }, "ManagedExecution": { @@ -15029,7 +15064,7 @@ "target": "com.amazonaws.cloudformation#UpdateTerminationProtectionOutput" }, "traits": { - "smithy.api#documentation": "

Updates termination protection for the specified stack. If a user attempts to delete a stack with termination\n protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From\n Being Deleted in the CloudFormation User Guide.

\n

For nested\n stacks, termination protection is set on the root stack and can't be changed directly on the nested\n stack.

" + "smithy.api#documentation": "

Updates termination protection for the specified stack. If a user attempts to delete a stack with termination\n protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From\n Being Deleted in the CloudFormation User Guide.

\n

For nested\n stacks, termination protection is set on the root stack and can't be changed directly on the nested\n stack.

" } }, "com.amazonaws.cloudformation#UpdateTerminationProtectionInput": { @@ -15088,7 +15123,7 @@ "target": "com.amazonaws.cloudformation#ValidateTemplateOutput" }, "traits": { - "smithy.api#documentation": "

Validates a specified template. CloudFormation first checks if the template is valid JSON. If it isn't,\n CloudFormation checks if the template is valid YAML. If both these checks fail, CloudFormation\n returns a template validation error.

" + "smithy.api#documentation": "

Validates a specified template. CloudFormation first checks if the template is valid JSON. If it isn't, CloudFormation\n checks if the template is valid YAML. If both these checks fail, CloudFormation returns a template validation\n error.

" } }, "com.amazonaws.cloudformation#ValidateTemplateInput": { @@ -15097,13 +15132,13 @@ "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For\n more information, go to Template Anatomy in the CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" + "smithy.api#documentation": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For\n more information, go to Template Anatomy in the CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to Template Anatomy in the\n CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" + "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to Template Anatomy in the\n CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only\n TemplateBody is used.

" } } }, @@ -15130,7 +15165,7 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you must\n specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return\n an InsufficientCapabilities error.

\n

For more information, see Acknowledging IAM\n Resources in CloudFormation Templates.

" + "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you must specify the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or\n UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities\n error.

\n

For more information, see Acknowledging IAM Resources in\n CloudFormation Templates.

" } }, "CapabilitiesReason": { diff --git a/codegen/sdk/aws-models/cost-explorer.json b/codegen/sdk/aws-models/cost-explorer.json index a9567fe6f4e..6d23aaefb8d 100644 --- a/codegen/sdk/aws-models/cost-explorer.json +++ b/codegen/sdk/aws-models/cost-explorer.json @@ -63,6 +63,9 @@ { "target": "com.amazonaws.costexplorer#GetAnomalySubscriptions" }, + { + "target": "com.amazonaws.costexplorer#GetApproximateUsageRecords" + }, { "target": "com.amazonaws.costexplorer#GetCostAndUsage" }, @@ -1280,6 +1283,32 @@ "target": "com.amazonaws.costexplorer#AnomalySubscription" } }, + "com.amazonaws.costexplorer#ApproximateUsageRecordsPerService": { + "type": "map", + "key": { + "target": "com.amazonaws.costexplorer#GenericString" + }, + "value": { + "target": "com.amazonaws.costexplorer#NonNegativeLong" + } + }, + "com.amazonaws.costexplorer#ApproximationDimension": { + "type": "enum", + "members": { + "SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE" + } + }, + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + } + } + }, "com.amazonaws.costexplorer#Arn": { "type": "string", "traits": { @@ -3737,6 +3766,81 @@ "smithy.api#output": {} } }, + "com.amazonaws.costexplorer#GetApproximateUsageRecords": { + "type": "operation", + "input": { + "target": "com.amazonaws.costexplorer#GetApproximateUsageRecordsRequest" + }, + "output": { + "target": "com.amazonaws.costexplorer#GetApproximateUsageRecordsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.costexplorer#DataUnavailableException" + }, + { + "target": "com.amazonaws.costexplorer#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves estimated usage records for hourly granularity or resource-level data at daily\n granularity.

" + } + }, + "com.amazonaws.costexplorer#GetApproximateUsageRecordsRequest": { + "type": "structure", + "members": { + "Granularity": { + "target": "com.amazonaws.costexplorer#Granularity", + "traits": { + "smithy.api#documentation": "

How granular you want the data to be. You can enable data at hourly or daily\n granularity.

", + "smithy.api#required": {} + } + }, + "Services": { + "target": "com.amazonaws.costexplorer#UsageServices", + "traits": { + "smithy.api#documentation": "

The service metadata for the service or services you want to query. If not specified, all\n elements are returned.

" + } + }, + "ApproximationDimension": { + "target": "com.amazonaws.costexplorer#ApproximationDimension", + "traits": { + "smithy.api#documentation": "

The service to evaluate for the usage records. You can choose resource-level data at daily\n granularity, or hourly granularity with or without resource-level data.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.costexplorer#GetApproximateUsageRecordsResponse": { + "type": "structure", + "members": { + "Services": { + "target": "com.amazonaws.costexplorer#ApproximateUsageRecordsPerService", + "traits": { + "smithy.api#documentation": "

The service metadata for the service or services in the response.

" + } + }, + "TotalRecords": { + "target": "com.amazonaws.costexplorer#NonNegativeLong", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total number of usage records for all services in the services list.

" + } + }, + "LookbackPeriod": { + "target": "com.amazonaws.costexplorer#DateInterval", + "traits": { + "smithy.api#documentation": "

The lookback period that's used for the estimation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.costexplorer#GetCostAndUsage": { "type": "operation", "input": { @@ -6168,6 +6272,15 @@ } } }, + "com.amazonaws.costexplorer#NonNegativeLong": { + "type": "long", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.costexplorer#NullableNonNegativeDouble": { "type": "double", "traits": { @@ -9039,6 +9152,12 @@ "smithy.api#output": {} } }, + "com.amazonaws.costexplorer#UsageServices": { + "type": "list", + "member": { + "target": "com.amazonaws.costexplorer#GenericString" + } + }, "com.amazonaws.costexplorer#UtilizationByTime": { "type": "structure", "members": { diff --git a/codegen/sdk/aws-models/docdb-elastic.json b/codegen/sdk/aws-models/docdb-elastic.json index a78e89220f5..47184f35886 100644 --- a/codegen/sdk/aws-models/docdb-elastic.json +++ b/codegen/sdk/aws-models/docdb-elastic.json @@ -46,6 +46,9 @@ "type": "service", "version": "2022-11-28", "operations": [ + { + "target": "com.amazonaws.docdbelastic#CopyClusterSnapshot" + }, { "target": "com.amazonaws.docdbelastic#CreateCluster" }, @@ -76,6 +79,12 @@ { "target": "com.amazonaws.docdbelastic#RestoreClusterFromSnapshot" }, + { + "target": "com.amazonaws.docdbelastic#StartCluster" + }, + { + "target": "com.amazonaws.docdbelastic#StopCluster" + }, { "target": "com.amazonaws.docdbelastic#TagResource" }, @@ -112,7 +121,7 @@ ], "maxAge": 86400 }, - "smithy.api#documentation": "

The new Amazon Elastic DocumentDB service endpoint.

", + "smithy.api#documentation": "Amazon DocumentDB elastic clusters\n

Amazon DocumentDB elastic-clusters support workloads with millions of reads/writes per second and petabytes of storage capacity. \n Amazon DocumentDB elastic clusters also simplify how developers interact with Amazon DocumentDB elastic-clusters by eliminating the need to choose, manage or upgrade instances.

\n

Amazon DocumentDB elastic-clusters were created to:

\n
    \n
  • \n

    provide a solution for customers looking for a database that provides virtually limitless scale with rich query capabilities and MongoDB API compatibility.

    \n
  • \n
  • \n

    give customers higher connection limits, and to reduce downtime from patching.

    \n
  • \n
  • \n

    continue investing in a cloud-native, elastic, and class leading architecture for JSON workloads.

    \n
  • \n
", "smithy.api#title": "Amazon DocumentDB Elastic Clusters", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -786,97 +795,121 @@ "clusterName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The name of the elastic cluster.

", "smithy.api#required": {} } }, "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#required": {} } }, "status": { "target": "com.amazonaws.docdbelastic#Status", "traits": { - "smithy.api#documentation": "

The status of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The status of the elastic cluster.

", "smithy.api#required": {} } }, "clusterEndpoint": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The URL used to connect to the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The URL used to connect to the elastic cluster.

", "smithy.api#required": {} } }, "createTime": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).

", + "smithy.api#documentation": "

The time when the elastic cluster was created in Universal Coordinated Time (UTC).

", "smithy.api#required": {} } }, "adminUserName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster administrator.

", + "smithy.api#documentation": "

The name of the elastic cluster administrator.

", "smithy.api#required": {} } }, "authType": { "target": "com.amazonaws.docdbelastic#Auth", "traits": { - "smithy.api#documentation": "

The authentication type for the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The authentication type for the elastic cluster.

", "smithy.api#required": {} } }, "shardCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The capacity of each shard in the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. \n Allowed values are 2, 4, 8, 16, 32, 64.

", "smithy.api#required": {} } }, "shardCount": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The number of shards in the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The number of shards assigned to the elastic cluster. Maximum is 32.

", "smithy.api#required": {} } }, "vpcSecurityGroupIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of EC2 VPC security groups associated with this cluster.

", + "smithy.api#documentation": "

A list of EC2 VPC security groups associated with thie elastic cluster.

", "smithy.api#required": {} } }, "subnetIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the elastic cluster.

", "smithy.api#required": {} } }, "preferredMaintenanceWindow": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The weekly time range during which system maintenance can occur,\n in Universal Coordinated Time (UTC).

\n

\n Format: ddd:hh24:mi-ddd:hh24:mi\n

", + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

\n

\n Format: ddd:hh24:mi-ddd:hh24:mi\n

", "smithy.api#required": {} } }, "kmsKeyId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The KMS key identifier to use to encrypt the elastic cluster.

", "smithy.api#required": {} } + }, + "shards": { + "target": "com.amazonaws.docdbelastic#ShardList", + "traits": { + "smithy.api#documentation": "

The total number of shards in the cluster.

" + } + }, + "backupRetentionPeriod": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic snapshots are retained.

" + } + }, + "preferredBackupWindow": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by backupRetentionPeriod.

" + } + }, + "shardInstanceCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of replica instances applying to all shards in the cluster. \n A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

" + } } }, "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

Returns information about a specific elastic cluster.

" } }, "com.amazonaws.docdbelastic#ClusterInList": { @@ -885,27 +918,27 @@ "clusterName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The name of the elastic cluster.

", "smithy.api#required": {} } }, "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#required": {} } }, "status": { "target": "com.amazonaws.docdbelastic#Status", "traits": { - "smithy.api#documentation": "

The status of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The status of the elastic cluster.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A list of Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

A list of Amazon DocumentDB elastic clusters.

" } }, "com.amazonaws.docdbelastic#ClusterList": { @@ -920,76 +953,82 @@ "subnetIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of the IDs of subnets associated with the DB cluster snapshot.

", + "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the elastic cluster.

", "smithy.api#required": {} } }, "snapshotName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The name of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "snapshotArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB snapshot

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "snapshotCreationTime": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).

", + "smithy.api#documentation": "

The time when the elastic cluster snapshot was created in Universal Coordinated Time (UTC).

", "smithy.api#required": {} } }, "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#required": {} } }, "clusterCreationTime": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).

", + "smithy.api#documentation": "

The time when the elastic cluster was created in Universal Coordinated Time (UTC).

", "smithy.api#required": {} } }, "status": { "target": "com.amazonaws.docdbelastic#Status", "traits": { - "smithy.api#documentation": "

The status of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The status of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "vpcSecurityGroupIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of the IDs of the VPC security groups associated with the cluster snapshot.

", + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the elastic cluster.

", "smithy.api#required": {} } }, "adminUserName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster administrator.

", + "smithy.api#documentation": "

The name of the elastic cluster administrator.

", "smithy.api#required": {} } }, "kmsKeyId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. \n If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.\n If an encryption key is not specified here, Amazon DocumentDB uses the default encryption key that KMS creates for your account. \n Your account has a different default encryption key for each Amazon Region.\n

", "smithy.api#required": {} } + }, + "snapshotType": { + "target": "com.amazonaws.docdbelastic#SnapshotType", + "traits": { + "smithy.api#documentation": "

The type of cluster snapshots to be returned. \n You can specify one of the following values:

\n
    \n
  • \n

    \n automated - Return all cluster snapshots that Amazon DocumentDB has automatically created for your Amazon Web Services account.

    \n
  • \n
  • \n

    \n manual - Return all cluster snapshots that you have manually created for your Amazon Web Services account.

    \n
  • \n
" + } } }, "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB snapshot.

" + "smithy.api#documentation": "

Returns information about a specific elastic cluster snapshot.

" } }, "com.amazonaws.docdbelastic#ClusterSnapshotInList": { @@ -998,41 +1037,41 @@ "snapshotName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The name of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "snapshotArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB snapshot

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#required": {} } }, "status": { "target": "com.amazonaws.docdbelastic#Status", "traits": { - "smithy.api#documentation": "

The status of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The status of the elastic cluster snapshot.

", "smithy.api#required": {} } }, "snapshotCreationTime": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).

", + "smithy.api#documentation": "

The time when the elastic cluster snapshot was created in Universal Coordinated Time (UTC).

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A list of Elastic DocumentDB snapshots.

" + "smithy.api#documentation": "

A list of elastic cluster snapshots.

" } }, "com.amazonaws.docdbelastic#ClusterSnapshotList": { @@ -1071,6 +1110,138 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.docdbelastic#CopyClusterSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.docdbelastic#CopyClusterSnapshotInput" + }, + "output": { + "target": "com.amazonaws.docdbelastic#CopyClusterSnapshotOutput" + }, + "errors": [ + { + "target": "com.amazonaws.docdbelastic#AccessDeniedException" + }, + { + "target": "com.amazonaws.docdbelastic#ConflictException" + }, + { + "target": "com.amazonaws.docdbelastic#InternalServerException" + }, + { + "target": "com.amazonaws.docdbelastic#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.docdbelastic#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.docdbelastic#ThrottlingException" + }, + { + "target": "com.amazonaws.docdbelastic#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Copies a snapshot of an elastic cluster.

", + "smithy.api#examples": [ + { + "title": "Basic Copy Cluster Snapshot Example", + "documentation": "update applied", + "input": { + "snapshotArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster-snapshot/$SOURCE_SNAPSHOT_ID", + "targetSnapshotName": "sampleSnapshotName" + }, + "output": { + "snapshot": { + "subnetIds": [ + "subnetId1", + "subnetId2" + ], + "snapshotName": "sampleSnapshotName", + "snapshotArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster-snapshot/$TARGET_SNAPSHOT_ID", + "snapshotCreationTime": "2000-01-01T00:00:00.000Z", + "clusterArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster/$CLUSTER_ID", + "clusterCreationTime": "2000-01-01T00:00:00.000Z", + "status": "ACTIVE", + "vpcSecurityGroupIds": [ + "vpcSgId1, vpcSgId2" + ], + "adminUserName": "sampleAdminUser", + "kmsKeyId": "AWS_OWNED_KMS_KEY", + "snapshotType": "MANUAL" + } + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/cluster-snapshot/{snapshotArn}/copy" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.docdbelastic#CopyClusterSnapshotInput": { + "type": "structure", + "members": { + "snapshotArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifier of the elastic cluster snapshot.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "snapshotArn" + } + }, + "targetSnapshotName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The identifier of the new elastic cluster snapshot to create from the source cluster snapshot. \n This parameter is not case sensitive.

\n

Constraints:

\n
    \n
  • \n

    Must contain from 1 to 63 letters, numbers, or hyphens.

    \n
  • \n
  • \n

    The first character must be a letter.

    \n
  • \n
  • \n

    Cannot end with a hyphen or contain two consecutive hyphens.

    \n
  • \n
\n

Example: elastic-cluster-snapshot-5\n

", + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#required": {} + } + }, + "kmsKeyId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key ID for an encrypted elastic cluster snapshot. \n The Amazon Web Services KMS key ID is the Amazon Resource Name (ARN), Amazon Web Services KMS key identifier, or the Amazon Web Services KMS key alias for the Amazon Web Services KMS encryption key.

\n

If you copy an encrypted elastic cluster snapshot from your Amazon Web Services account, you can specify a value for KmsKeyId to encrypt the copy with a new Amazon Web ServicesS KMS encryption key. \n If you don't specify a value for KmsKeyId, then the copy of the elastic cluster snapshot is encrypted with the same AWS KMS key as the source elastic cluster snapshot.

\n

To copy an encrypted elastic cluster snapshot to another Amazon Web Services region, set KmsKeyId to the Amazon Web Services KMS key ID that you want to use to encrypt the copy of the elastic cluster snapshot in the destination region. \n Amazon Web Services KMS encryption keys are specific to the Amazon Web Services region that they are created in, and you can't use encryption keys from one Amazon Web Services region in another Amazon Web Services region.

\n

If you copy an unencrypted elastic cluster snapshot and specify a value for the KmsKeyId parameter, an error is returned.

" + } + }, + "copyTags": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Set to true to copy all tags from the source cluster snapshot to the target elastic cluster snapshot. \n The default is false.

" + } + }, + "tags": { + "target": "com.amazonaws.docdbelastic#TagMap", + "traits": { + "smithy.api#documentation": "

The tags to be assigned to the elastic cluster snapshot.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.docdbelastic#CopyClusterSnapshotOutput": { + "type": "structure", + "members": { + "snapshot": { + "target": "com.amazonaws.docdbelastic#ClusterSnapshot", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.docdbelastic#CreateCluster": { "type": "operation", "input": { @@ -1100,7 +1271,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new Elastic DocumentDB cluster and returns its Cluster structure.

", + "smithy.api#documentation": "

Creates a new Amazon DocumentDB elastic cluster and returns its cluster structure.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -1115,67 +1286,67 @@ "clusterName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the new Elastic DocumentDB cluster. This parameter is stored as\n a lowercase string.

\n

\n Constraints:

\n
    \n
  • \n

    Must contain from 1 to 63 letters, numbers, or hyphens.

    \n
  • \n
  • \n

    The first character must be a letter.

    \n
  • \n
  • \n

    Cannot end with a hyphen or contain two consecutive hyphens.

    \n
  • \n
\n

\n Example: my-cluster\n

", + "smithy.api#documentation": "

The name of the new elastic cluster. This parameter is stored as\n a lowercase string.

\n

\n Constraints:

\n
    \n
  • \n

    Must contain from 1 to 63 letters, numbers, or hyphens.

    \n
  • \n
  • \n

    The first character must be a letter.

    \n
  • \n
  • \n

    Cannot end with a hyphen or contain two consecutive hyphens.

    \n
  • \n
\n

\n Example: my-cluster\n

", "smithy.api#required": {} } }, "authType": { "target": "com.amazonaws.docdbelastic#Auth", "traits": { - "smithy.api#documentation": "

The authentication type for the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The authentication type used to determine where to fetch the password used for accessing the elastic cluster. \n Valid types are PLAIN_TEXT or SECRET_ARN.

", "smithy.api#required": {} } }, "adminUserName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster administrator.

\n

\n Constraints:

\n
    \n
  • \n

    Must be from 1 to 63 letters or numbers.

    \n
  • \n
  • \n

    The first character must be a letter.

    \n
  • \n
  • \n

    Cannot be a reserved word.

    \n
  • \n
", + "smithy.api#documentation": "

The name of the Amazon DocumentDB elastic clusters administrator.

\n

\n Constraints:

\n
    \n
  • \n

    Must be from 1 to 63 letters or numbers.

    \n
  • \n
  • \n

    The first character must be a letter.

    \n
  • \n
  • \n

    Cannot be a reserved word.

    \n
  • \n
", "smithy.api#required": {} } }, "adminUserPassword": { "target": "com.amazonaws.docdbelastic#Password", "traits": { - "smithy.api#documentation": "

The password for the Elastic DocumentDB cluster administrator and can\n contain any printable ASCII characters.

\n

\n Constraints:

\n
    \n
  • \n

    Must contain from 8 to 100 characters.

    \n
  • \n
  • \n

    Cannot contain a forward slash (/), double quote (\"), or the \"at\" symbol (@).

    \n
  • \n
", + "smithy.api#documentation": "

The password for the Amazon DocumentDB elastic clusters administrator. The password can contain any printable ASCII characters.

\n

\n Constraints:

\n
    \n
  • \n

    Must contain from 8 to 100 characters.

    \n
  • \n
  • \n

    Cannot contain a forward slash (/), double quote (\"), or the \"at\" symbol (@).

    \n
  • \n
", "smithy.api#required": {} } }, "shardCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The capacity of each shard in the new Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

", "smithy.api#required": {} } }, "shardCount": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The number of shards to create in the new Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The number of shards assigned to the elastic cluster. Maximum is 32.

", "smithy.api#required": {} } }, "vpcSecurityGroupIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the new\n Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the new\n elastic cluster.

" } }, "subnetIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the new elastic cluster.

" } }, "kmsKeyId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.

\n

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS\n encryption key. If you are creating a cluster using the same Amazon account\n that owns this KMS encryption key, you can use the KMS key alias instead\n of the ARN as the KMS encryption key.

\n

If an encryption key is not specified, Elastic DocumentDB uses the\n default encryption key that KMS creates for your account. Your account\n has a different default encryption key for each Amazon Region.

" + "smithy.api#documentation": "

The KMS key identifier to use to encrypt the new elastic cluster.

\n

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS\n encryption key. If you are creating a cluster using the same Amazon account\n that owns this KMS encryption key, you can use the KMS key alias instead\n of the ARN as the KMS encryption key.

\n

If an encryption key is not specified, Amazon DocumentDB uses the\n default encryption key that KMS creates for your account. Your account\n has a different default encryption key for each Amazon Region.

" } }, "clientToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The client token for the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The client token for the elastic cluster.

", "smithy.api#idempotencyToken": {} } }, @@ -1188,7 +1359,25 @@ "tags": { "target": "com.amazonaws.docdbelastic#TagMap", "traits": { - "smithy.api#documentation": "

The tags to be assigned to the new Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The tags to be assigned to the new elastic cluster.

" + } + }, + "backupRetentionPeriod": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic snapshots are retained.

" + } + }, + "preferredBackupWindow": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the backupRetentionPeriod.

" + } + }, + "shardInstanceCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of replica instances applying to all shards in the elastic cluster. \n A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

" } } } @@ -1199,7 +1388,7 @@ "cluster": { "target": "com.amazonaws.docdbelastic#Cluster", "traits": { - "smithy.api#documentation": "

The new Elastic DocumentDB cluster that has been created.

", + "smithy.api#documentation": "

The new elastic cluster that has been created.

", "smithy.api#required": {} } } @@ -1237,7 +1426,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a snapshot of a cluster.

", + "smithy.api#documentation": "

Creates a snapshot of an elastic cluster.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -1252,14 +1441,14 @@ "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster that the snapshot will be taken from.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster of which you want to create a snapshot.

", "smithy.api#required": {} } }, "snapshotName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The name of the new elastic cluster snapshot.

", "smithy.api#length": { "min": 1, "max": 63 @@ -1270,7 +1459,7 @@ "tags": { "target": "com.amazonaws.docdbelastic#TagMap", "traits": { - "smithy.api#documentation": "

The tags to be assigned to the new Elastic DocumentDB snapshot.

" + "smithy.api#documentation": "

The tags to be assigned to the new elastic cluster snapshot.

" } } } @@ -1281,7 +1470,7 @@ "snapshot": { "target": "com.amazonaws.docdbelastic#ClusterSnapshot", "traits": { - "smithy.api#documentation": "

Returns information about the new Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

Returns information about the new elastic cluster snapshot.

", "smithy.api#required": {} } } @@ -1316,7 +1505,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete a Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Delete an elastic cluster.

", "smithy.api#http": { "code": 200, "method": "DELETE", @@ -1331,7 +1520,7 @@ "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster that is to be deleted.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster that is to be deleted.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "clusterArn" @@ -1345,7 +1534,7 @@ "cluster": { "target": "com.amazonaws.docdbelastic#Cluster", "traits": { - "smithy.api#documentation": "

Returns information about the newly deleted Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Returns information about the newly deleted elastic cluster.

", "smithy.api#required": {} } } @@ -1380,7 +1569,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete a Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

Delete an elastic cluster snapshot.

", "smithy.api#http": { "code": 200, "method": "DELETE", @@ -1395,7 +1584,7 @@ "snapshotArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB snapshot that is to be deleted.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster snapshot that is to be deleted.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "snapshotArn" @@ -1409,7 +1598,7 @@ "snapshot": { "target": "com.amazonaws.docdbelastic#ClusterSnapshot", "traits": { - "smithy.api#documentation": "

Returns information about the newly deleted Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

Returns information about the newly deleted elastic cluster snapshot.

", "smithy.api#required": {} } } @@ -1441,7 +1630,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Returns information about a specific elastic cluster.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -1456,7 +1645,7 @@ "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "clusterArn" @@ -1470,7 +1659,7 @@ "cluster": { "target": "com.amazonaws.docdbelastic#Cluster", "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Returns information about a specific elastic cluster.

", "smithy.api#required": {} } } @@ -1502,7 +1691,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB snapshot

", + "smithy.api#documentation": "

Returns information about a specific elastic cluster snapshot

", "smithy.api#http": { "code": 200, "method": "GET", @@ -1517,7 +1706,7 @@ "snapshotArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster snapshot.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "snapshotArn" @@ -1531,7 +1720,7 @@ "snapshot": { "target": "com.amazonaws.docdbelastic#ClusterSnapshot", "traits": { - "smithy.api#documentation": "

Returns information about a specific Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

Returns information about a specific elastic cluster snapshot.

", "smithy.api#required": {} } } @@ -1577,7 +1766,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about Elastic DocumentDB snapshots for a specified cluster.

", + "smithy.api#documentation": "

Returns information about snapshots for a specified elastic cluster.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -1598,14 +1787,14 @@ "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#httpQuery": "clusterArn" } }, "nextToken": { "target": "com.amazonaws.docdbelastic#PaginationToken", "traits": { - "smithy.api#documentation": "

The nextToken which is used the get the next page of data.

", + "smithy.api#documentation": "

A pagination token provided by a previous request. \n If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results.

\n

If there is no more data in the responce, the nextToken will not be returned.

", "smithy.api#httpQuery": "nextToken" } }, @@ -1613,13 +1802,20 @@ "target": "smithy.api#Integer", "traits": { "smithy.api#default": null, - "smithy.api#documentation": "

The maximum number of entries to recieve in the response.

", + "smithy.api#documentation": "

The maximum number of elastic cluster snapshot results to receive in the response.

", "smithy.api#httpQuery": "maxResults", "smithy.api#range": { "min": 20, "max": 100 } } + }, + "snapshotType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of cluster snapshots to be returned. You can specify one of the following values:

\n
    \n
  • \n

    \n automated - Return all cluster snapshots that Amazon DocumentDB has automatically created for your Amazon Web Services account.

    \n
  • \n
  • \n

    \n manual - Return all cluster snapshots that you have manually created for your Amazon Web Services account.

    \n
  • \n
", + "smithy.api#httpQuery": "snapshotType" + } } } }, @@ -1629,13 +1825,13 @@ "snapshots": { "target": "com.amazonaws.docdbelastic#ClusterSnapshotList", "traits": { - "smithy.api#documentation": "

A list of Elastic DocumentDB snapshots for a specified cluster.

" + "smithy.api#documentation": "

A list of snapshots for a specified elastic cluster.

" } }, "nextToken": { "target": "com.amazonaws.docdbelastic#PaginationToken", "traits": { - "smithy.api#documentation": "

The response will provide a nextToken if there is more data beyond the maxResults.

\n

If there is no more data in the responce, the nextToken will not be returned.

" + "smithy.api#documentation": "

A pagination token provided by a previous request. \n If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results.

\n

If there is no more data in the responce, the nextToken will not be returned.

" } } } @@ -1663,7 +1859,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about provisioned Elastic DocumentDB clusters.

", + "smithy.api#documentation": "

Returns information about provisioned Amazon DocumentDB elastic clusters.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -1684,7 +1880,7 @@ "nextToken": { "target": "com.amazonaws.docdbelastic#PaginationToken", "traits": { - "smithy.api#documentation": "

The nextToken which is used the get the next page of data.

", + "smithy.api#documentation": "

A pagination token provided by a previous request. \n If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results.

\n

If there is no more data in the responce, the nextToken will not be returned.

", "smithy.api#httpQuery": "nextToken" } }, @@ -1692,7 +1888,7 @@ "target": "smithy.api#Integer", "traits": { "smithy.api#default": null, - "smithy.api#documentation": "

The maximum number of entries to recieve in the response.

", + "smithy.api#documentation": "

The maximum number of elastic cluster snapshot results to receive in the response.

", "smithy.api#httpQuery": "maxResults", "smithy.api#range": { "min": 1, @@ -1708,13 +1904,13 @@ "clusters": { "target": "com.amazonaws.docdbelastic#ClusterList", "traits": { - "smithy.api#documentation": "

A list of Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

A list of Amazon DocumentDB elastic clusters.

" } }, "nextToken": { "target": "com.amazonaws.docdbelastic#PaginationToken", "traits": { - "smithy.api#documentation": "

The response will provide a nextToken if there is more data beyond the maxResults.

\n

If there is no more data in the responce, the nextToken will not be returned.

" + "smithy.api#documentation": "

A pagination token provided by a previous request. \n If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results.

\n

If there is no more data in the responce, the nextToken will not be returned.

" } } } @@ -1742,7 +1938,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all tags on a Elastic DocumentDB resource

", + "smithy.api#documentation": "

Lists all tags on a elastic cluster resource

", "smithy.api#http": { "uri": "/tags/{resourceArn}", "method": "GET" @@ -1756,7 +1952,7 @@ "resourceArn": { "target": "com.amazonaws.docdbelastic#Arn", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB resource.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1769,7 +1965,7 @@ "tags": { "target": "com.amazonaws.docdbelastic#TagMap", "traits": { - "smithy.api#documentation": "

The list of tags for the specified Elastic DocumentDB resource.

" + "smithy.api#documentation": "

The list of tags for the specified elastic cluster resource.

" } } } @@ -1849,7 +2045,7 @@ } ], "traits": { - "smithy.api#documentation": "

Restores a Elastic DocumentDB cluster from a snapshot.

", + "smithy.api#documentation": "

Restores an elastic cluster from a snapshot.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -1864,14 +2060,14 @@ "clusterName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The name of the elastic cluster.

", "smithy.api#required": {} } }, "snapshotArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB snapshot.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster snapshot.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "snapshotArn" @@ -1880,25 +2076,37 @@ "vpcSecurityGroupIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the\n Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the elastic cluster.

" } }, "subnetIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the elastic cluster.

" } }, "kmsKeyId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.

\n

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS\n encryption key. If you are creating a cluster using the same Amazon account\n that owns this KMS encryption key, you can use the KMS key alias instead\n of the ARN as the KMS encryption key.

\n

If an encryption key is not specified here, Elastic DocumentDB uses the\n default encryption key that KMS creates for your account. Your account\n has a different default encryption key for each Amazon Region.

" + "smithy.api#documentation": "

The KMS key identifier to use to encrypt the new Amazon DocumentDB elastic clusters cluster.

\n

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS\n encryption key. If you are creating a cluster using the same Amazon account\n that owns this KMS encryption key, you can use the KMS key alias instead\n of the ARN as the KMS encryption key.

\n

If an encryption key is not specified here, Amazon DocumentDB uses the\n default encryption key that KMS creates for your account. Your account\n has a different default encryption key for each Amazon Region.

" } }, "tags": { "target": "com.amazonaws.docdbelastic#TagMap", "traits": { - "smithy.api#documentation": "

A list of the tag names to be assigned to the restored DB cluster,\n in the form of an array of key-value pairs in which the key\n is the tag name and the value is the key value.

" + "smithy.api#documentation": "

A list of the tag names to be assigned to the restored elastic cluster, in the form of an array of key-value pairs in which the key is the tag name and the value is the key value.

" + } + }, + "shardCapacity": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The capacity of each shard in the new restored elastic cluster.

" + } + }, + "shardInstanceCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of replica instances applying to all shards in the elastic cluster. \n A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

" } } } @@ -1909,7 +2117,7 @@ "cluster": { "target": "com.amazonaws.docdbelastic#Cluster", "traits": { - "smithy.api#documentation": "

Returns information about a the restored Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Returns information about a the restored elastic cluster.

", "smithy.api#required": {} } } @@ -1931,6 +2139,157 @@ "smithy.api#httpError": 402 } }, + "com.amazonaws.docdbelastic#Shard": { + "type": "structure", + "members": { + "shardId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the shard.

", + "smithy.api#required": {} + } + }, + "createTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The time when the shard was created in Universal Coordinated Time (UTC).

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.docdbelastic#Status", + "traits": { + "smithy.api#documentation": "

The current status of the shard.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The name of the shard.

" + } + }, + "com.amazonaws.docdbelastic#ShardList": { + "type": "list", + "member": { + "target": "com.amazonaws.docdbelastic#Shard" + } + }, + "com.amazonaws.docdbelastic#SnapshotType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MANUAL", + "name": "MANUAL" + }, + { + "value": "AUTOMATED", + "name": "AUTOMATED" + } + ] + } + }, + "com.amazonaws.docdbelastic#StartCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.docdbelastic#StartClusterInput" + }, + "output": { + "target": "com.amazonaws.docdbelastic#StartClusterOutput" + }, + "errors": [ + { + "target": "com.amazonaws.docdbelastic#AccessDeniedException" + }, + { + "target": "com.amazonaws.docdbelastic#InternalServerException" + }, + { + "target": "com.amazonaws.docdbelastic#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.docdbelastic#ThrottlingException" + }, + { + "target": "com.amazonaws.docdbelastic#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Restarts the stopped elastic cluster that is specified by clusterARN.

", + "smithy.api#examples": [ + { + "title": "Basic Start Cluster Example", + "documentation": "update applied", + "input": { + "clusterArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster/$CLUSTER_ID" + }, + "output": { + "cluster": { + "clusterName": "sampleClusterName", + "clusterArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster/$CLUSTER_ID", + "status": "STARTING", + "clusterEndpoint": "sampleClusterName.us-east-1.docdb-elastic.amazonaws.com", + "createTime": "2000-01-01T00:00:00.000Z", + "adminUserName": "sampleAdminUser", + "authType": "PLAIN_TEXT", + "shardCapacity": 2, + "shardCount": 2, + "vpcSecurityGroupIds": [ + "vpcSgId1, vpcSgId2" + ], + "subnetIds": [ + "subnetId1", + "subnetId2" + ], + "preferredMaintenanceWindow": "mon:00:00-mon:00:30", + "kmsKeyId": "AWS_OWNED_KMS_KEY", + "shards": [], + "backupRetentionPeriod": 1, + "preferredBackupWindow": "01:00-01:30", + "shardInstanceCount": 1 + } + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/cluster/{clusterArn}/start" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.docdbelastic#StartClusterInput": { + "type": "structure", + "members": { + "clusterArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "clusterArn" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.docdbelastic#StartClusterOutput": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.docdbelastic#Cluster", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.docdbelastic#Status": { "type": "string", "traits": { @@ -1970,10 +2329,151 @@ { "value": "INACCESSIBLE_ENCRYPTION_CREDS", "name": "INACCESSIBLE_ENCRYPTION_CREDS" + }, + { + "value": "INACCESSIBLE_SECRET_ARN", + "name": "INACCESSIBLE_SECRET_ARN" + }, + { + "value": "INACCESSIBLE_VPC_ENDPOINT", + "name": "INACCESSIBLE_VPC_ENDPOINT" + }, + { + "value": "INCOMPATIBLE_NETWORK", + "name": "INCOMPATIBLE_NETWORK" + }, + { + "value": "MERGING", + "name": "MERGING" + }, + { + "value": "MODIFYING", + "name": "MODIFYING" + }, + { + "value": "SPLITTING", + "name": "SPLITTING" + }, + { + "value": "COPYING", + "name": "COPYING" + }, + { + "value": "STARTING", + "name": "STARTING" + }, + { + "value": "STOPPING", + "name": "STOPPING" + }, + { + "value": "STOPPED", + "name": "STOPPED" } ] } }, + "com.amazonaws.docdbelastic#StopCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.docdbelastic#StopClusterInput" + }, + "output": { + "target": "com.amazonaws.docdbelastic#StopClusterOutput" + }, + "errors": [ + { + "target": "com.amazonaws.docdbelastic#AccessDeniedException" + }, + { + "target": "com.amazonaws.docdbelastic#InternalServerException" + }, + { + "target": "com.amazonaws.docdbelastic#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.docdbelastic#ThrottlingException" + }, + { + "target": "com.amazonaws.docdbelastic#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Stops the running elastic cluster that is specified by clusterArn. \n The elastic cluster must be in the available state.

", + "smithy.api#examples": [ + { + "title": "Basic Stop Cluster Example", + "documentation": "update applied", + "input": { + "clusterArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster/$CLUSTER_ID" + }, + "output": { + "cluster": { + "clusterName": "sampleClusterName", + "clusterArn": "arn:aws:docdb-elastic:us-east-1:$AWS_ACCOUNT_ID:cluster/$CLUSTER_ID", + "status": "STOPPING", + "clusterEndpoint": "sampleClusterName.us-east-1.docdb-elastic.amazonaws.com", + "createTime": "2000-01-01T00:00:00.000Z", + "adminUserName": "sampleAdminUser", + "authType": "PLAIN_TEXT", + "shardCapacity": 2, + "shardCount": 2, + "vpcSecurityGroupIds": [ + "vpcSgId1, vpcSgId2" + ], + "subnetIds": [ + "subnetId1", + "subnetId2" + ], + "preferredMaintenanceWindow": "mon:00:00-mon:00:30", + "kmsKeyId": "AWS_OWNED_KMS_KEY", + "shards": [], + "backupRetentionPeriod": 1, + "preferredBackupWindow": "01:00-01:30", + "shardInstanceCount": 1 + } + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/cluster/{clusterArn}/stop" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.docdbelastic#StopClusterInput": { + "type": "structure", + "members": { + "clusterArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "clusterArn" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.docdbelastic#StopClusterOutput": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.docdbelastic#Cluster", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.docdbelastic#StringList": { "type": "list", "member": { @@ -2034,7 +2534,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds metadata tags to a Elastic DocumentDB resource

", + "smithy.api#documentation": "

Adds metadata tags to an elastic cluster resource

", "smithy.api#http": { "uri": "/tags/{resourceArn}", "method": "POST" @@ -2047,7 +2547,7 @@ "resourceArn": { "target": "com.amazonaws.docdbelastic#Arn", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB resource.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2055,7 +2555,7 @@ "tags": { "target": "com.amazonaws.docdbelastic#TagMap", "traits": { - "smithy.api#documentation": "

The tags to be assigned to the Elastic DocumentDB resource.

", + "smithy.api#documentation": "

The tags that are assigned to the elastic cluster resource.

", "smithy.api#required": {} } } @@ -2121,7 +2621,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes metadata tags to a Elastic DocumentDB resource

", + "smithy.api#documentation": "

Removes metadata tags from an elastic cluster resource

", "smithy.api#http": { "uri": "/tags/{resourceArn}", "method": "DELETE" @@ -2135,7 +2635,7 @@ "resourceArn": { "target": "com.amazonaws.docdbelastic#Arn", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB resource.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster resource.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2143,7 +2643,7 @@ "tagKeys": { "target": "com.amazonaws.docdbelastic#TagKeyList", "traits": { - "smithy.api#documentation": "

The tag keys to be removed from the Elastic DocumentDB resource.

", + "smithy.api#documentation": "

The tag keys to be removed from the elastic cluster resource.

", "smithy.api#httpQuery": "tagKeys", "smithy.api#required": {} } @@ -2183,7 +2683,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies a Elastic DocumentDB cluster. This includes updating admin-username/password, \n upgrading API version setting up a backup window and maintenance window

", + "smithy.api#documentation": "

Modifies an elastic cluster. This includes updating admin-username/password, \n upgrading the API version, and setting up a backup window and maintenance window

", "smithy.api#http": { "code": 200, "method": "PUT", @@ -2198,7 +2698,7 @@ "clusterArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The arn of the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The ARN identifier of the elastic cluster.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.api#resourceIdentifier": "clusterArn" @@ -2207,50 +2707,68 @@ "authType": { "target": "com.amazonaws.docdbelastic#Auth", "traits": { - "smithy.api#documentation": "

The authentication type for the Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The authentication type used to determine where to fetch the password used for accessing the elastic cluster. \n Valid types are PLAIN_TEXT or SECRET_ARN.

" } }, "shardCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The capacity of each shard in the Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The number of vCPUs assigned to each elastic cluster shard. \n Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

" } }, "shardCount": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The number of shards to create in the Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The number of shards assigned to the elastic cluster. Maximum is 32.

" } }, "vpcSecurityGroupIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the new\n Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the elastic cluster.

" } }, "subnetIds": { "target": "com.amazonaws.docdbelastic#StringList", "traits": { - "smithy.api#documentation": "

The number of shards to create in the Elastic DocumentDB cluster.

" + "smithy.api#documentation": "

The Amazon EC2 subnet IDs for the elastic cluster.

" } }, "adminUserPassword": { "target": "com.amazonaws.docdbelastic#Password", "traits": { - "smithy.api#documentation": "

The password for the Elastic DocumentDB cluster administrator. This password can\n contain any printable ASCII character except forward slash (/),\n double quote (\"), or the \"at\" symbol (@).

\n

\n Constraints: Must contain from 8 to 100 characters.

" + "smithy.api#documentation": "

The password associated with the elastic cluster administrator. \n This password can contain any printable ASCII character except forward slash (/), double quote (\"), or the \"at\" symbol (@).

\n

\n Constraints: Must contain from 8 to 100 characters.

" } }, "clientToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The client token for the Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

The client token for the elastic cluster.

", "smithy.api#idempotencyToken": {} } }, "preferredMaintenanceWindow": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The weekly time range during which system maintenance can occur,\n in Universal Coordinated Time (UTC).

\n

\n Format: ddd:hh24:mi-ddd:hh24:mi\n

\n

\n Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

\n

\n Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

\n

\n Constraints: Minimum 30-minute window.

" + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

\n

\n Format: ddd:hh24:mi-ddd:hh24:mi\n

\n

\n Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

\n

\n Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

\n

\n Constraints: Minimum 30-minute window.

" + } + }, + "backupRetentionPeriod": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic snapshots are retained.

" + } + }, + "preferredBackupWindow": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the backupRetentionPeriod.

" + } + }, + "shardInstanceCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of replica instances applying to all shards in the elastic cluster. \n A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

" } } } @@ -2261,7 +2779,7 @@ "cluster": { "target": "com.amazonaws.docdbelastic#Cluster", "traits": { - "smithy.api#documentation": "

Returns information about the updated Elastic DocumentDB cluster.

", + "smithy.api#documentation": "

Returns information about the updated elastic cluster.

", "smithy.api#required": {} } } diff --git a/codegen/sdk/aws-models/drs.json b/codegen/sdk/aws-models/drs.json index 37b16ea945a..e1344ff4141 100644 --- a/codegen/sdk/aws-models/drs.json +++ b/codegen/sdk/aws-models/drs.json @@ -310,6 +310,12 @@ "traits": { "smithy.api#documentation": "

A mapping between the volumes and their sizes

" } + }, + "volumeToProductCodes": { + "target": "com.amazonaws.drs#VolumeToProductCodes", + "traits": { + "smithy.api#documentation": "

A mapping between the volumes being converted and the product codes associated with them

" + } } }, "traits": { @@ -911,6 +917,12 @@ "smithy.api#default": 0, "smithy.api#documentation": "

The size of the replication backlog in bytes.

" } + }, + "volumeStatus": { + "target": "com.amazonaws.drs#VolumeStatus", + "traits": { + "smithy.api#documentation": "

The status of the volume.

" + } } }, "traits": { @@ -5729,6 +5741,57 @@ } } }, + "com.amazonaws.drs#ProductCode": { + "type": "structure", + "members": { + "productCodeId": { + "target": "com.amazonaws.drs#ProductCodeId", + "traits": { + "smithy.api#documentation": "

Id of a product code associated with a volume.

" + } + }, + "productCodeMode": { + "target": "com.amazonaws.drs#ProductCodeMode", + "traits": { + "smithy.api#documentation": "

Mode of a product code associated with a volume.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Properties of a product code associated with a volume.

" + } + }, + "com.amazonaws.drs#ProductCodeId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 25, + "max": 25 + }, + "smithy.api#pattern": "^([A-Za-z0-9])+$" + } + }, + "com.amazonaws.drs#ProductCodeMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ENABLED", + "value": "ENABLED" + }, + { + "name": "DISABLED", + "value": "DISABLED" + } + ] + } + }, + "com.amazonaws.drs#ProductCodes": { + "type": "list", + "member": { + "target": "com.amazonaws.drs#ProductCode" + } + }, "com.amazonaws.drs#PutLaunchAction": { "type": "operation", "input": { @@ -9487,6 +9550,29 @@ ] } }, + "com.amazonaws.drs#VolumeStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "REGULAR", + "name": "REGULAR" + }, + { + "value": "CONTAINS_MARKETPLACE_PRODUCT_CODES", + "name": "CONTAINS_MARKETPLACE_PRODUCT_CODES" + }, + { + "value": "MISSING_VOLUME_ATTRIBUTES", + "name": "MISSING_VOLUME_ATTRIBUTES" + }, + { + "value": "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE", + "name": "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE" + } + ] + } + }, "com.amazonaws.drs#VolumeToConversionMap": { "type": "map", "key": { @@ -9496,6 +9582,15 @@ "target": "com.amazonaws.drs#ConversionMap" } }, + "com.amazonaws.drs#VolumeToProductCodes": { + "type": "map", + "key": { + "target": "com.amazonaws.drs#LargeBoundedString" + }, + "value": { + "target": "com.amazonaws.drs#ProductCodes" + } + }, "com.amazonaws.drs#VolumeToSizeMap": { "type": "map", "key": { diff --git a/codegen/sdk/aws-models/ec2.json b/codegen/sdk/aws-models/ec2.json index 53bca128391..4c7fd781485 100644 --- a/codegen/sdk/aws-models/ec2.json +++ b/codegen/sdk/aws-models/ec2.json @@ -27541,7 +27541,7 @@ "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferingsResult" }, "traits": { - "smithy.api#documentation": "

Describes Capacity Block offerings available for purchase. With Capacity Blocks, you purchase a specific instance type for a period of time.

", + "smithy.api#documentation": "

Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a specific instance type for a period of time.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -29808,7 +29808,7 @@ "target": "com.amazonaws.ec2#DescribeFleetInstancesResult" }, "traits": { - "smithy.api#documentation": "

Describes the running instances for the specified EC2 Fleet.

\n

For more information, see Monitor your EC2 Fleet in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Describes the running instances for the specified EC2 Fleet.

\n \n

Currently, DescribeFleetInstances does not support fleets of type\n instant. Instead, use DescribeFleets, specifying the\n instant fleet ID in the request.

\n
\n

For more information, see Describe your\n EC2 Fleet in the Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#DescribeFleetInstancesRequest": { @@ -29893,7 +29893,7 @@ "target": "com.amazonaws.ec2#DescribeFleetsResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified EC2 Fleets or all of your EC2 Fleets.

\n

For more information, see Monitor your EC2 Fleet in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

Describes the specified EC2 Fleet or all of your EC2 Fleets.

\n \n

If a fleet is of type instant, you must specify the fleet ID in the\n request, otherwise the fleet does not appear in the response.

\n
\n

For more information, see Describe your\n EC2 Fleet in the Amazon EC2 User Guide.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -31584,7 +31584,7 @@ "target": "com.amazonaws.ec2#DescribeInstanceStatusResult" }, "traits": { - "smithy.api#documentation": "

Describes the status of the specified instances or all of your instances. By default,\n only running instances are described, unless you specifically indicate to return the\n status of all instances.

\n

Instance status includes the following components:

\n
    \n
  • \n

    \n Status checks - Amazon EC2 performs status\n checks on running EC2 instances to identify hardware and software issues. For\n more information, see Status checks for your instances and Troubleshoot\n instances with failed status checks in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Scheduled events - Amazon EC2 can schedule\n events (such as reboot, stop, or terminate) for your instances related to\n hardware issues, software updates, or system maintenance. For more information,\n see Scheduled events for your instances in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Instance state - You can manage your instances\n from the moment you launch them through their termination. For more information,\n see Instance\n lifecycle in the Amazon EC2 User Guide.

    \n
  • \n
", + "smithy.api#documentation": "

Describes the status of the specified instances or all of your instances. By default,\n only running instances are described, unless you specifically indicate to return the\n status of all instances.

\n

Instance status includes the following components:

\n
    \n
  • \n

    \n Status checks - Amazon EC2 performs status\n checks on running EC2 instances to identify hardware and software issues. For\n more information, see Status checks for your instances and Troubleshoot\n instances with failed status checks in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Scheduled events - Amazon EC2 can schedule\n events (such as reboot, stop, or terminate) for your instances related to\n hardware issues, software updates, or system maintenance. For more information,\n see Scheduled events for your instances in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Instance state - You can manage your instances\n from the moment you launch them through their termination. For more information,\n see Instance\n lifecycle in the Amazon EC2 User Guide.

    \n
  • \n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe the status of an instance", @@ -32031,7 +32031,7 @@ "target": "com.amazonaws.ec2#DescribeInstancesResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified instances or all instances.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those\n instances that meet the filter criteria. If you do not specify instance IDs or filters,\n the output includes information for all instances, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

If you specify an instance ID that is not valid, an error is returned. If you specify\n an instance that you do not own, it is not included in the output.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If you describe instances in the rare case where an Availability Zone is experiencing\n a service disruption and you specify instance IDs that are in the affected zone, or do\n not specify any instance IDs at all, the call fails. If you describe instances and\n specify only instance IDs that are in an unaffected zone, the call works\n normally.

", + "smithy.api#documentation": "

Describes the specified instances or all instances.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those\n instances that meet the filter criteria. If you do not specify instance IDs or filters,\n the output includes information for all instances, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

If you specify an instance ID that is not valid, an error is returned. If you specify\n an instance that you do not own, it is not included in the output.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If you describe instances in the rare case where an Availability Zone is experiencing\n a service disruption and you specify instance IDs that are in the affected zone, or do\n not specify any instance IDs at all, the call fails. If you describe instances and\n specify only instance IDs that are in an unaffected zone, the call works\n normally.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe an Amazon EC2 instance", @@ -35857,7 +35857,7 @@ "target": "com.amazonaws.ec2#DescribeReservedInstancesResult" }, "traits": { - "smithy.api#documentation": "

Describes one or more of the Reserved Instances that you purchased.

\n

For more information about Reserved Instances, see Reserved\n\t\t\t\tInstances in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Describes one or more of the Reserved Instances that you purchased.

\n

For more information about Reserved Instances, see Reserved\n\t\t\t\tInstances in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
" } }, "com.amazonaws.ec2#DescribeReservedInstancesListings": { @@ -35869,7 +35869,7 @@ "target": "com.amazonaws.ec2#DescribeReservedInstancesListingsResult" }, "traits": { - "smithy.api#documentation": "

Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.

\n

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

\n

As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase.

\n

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase.

\n

For more information, see Reserved Instance Marketplace \n in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.

\n

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

\n

As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase.

\n

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase.

\n

For more information, see Reserved Instance Marketplace \n in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
" } }, "com.amazonaws.ec2#DescribeReservedInstancesListingsRequest": { @@ -35930,7 +35930,7 @@ "target": "com.amazonaws.ec2#DescribeReservedInstancesModificationsResult" }, "traits": { - "smithy.api#documentation": "

Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned.

\n

For more information, see Modifying Reserved Instances in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned.

\n

For more information, see Modifying Reserved Instances in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -36003,7 +36003,7 @@ "target": "com.amazonaws.ec2#DescribeReservedInstancesOfferingsResult" }, "traits": { - "smithy.api#documentation": "

Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used.

\n

If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances.

\n

For more information, see Reserved Instance Marketplace\n\t\t\t\tin the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used.

\n

If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances.

\n

For more information, see Reserved Instance Marketplace\n\t\t\t\tin the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -38051,7 +38051,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "NextToken", - "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is\n an empty string (\"\") or null when there are no more items to return.

", "smithy.api#xmlName": "nextToken" } }, @@ -49485,7 +49485,7 @@ "target": "com.amazonaws.ec2#Double", "traits": { "aws.protocols#ec2QueryName": "WeightedCapacity", - "smithy.api#documentation": "

The number of units provided by the specified instance type.

", + "smithy.api#documentation": "

The number of units provided by the specified instance type.

\n \n

When specifying weights, the price used in the lowest-price and\n price-capacity-optimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
", "smithy.api#xmlName": "weightedCapacity" } }, @@ -49574,7 +49574,7 @@ "WeightedCapacity": { "target": "com.amazonaws.ec2#Double", "traits": { - "smithy.api#documentation": "

The number of units provided by the specified instance type.

" + "smithy.api#documentation": "

The number of units provided by the specified instance type.

\n \n

When specifying weights, the price used in the lowest-price and\n price-capacity-optimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
" } }, "Priority": { @@ -52602,6 +52602,15 @@ } } }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsRequest": { "type": "structure", "members": { @@ -52614,7 +52623,7 @@ } }, "MaxResults": { - "target": "com.amazonaws.ec2#NetworkInsightsMaxResults", + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults", "traits": { "smithy.api#documentation": "

The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

" } @@ -59861,7 +59870,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "SpotMaxPricePercentageOverLowestPrice", - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as\n 999999.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the per-vCPU\n or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, then SpotMaxPricePercentageOverLowestPrice is used\n and the value for that parameter defaults to 100.

\n
\n

Default: 100\n

", + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the per-vCPU\n or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
\n

Default: 100\n

", "smithy.api#xmlName": "spotMaxPricePercentageOverLowestPrice" } }, @@ -59997,7 +60006,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice", - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as\n 999999.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, then SpotMaxPricePercentageOverLowestPrice is used\n and the value for that parameter defaults to 100.

\n
", + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
", "smithy.api#xmlName": "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" } } @@ -60055,7 +60064,7 @@ "SpotMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as 999999.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, then SpotMaxPricePercentageOverLowestPrice is used\n and the value for that parameter defaults to 100.

\n
\n

Default: 100\n

" + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
\n

Default: 100\n

" } }, "OnDemandMaxPricePercentageOverLowestPrice": { @@ -60162,7 +60171,7 @@ "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as\n 999999.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, then SpotMaxPricePercentageOverLowestPrice is used\n and the value for that parameter defaults to 100.

\n
" + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
" } } }, @@ -60669,7 +60678,7 @@ "target": "com.amazonaws.ec2#NetworkNodesList", "traits": { "aws.protocols#ec2QueryName": "NetworkNodeSet", - "smithy.api#documentation": "

The network nodes. The nodes are hashed based on your account. Instances from\n different accounts running under the same droplet will return a different hashed list of\n strings.

", + "smithy.api#documentation": "

The network nodes. The nodes are hashed based on your account. Instances from\n different accounts running under the same server will return a different hashed list of\n strings.

", "smithy.api#xmlName": "networkNodeSet" } }, @@ -70836,7 +70845,7 @@ "target": "com.amazonaws.ec2#Double", "traits": { "aws.protocols#ec2QueryName": "WeightedCapacity", - "smithy.api#documentation": "

The number of units provided by the specified instance type.

", + "smithy.api#documentation": "

The number of units provided by the specified instance type.

\n \n

When specifying weights, the price used in the lowest-price and\n price-capacity-optimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
", "smithy.api#xmlName": "weightedCapacity" } }, @@ -74795,7 +74804,7 @@ "target": "com.amazonaws.ec2#ModifyInstancePlacementResult" }, "traits": { - "smithy.api#documentation": "

Modifies the placement attributes for a specified instance. You can do the\n following:

\n
    \n
  • \n

    Modify the affinity between an instance and a Dedicated\n Host. When affinity is set to host and the instance is\n not associated with a specific Dedicated Host, the next time the instance is\n launched, it is automatically associated with the host on which it lands. If the\n instance is restarted or rebooted, this relationship persists.

    \n
  • \n
  • \n

    Change the Dedicated Host with which an instance is associated.

    \n
  • \n
  • \n

    Change the instance tenancy of an instance.

    \n
  • \n
  • \n

    Move an instance to or from a placement\n group.

    \n
  • \n
\n

At least one attribute for affinity, host ID, tenancy, or placement group name must be\n specified in the request. Affinity and tenancy can be modified in the same\n request.

\n

To modify the host ID, tenancy, placement group, or partition for an instance, the\n instance must be in the stopped state.

" + "smithy.api#documentation": "

Modifies the placement attributes for a specified instance. You can do the\n following:

\n
    \n
  • \n

    Modify the affinity between an instance and a Dedicated\n Host. When affinity is set to host and the instance is\n not associated with a specific Dedicated Host, the next time the instance is\n started, it is automatically associated with the host on which it lands. If the\n instance is restarted or rebooted, this relationship persists.

    \n
  • \n
  • \n

    Change the Dedicated Host with which an instance is associated.

    \n
  • \n
  • \n

    Change the instance tenancy of an instance.

    \n
  • \n
  • \n

    Move an instance to or from a placement\n group.

    \n
  • \n
\n

At least one attribute for affinity, host ID, tenancy, or placement group name must be\n specified in the request. Affinity and tenancy can be modified in the same\n request.

\n

To modify the host ID, tenancy, placement group, or partition for an instance, the\n instance must be in the stopped state.

" } }, "com.amazonaws.ec2#ModifyInstancePlacementRequest": { @@ -74805,7 +74814,7 @@ "target": "com.amazonaws.ec2#Affinity", "traits": { "aws.protocols#ec2QueryName": "Affinity", - "smithy.api#documentation": "

The affinity setting for the instance.

", + "smithy.api#documentation": "

The affinity setting for the instance. For more information, see Host affinity in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "affinity" } }, @@ -92095,7 +92104,7 @@ "AssociatePublicIpAddress": { "target": "com.amazonaws.ec2#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to instances launched in a VPC. The\n public IPv4 address can only be assigned to a network interface for eth0, and can only be\n assigned to a new network interface, not an existing one. You cannot specify more than one\n network interface in the request. If launching into a default subnet, the default value is\n true.

\n

Starting on February 1, 2024, Amazon Web Services will charge for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

" + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to instances launched in a VPC. The\n public IPv4 address can only be assigned to a network interface for eth0, and can only be\n assigned to a new network interface, not an existing one. You cannot specify more than one\n network interface in the request. If launching into a default subnet, the default value is\n true.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

" } }, "DeleteOnTermination": { diff --git a/codegen/sdk/aws-models/eks.json b/codegen/sdk/aws-models/eks.json index 85b8a563ad2..19dd684998a 100644 --- a/codegen/sdk/aws-models/eks.json +++ b/codegen/sdk/aws-models/eks.json @@ -103,6 +103,18 @@ "traits": { "smithy.api#enumValue": "WINDOWS_FULL_2022_x86_64" } + }, + "AL2023_x86_64_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AL2023_x86_64_STANDARD" + } + }, + "AL2023_ARM_64_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AL2023_ARM_64_STANDARD" + } } } }, diff --git a/codegen/sdk/aws-models/fsx.json b/codegen/sdk/aws-models/fsx.json index 03c645b432a..42c5e7570be 100644 --- a/codegen/sdk/aws-models/fsx.json +++ b/codegen/sdk/aws-models/fsx.json @@ -2494,7 +2494,7 @@ } }, "traits": { - "smithy.api#documentation": "

Used to specify the configuration options for a volume's storage aggregate or aggregates.

" + "smithy.api#documentation": "

Used to specify the configuration options for an FSx for ONTAP volume's storage aggregate or aggregates.

" } }, "com.amazonaws.fsx#CreateBackup": { @@ -3284,7 +3284,7 @@ "RouteTableIds": { "target": "com.amazonaws.fsx#RouteTableIds", "traits": { - "smithy.api#documentation": "

(Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules\n for routing traffic to the correct file server. You should specify all virtual private cloud\n (VPC) route tables associated with the subnets in which your clients are located. By default,\n Amazon FSx selects your VPC's default route table.

" + "smithy.api#documentation": "

(Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules\n for routing traffic to the correct file server. You should specify all virtual private cloud\n (VPC) route tables associated with the subnets in which your clients are located. By default,\n Amazon FSx selects your VPC's default route table.

\n \n

Amazon FSx manages these route tables for Multi-AZ file systems using tag-based authentication. \n These route tables are tagged with Key: AmazonFSx; Value: ManagedByAmazonFSx. \n When creating FSx for ONTAP Multi-AZ file systems using CloudFormation we recommend that you add the \n Key: AmazonFSx; Value: ManagedByAmazonFSx tag manually.

\n
" } }, "ThroughputCapacity": { @@ -3299,13 +3299,13 @@ "HAPairs": { "target": "com.amazonaws.fsx#HAPairs", "traits": { - "smithy.api#documentation": "

Specifies how many high-availability (HA) pairs the file system will have. The default value is 1. The value of this property affects the values of StorageCapacity, Iops, and ThroughputCapacity. For more information, see High-availability (HA) pairs in the FSx for ONTAP user guide.

\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of HAPairs is less than 1 or greater than 6.

    \n
  • \n
  • \n

    The value of HAPairs is greater than 1 and the value of DeploymentType is SINGLE_AZ_1 or MULTI_AZ_1.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies how many high-availability (HA) pairs of file servers will power your file system. Scale-up file systems are powered by 1 HA pair. The default value is 1. \n FSx for ONTAP scale-out file systems are powered by up to 12 HA pairs. The value of this property affects the values of StorageCapacity, \n Iops, and ThroughputCapacity. For more information, see \n High-availability (HA) pairs in the FSx for ONTAP user guide.

\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of HAPairs is less than 1 or greater than 12.

    \n
  • \n
  • \n

    The value of HAPairs is greater than 1 and the value of DeploymentType is SINGLE_AZ_1 or MULTI_AZ_1.

    \n
  • \n
" } }, "ThroughputCapacityPerHAPair": { "target": "com.amazonaws.fsx#ThroughputCapacityPerHAPair", "traits": { - "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

\n

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

\n

This field and ThroughputCapacity are the same for file systems with one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value for file systems with one HA pair.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 6).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" + "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

\n

You can define either the ThroughputCapacityPerHAPair or the ThroughputCapacity when creating a file system, but not both.

\n

This field and ThroughputCapacity are the same for scale-up file systems powered by one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1 file systems, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2 file systems, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value for file systems with one HA pair.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 12).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" } } }, @@ -3407,7 +3407,7 @@ "target": "com.amazonaws.fsx#StorageCapacity", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Sets the storage capacity of the file system that you're creating, in gibibytes (GiB).

\n

\n FSx for Lustre file systems - The amount of\n storage capacity that you can configure depends on the value that you set for\n StorageType and the Lustre DeploymentType, as\n follows:

\n
    \n
  • \n

    For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types \n using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

    \n
  • \n
  • \n

    For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for \n 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.

    \n
  • \n
  • \n

    For SCRATCH_1 deployment type, valid values are \n 1200 GiB, 2400 GiB, and increments of 3600 GiB.

    \n
  • \n
\n

\n FSx for ONTAP file systems - The amount of storage capacity \n that you can configure depends on the value of the HAPairs property. The minimum value is calculated as 1,024 * HAPairs and the maxium is calculated as 524,288 * HAPairs..

\n

\n FSx for OpenZFS file systems - The amount of storage capacity that \n you can configure is from 64 GiB up to 524,288 GiB (512 TiB).

\n

\n FSx for Windows File Server file systems - The amount\n of storage capacity that you can configure depends on the value that you set for\n StorageType as follows:

\n
    \n
  • \n

    For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    \n
  • \n
  • \n

    For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).

    \n
  • \n
", + "smithy.api#documentation": "

Sets the storage capacity of the file system that you're creating, in gibibytes (GiB).

\n

\n FSx for Lustre file systems - The amount of\n storage capacity that you can configure depends on the value that you set for\n StorageType and the Lustre DeploymentType, as\n follows:

\n
    \n
  • \n

    For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types \n using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

    \n
  • \n
  • \n

    For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for \n 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.

    \n
  • \n
  • \n

    For SCRATCH_1 deployment type, valid values are \n 1200 GiB, 2400 GiB, and increments of 3600 GiB.

    \n
  • \n
\n

\n FSx for ONTAP file systems - The amount of storage capacity \n that you can configure depends on the value of the HAPairs property. The minimum value is calculated as 1,024 * HAPairs and the maximum is calculated as 524,288 * HAPairs.

\n

\n FSx for OpenZFS file systems - The amount of storage capacity that \n you can configure is from 64 GiB up to 524,288 GiB (512 TiB).

\n

\n FSx for Windows File Server file systems - The amount\n of storage capacity that you can configure depends on the value that you set for\n StorageType as follows:

\n
    \n
  • \n

    For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    \n
  • \n
  • \n

    For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).

    \n
  • \n
", "smithy.api#required": {} } }, @@ -3428,7 +3428,7 @@ "SecurityGroupIds": { "target": "com.amazonaws.fsx#SecurityGroupIds", "traits": { - "smithy.api#documentation": "

A list of IDs specifying the security groups to apply to all network interfaces\n created for file system access. This list isn't returned in later requests to\n describe the file system.

" + "smithy.api#documentation": "

A list of IDs specifying the security groups to apply to all network interfaces\n created for file system access. This list isn't returned in later requests to\n describe the file system.

\n \n

You must specify a security group if you are creating a Multi-AZ \n FSx for ONTAP file system in a VPC subnet that has been shared with you.

\n
" } }, "Tags": { @@ -3576,7 +3576,7 @@ "SecurityStyle": { "target": "com.amazonaws.fsx#SecurityStyle", "traits": { - "smithy.api#documentation": "

Specifies the security style for the volume. If a volume's security style is not specified, \n it is automatically set to the root volume's security style. The security style determines the type of permissions \n that FSx for ONTAP uses to control data access. For more information, see \n Volume security style \n in the Amazon FSx for NetApp ONTAP User Guide.\n Specify one of the following values:

\n
    \n
  • \n

    \n UNIX if the file system is managed by a UNIX\n administrator, the majority of users are NFS clients, and an application\n accessing the data uses a UNIX user as the service account.\n

    \n
  • \n
  • \n

    \n NTFS if the file system is managed by a Windows\n administrator, the majority of users are SMB clients, and an application\n accessing the data uses a Windows user as the service account.

    \n
  • \n
  • \n

    \n MIXED if the file system is managed by both UNIX\n and Windows administrators and users consist of both NFS and SMB clients.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the security style for the volume. If a volume's security style is not specified, \n it is automatically set to the root volume's security style. The security style determines the type of permissions \n that FSx for ONTAP uses to control data access. For more information, see \n Volume security style \n in the Amazon FSx for NetApp ONTAP User Guide.\n Specify one of the following values:

\n
    \n
  • \n

    \n UNIX if the file system is managed by a UNIX\n administrator, the majority of users are NFS clients, and an application\n accessing the data uses a UNIX user as the service account.\n

    \n
  • \n
  • \n

    \n NTFS if the file system is managed by a Windows\n administrator, the majority of users are SMB clients, and an application\n accessing the data uses a Windows user as the service account.

    \n
  • \n
  • \n

    \n MIXED This is an advanced setting. For more information, see the topic \n What the security styles and their effects are \n in the NetApp Documentation Center.

    \n
  • \n
\n

For more information, see Volume security style in the \n FSx for ONTAP User Guide.

" } }, "SizeInMegabytes": { @@ -3585,13 +3585,13 @@ "smithy.api#deprecated": { "message": "This property is deprecated, use SizeInBytes instead" }, - "smithy.api#documentation": "

Specifies the size of the volume, in megabytes (MB), that you are creating.

" + "smithy.api#documentation": "

Use SizeInBytes instead. Specifies the size of the volume, in megabytes (MB), that you are creating.

" } }, "StorageEfficiencyEnabled": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

Set to true to enable deduplication, compression, and compaction storage\n efficiency features on the volume, or set to false to disable them.\n This parameter is required.

" + "smithy.api#documentation": "

Set to true to enable deduplication, compression, and compaction storage\n efficiency features on the volume, or set to false to disable them.

\n

\n StorageEfficiencyEnabled is required when creating a RW volume (OntapVolumeType set to RW).

" } }, "StorageVirtualMachineId": { @@ -3608,13 +3608,13 @@ "OntapVolumeType": { "target": "com.amazonaws.fsx#InputOntapVolumeType", "traits": { - "smithy.api#documentation": "

Specifies the type of volume you are creating. Valid values are the following:

\n
    \n
  • \n

    \n RW specifies a read/write volume. RW is the default.

    \n
  • \n
  • \n

    \n DP specifies a data-protection volume. A DP volume\n is read-only and can be used as the destination of a NetApp SnapMirror relationship.

    \n
  • \n
\n

For more information, see Volume types \n in the Amazon FSx for NetApp ONTAP User Guide.

" + "smithy.api#documentation": "

Specifies the type of volume you are creating. Valid values are the following:

\n
    \n
  • \n

    \n RW specifies a read/write volume. RW is the default.

    \n
  • \n
  • \n

    \n DP specifies a data-protection volume. A DP volume\n is read-only and can be used as the destination of a NetApp SnapMirror relationship.

    \n
  • \n
\n

For more information, see Volume types \n in the Amazon FSx for NetApp ONTAP User Guide.

" } }, "SnapshotPolicy": { "target": "com.amazonaws.fsx#SnapshotPolicy", "traits": { - "smithy.api#documentation": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

\n
    \n
  • \n

    \n default: This is the default policy. A maximum of six hourly snapshots taken five minutes past \n the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after\n midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.

    \n
  • \n
  • \n

    \n default-1weekly: This policy is the same as the default policy except \n that it only retains one snapshot from the weekly schedule.

    \n
  • \n
  • \n

    \n none: This policy does not take any snapshots. This policy can be assigned to volumes to \n prevent automatic snapshots from being taken.

    \n
  • \n
\n

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

\n

For more information, see Snapshot policies \n in the Amazon FSx for NetApp ONTAP User Guide.

" + "smithy.api#documentation": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

\n
    \n
  • \n

    \n default: This is the default policy. A maximum of six hourly snapshots taken five minutes past \n the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after\n midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.

    \n
  • \n
  • \n

    \n default-1weekly: This policy is the same as the default policy except \n that it only retains one snapshot from the weekly schedule.

    \n
  • \n
  • \n

    \n none: This policy does not take any snapshots. This policy can be assigned to volumes to \n prevent automatic snapshots from being taken.

    \n
  • \n
\n

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

\n

For more information, see Snapshot policies \n in the Amazon FSx for NetApp ONTAP User Guide.

" } }, "CopyTagsToBackups": { @@ -3632,7 +3632,7 @@ "VolumeStyle": { "target": "com.amazonaws.fsx#VolumeStyle", "traits": { - "smithy.api#documentation": "

Use to specify the style of an ONTAP volume. For more information about FlexVols and FlexGroups, see Volume types in Amazon FSx for NetApp ONTAP User Guide.

" + "smithy.api#documentation": "

Use to specify the style of an ONTAP volume. FSx for ONTAP offers two styles of volumes that you can use for different purposes, \n FlexVol and FlexGroup volumes. For more information, see \n Volume styles in the Amazon FSx for NetApp ONTAP User Guide.

" } }, "AggregateConfiguration": { @@ -3644,7 +3644,7 @@ "SizeInBytes": { "target": "com.amazonaws.fsx#VolumeCapacityBytes", "traits": { - "smithy.api#documentation": "

The configured size of the volume, in bytes.

" + "smithy.api#documentation": "

Specifies the configured size of the volume, in bytes.

" } } }, @@ -3737,7 +3737,7 @@ "UserAndGroupQuotas": { "target": "com.amazonaws.fsx#OpenZFSUserAndGroupQuotas", "traits": { - "smithy.api#documentation": "

An object specifying how much storage users or groups can use on the volume.

" + "smithy.api#documentation": "

Configures how much storage users and groups can use on the volume.

" } } }, @@ -3906,7 +3906,7 @@ "ActiveDirectoryConfiguration": { "target": "com.amazonaws.fsx#CreateSvmActiveDirectoryConfiguration", "traits": { - "smithy.api#documentation": "

Describes the self-managed Microsoft Active Directory to which you want to join the SVM. \n Joining an Active Directory provides user authentication and access control for SMB clients, \n including Microsoft Windows and macOS client accessing the file system.

" + "smithy.api#documentation": "

Describes the self-managed Microsoft Active Directory to which you want to join the SVM. \n Joining an Active Directory provides user authentication and access control for SMB clients, \n including Microsoft Windows and macOS clients accessing the file system.

" } }, "ClientRequestToken": { @@ -3942,7 +3942,7 @@ "RootVolumeSecurityStyle": { "target": "com.amazonaws.fsx#StorageVirtualMachineRootVolumeSecurityStyle", "traits": { - "smithy.api#documentation": "

The security style of the root volume of the SVM. Specify one of the following values:

\n
    \n
  • \n

    \n UNIX if the file system is managed by a UNIX\n administrator, the majority of users are NFS clients, and an application\n accessing the data uses a UNIX user as the service account.

    \n
  • \n
  • \n

    \n NTFS if the file system is managed by a Windows\n administrator, the majority of users are SMB clients, and an application\n accessing the data uses a Windows user as the service account.

    \n
  • \n
  • \n

    \n MIXED if the file system is managed by both UNIX\n and Windows administrators and users consist of both NFS and SMB clients.

    \n
  • \n
" + "smithy.api#documentation": "

The security style of the root volume of the SVM. Specify one of the following values:

\n
    \n
  • \n

    \n UNIX if the file system is managed by a UNIX\n administrator, the majority of users are NFS clients, and an application\n accessing the data uses a UNIX user as the service account.

    \n
  • \n
  • \n

    \n NTFS if the file system is managed by a Microsoft Windows\n administrator, the majority of users are SMB clients, and an application\n accessing the data uses a Microsoft Windows user as the service account.

    \n
  • \n
  • \n

    \n MIXED This is an advanced setting. For more information, see \n Volume security style in the Amazon FSx for NetApp ONTAP User Guide.

    \n
  • \n
\n

" } } }, @@ -3980,7 +3980,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration that Amazon FSx uses to join the ONTAP storage virtual machine\n (SVM) to your self-managed (including on-premises) Microsoft Active Directory (AD) directory.

" + "smithy.api#documentation": "

The configuration that Amazon FSx uses to join the ONTAP storage virtual machine\n (SVM) to your self-managed (including on-premises) Microsoft Active Directory directory.

" } }, "com.amazonaws.fsx#CreateVolume": { @@ -6105,7 +6105,7 @@ } ], "traits": { - "smithy.api#documentation": "

Indicates whether participant accounts in your organization can create Amazon FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by a virtual\n private cloud (VPC) owner. For more information, see the Amazon FSx for NetApp ONTAP User\n Guide.

" + "smithy.api#documentation": "

Indicates whether participant accounts in your organization can create Amazon FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by a virtual\n private cloud (VPC) owner. For more information, see Creating FSx for ONTAP file systems in shared subnets.

" } }, "com.amazonaws.fsx#DescribeSharedVpcConfigurationRequest": { @@ -6181,7 +6181,7 @@ "IncludeShared": { "target": "com.amazonaws.fsx#IncludeShared", "traits": { - "smithy.api#documentation": "

Set to false (default) if you want to only see the snapshots in your\n Amazon Web Services account. Set to true if you want to see the\n snapshots in your account and the ones shared with you from another account.

" + "smithy.api#documentation": "

Set to false (default) if you want to only see the snapshots owned by your\n Amazon Web Services account. Set to true if you want to see the\n snapshots in your account and the ones shared with you from another account.

" } } }, @@ -6456,7 +6456,7 @@ "Mode": { "target": "com.amazonaws.fsx#DiskIopsConfigurationMode", "traits": { - "smithy.api#documentation": "

Specifies whether the file system is \n using the AUTOMATIC setting of SSD IOPS of 3 IOPS per GB of storage capacity, , or \n if it using a USER_PROVISIONED value.

" + "smithy.api#documentation": "

Specifies whether the file system is \n using the AUTOMATIC setting of SSD IOPS of 3 IOPS per GB of storage capacity, or \n if it using a USER_PROVISIONED value.

" } }, "Iops": { @@ -7087,7 +7087,7 @@ "Tags": { "target": "com.amazonaws.fsx#Tags", "traits": { - "smithy.api#documentation": "

The tags to associate with the file system. For more information, see Tagging your\n Amazon EC2 resources in the Amazon EC2 User\n Guide.

" + "smithy.api#documentation": "

The tags to associate with the file system. For more information, see Tagging your\n Amazon FSx resources in the Amazon FSx for Lustre User\n Guide.

" } }, "WindowsConfiguration": { @@ -7511,7 +7511,7 @@ "traits": { "smithy.api#range": { "min": 1, - "max": 6 + "max": 12 } } }, @@ -8412,13 +8412,13 @@ "HAPairs": { "target": "com.amazonaws.fsx#HAPairs", "traits": { - "smithy.api#documentation": "

Specifies how many high-availability (HA) file server pairs the file system will have. The default value is 1. The value of this property affects the values of StorageCapacity, Iops, and ThroughputCapacity. For more information, see High-availability (HA) pairs in the FSx for ONTAP user guide.

\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of HAPairs is less than 1 or greater than 6.

    \n
  • \n
  • \n

    The value of HAPairs is greater than 1 and the value of DeploymentType is SINGLE_AZ_1 or MULTI_AZ_1.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies how many high-availability (HA) file server pairs the file system will have. The default value is 1. The value of this property affects the values of StorageCapacity, Iops, and ThroughputCapacity. For more information, see High-availability (HA) pairs in the FSx for ONTAP user guide.

\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of HAPairs is less than 1 or greater than 12.

    \n
  • \n
  • \n

    The value of HAPairs is greater than 1 and the value of DeploymentType is SINGLE_AZ_1 or MULTI_AZ_1.

    \n
  • \n
" } }, "ThroughputCapacityPerHAPair": { "target": "com.amazonaws.fsx#ThroughputCapacityPerHAPair", "traits": { - "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair. When the value of HAPairs is equal to 1, the value of ThroughputCapacityPerHAPair is the total throughput for the file system.

\n

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

\n

This field and ThroughputCapacity are the same for file systems with one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 6).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" + "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair. When the value of HAPairs is equal to 1, the value of ThroughputCapacityPerHAPair is the total throughput for the file system.

\n

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

\n

This field and ThroughputCapacity are the same for file systems with one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 12).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" } } }, @@ -8889,7 +8889,7 @@ "target": "com.amazonaws.fsx#OpenZFSQuotaType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A value that specifies whether the quota applies to a user or group.

", + "smithy.api#documentation": "

Specifies whether the quota applies to a user or group.

", "smithy.api#required": {} } }, @@ -8897,7 +8897,7 @@ "target": "com.amazonaws.fsx#IntegerNoMax", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The ID of the user or group.

", + "smithy.api#documentation": "

The ID of the user or group that the quota applies to.

", "smithy.api#required": {} } }, @@ -8905,13 +8905,13 @@ "target": "com.amazonaws.fsx#IntegerNoMax", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The amount of storage that the user or group can use in gibibytes (GiB).

", + "smithy.api#documentation": "

The user or group's storage quota, in gibibytes (GiB).

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The configuration for how much storage a user or group can use on the volume.

" + "smithy.api#documentation": "

Used to configure quotas that define how much storage a user or group can use on an \n FSx for OpenZFS volume. For more information, see \n Volume properties\n in the FSx for OpenZFS User Guide.\n

" } }, "com.amazonaws.fsx#OpenZFSVolumeConfiguration": { @@ -11313,7 +11313,7 @@ "ThroughputCapacityPerHAPair": { "target": "com.amazonaws.fsx#ThroughputCapacityPerHAPair", "traits": { - "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

\n

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

\n

This field and ThroughputCapacity are the same for file systems with one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value for file systems with one HA pair.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 6).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" + "smithy.api#documentation": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

\n

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

\n

This field and ThroughputCapacity are the same for file systems with one HA pair.

\n
    \n
  • \n

    For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.

    \n
  • \n
  • \n

    For SINGLE_AZ_2, valid values are 3072 or 6144 MBps.

    \n
  • \n
\n

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

\n
    \n
  • \n

    The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value for file systems with one HA pair.

    \n
  • \n
  • \n

    The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and 12).

    \n
  • \n
  • \n

    The value of ThroughputCapacityPerHAPair is not a valid value.

    \n
  • \n
" } } }, diff --git a/codegen/sdk/aws-models/iot.json b/codegen/sdk/aws-models/iot.json index dae1711d153..b8be375eb21 100644 --- a/codegen/sdk/aws-models/iot.json +++ b/codegen/sdk/aws-models/iot.json @@ -2787,7 +2787,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -7424,7 +7424,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
" } }, "jobTemplateArn": { @@ -10587,7 +10587,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -10618,7 +10618,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -19141,7 +19141,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
" } }, "jobTemplateArn": { @@ -22055,7 +22055,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } }, @@ -22266,7 +22266,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -29589,9 +29589,9 @@ } }, "maxResults": { - "target": "com.amazonaws.iot#QueryMaxResults", + "target": "com.amazonaws.iot#SearchQueryMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of results to return per page at one time. The response might\n contain fewer results but will never contain more.

" + "smithy.api#documentation": "

The maximum number of results to return per page at one time. This maximum number\n cannot exceed 100. The response might contain fewer results but will never contain more. You\n can use \n nextToken\n to retrieve the next set of results until\n nextToken returns NULL.

" } }, "queryVersion": { @@ -29631,6 +29631,14 @@ "smithy.api#output": {} } }, + "com.amazonaws.iot#SearchQueryMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, "com.amazonaws.iot#SearchableAttributes": { "type": "list", "member": { @@ -34470,7 +34478,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } }, diff --git a/codegen/sdk/aws-models/kafkaconnect.json b/codegen/sdk/aws-models/kafkaconnect.json index a549c25fba5..de1e5fec32d 100644 --- a/codegen/sdk/aws-models/kafkaconnect.json +++ b/codegen/sdk/aws-models/kafkaconnect.json @@ -463,7 +463,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a connector using the specified properties.

", + "smithy.api#documentation": "

Creates a connector using the specified properties.

", "smithy.api#http": { "method": "POST", "uri": "/v1/connectors", @@ -538,7 +538,7 @@ "plugins": { "target": "com.amazonaws.kafkaconnect#__listOfPlugin", "traits": { - "smithy.api#documentation": "

Specifies which plugins to use for the connector.

", + "smithy.api#documentation": "\n

Amazon MSK Connect does not currently support specifying multiple plugins as a list. To use more than one plugin for your connector, you can create a single custom plugin using a ZIP file that bundles multiple plugins together.

\n
\n

Specifies which plugin to use for the connector. You must specify a single-element list containing one customPlugin object.

", "smithy.api#required": {} } }, @@ -554,6 +554,12 @@ "traits": { "smithy.api#documentation": "

Specifies which worker configuration to use with the connector.

" } + }, + "tags": { + "target": "com.amazonaws.kafkaconnect#Tags", + "traits": { + "smithy.api#documentation": "

The tags you want to attach to the connector.

" + } } } }, @@ -652,6 +658,12 @@ "smithy.api#documentation": "

The name of the custom plugin.

", "smithy.api#required": {} } + }, + "tags": { + "target": "com.amazonaws.kafkaconnect#Tags", + "traits": { + "smithy.api#documentation": "

The tags you want to attach to the custom plugin.

" + } } } }, @@ -750,6 +762,12 @@ "smithy.api#documentation": "

Base64 encoded contents of connect-distributed.properties file.

", "smithy.api#required": {} } + }, + "tags": { + "target": "com.amazonaws.kafkaconnect#Tags", + "traits": { + "smithy.api#documentation": "

The tags you want to attach to the worker configuration.

" + } } } }, @@ -779,6 +797,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) that Amazon assigned to the worker configuration.

" } + }, + "workerConfigurationState": { + "target": "com.amazonaws.kafkaconnect#WorkerConfigurationState", + "traits": { + "smithy.api#documentation": "

The state of the worker configuration.

" + } } } }, @@ -802,7 +826,7 @@ } }, "traits": { - "smithy.api#documentation": "

A plugin is an AWS resource that contains the code that defines a connector's\n logic.

" + "smithy.api#documentation": "

A plugin is an Amazon Web Services resource that contains the code that defines a connector's logic.

" } }, "com.amazonaws.kafkaconnect#CustomPluginContentType": { @@ -1160,6 +1184,77 @@ } } }, + "com.amazonaws.kafkaconnect#DeleteWorkerConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.kafkaconnect#DeleteWorkerConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.kafkaconnect#DeleteWorkerConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kafkaconnect#BadRequestException" + }, + { + "target": "com.amazonaws.kafkaconnect#ForbiddenException" + }, + { + "target": "com.amazonaws.kafkaconnect#InternalServerErrorException" + }, + { + "target": "com.amazonaws.kafkaconnect#NotFoundException" + }, + { + "target": "com.amazonaws.kafkaconnect#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.kafkaconnect#TooManyRequestsException" + }, + { + "target": "com.amazonaws.kafkaconnect#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified worker configuration.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/v1/worker-configurations/{workerConfigurationArn}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.kafkaconnect#DeleteWorkerConfigurationRequest": { + "type": "structure", + "members": { + "workerConfigurationArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the worker configuration that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.kafkaconnect#DeleteWorkerConfigurationResponse": { + "type": "structure", + "members": { + "workerConfigurationArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the worker configuration that you requested to delete.

" + } + }, + "workerConfigurationState": { + "target": "com.amazonaws.kafkaconnect#WorkerConfigurationState", + "traits": { + "smithy.api#documentation": "

The state of the worker configuration.

" + } + } + } + }, "com.amazonaws.kafkaconnect#DescribeConnector": { "type": "operation", "input": { @@ -1508,6 +1603,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom configuration.

" } + }, + "workerConfigurationState": { + "target": "com.amazonaws.kafkaconnect#WorkerConfigurationState", + "traits": { + "smithy.api#documentation": "

The state of the worker configuration.

" + } } } }, @@ -1716,6 +1817,9 @@ { "target": "com.amazonaws.kafkaconnect#DeleteCustomPlugin" }, + { + "target": "com.amazonaws.kafkaconnect#DeleteWorkerConfiguration" + }, { "target": "com.amazonaws.kafkaconnect#DescribeConnector" }, @@ -1731,9 +1835,18 @@ { "target": "com.amazonaws.kafkaconnect#ListCustomPlugins" }, + { + "target": "com.amazonaws.kafkaconnect#ListTagsForResource" + }, { "target": "com.amazonaws.kafkaconnect#ListWorkerConfigurations" }, + { + "target": "com.amazonaws.kafkaconnect#TagResource" + }, + { + "target": "com.amazonaws.kafkaconnect#UntagResource" + }, { "target": "com.amazonaws.kafkaconnect#UpdateConnector" } @@ -1753,10 +1866,30 @@ "aws.protocols#restJson1": {}, "smithy.api#cors": { "additionalAllowedHeaders": [ - "X-Api-Key", + "*", + "Date", + "X-Amz-Target", + "x-amzn-platform-id", + "x-amzn-trace-id", + "Authorization", "Content-Type", - "Content-Length" - ] + "Credentials", + "X-Amz-Date", + "X-Api-Key", + "X-Amz-Security-Token", + "x-amz-content-sha256", + "X-Amz-User-Agent" + ], + "additionalExposedHeaders": [ + "x-amzn-errortype", + "x-amzn-requestid", + "x-amzn-errormessage", + "x-amzn-trace-id", + "x-amz-apigw-id", + "date" + ], + "origin": "*", + "maxAge": 86400 }, "smithy.api#documentation": "

", "smithy.api#title": "Managed Streaming for Kafka Connect", @@ -2740,6 +2873,13 @@ "smithy.api#documentation": "

If the response of a ListCustomPlugins operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

", "smithy.api#httpQuery": "nextToken" } + }, + "namePrefix": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

Lists custom plugin names that start with the specified text string.

", + "smithy.api#httpQuery": "namePrefix" + } } } }, @@ -2760,6 +2900,70 @@ } } }, + "com.amazonaws.kafkaconnect#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kafkaconnect#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.kafkaconnect#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kafkaconnect#BadRequestException" + }, + { + "target": "com.amazonaws.kafkaconnect#ForbiddenException" + }, + { + "target": "com.amazonaws.kafkaconnect#InternalServerErrorException" + }, + { + "target": "com.amazonaws.kafkaconnect#NotFoundException" + }, + { + "target": "com.amazonaws.kafkaconnect#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.kafkaconnect#TooManyRequestsException" + }, + { + "target": "com.amazonaws.kafkaconnect#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all the tags attached to the specified resource.

", + "smithy.api#http": { + "uri": "/v1/tags/{resourceArn}", + "method": "GET" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.kafkaconnect#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource for which you want to list all attached tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.kafkaconnect#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.kafkaconnect#Tags", + "traits": { + "smithy.api#documentation": "

Lists the tags attached to the specified resource in the corresponding request.

" + } + } + } + }, "com.amazonaws.kafkaconnect#ListWorkerConfigurations": { "type": "operation", "input": { @@ -2824,6 +3028,13 @@ "smithy.api#documentation": "

If the response of a ListWorkerConfigurations operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

", "smithy.api#httpQuery": "nextToken" } + }, + "namePrefix": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

Lists worker configuration names that start with the specified text string.

", + "smithy.api#httpQuery": "namePrefix" + } } } }, @@ -2908,7 +3119,7 @@ } }, "traits": { - "smithy.api#documentation": "

A plugin is an AWS resource that contains the code that defines your connector logic.\n

" + "smithy.api#documentation": "

A plugin is an Amazon Web Services resource that contains the code that defines your connector logic.

" } }, "com.amazonaws.kafkaconnect#PluginDescription": { @@ -3231,6 +3442,118 @@ "smithy.api#documentation": "

Details about the state of a resource.

" } }, + "com.amazonaws.kafkaconnect#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.kafkaconnect#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.kafkaconnect#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.kafkaconnect#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kafkaconnect#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.kafkaconnect#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kafkaconnect#BadRequestException" + }, + { + "target": "com.amazonaws.kafkaconnect#ConflictException" + }, + { + "target": "com.amazonaws.kafkaconnect#ForbiddenException" + }, + { + "target": "com.amazonaws.kafkaconnect#InternalServerErrorException" + }, + { + "target": "com.amazonaws.kafkaconnect#NotFoundException" + }, + { + "target": "com.amazonaws.kafkaconnect#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.kafkaconnect#TooManyRequestsException" + }, + { + "target": "com.amazonaws.kafkaconnect#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches tags to the specified resource.

", + "smithy.api#http": { + "uri": "/v1/tags/{resourceArn}", + "method": "POST" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.kafkaconnect#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to which you want to attach tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.kafkaconnect#Tags", + "traits": { + "smithy.api#documentation": "

The tags that you want to attach to the resource.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.kafkaconnect#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.kafkaconnect#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.kafkaconnect#Tags": { + "type": "map", + "key": { + "target": "com.amazonaws.kafkaconnect#TagKey" + }, + "value": { + "target": "com.amazonaws.kafkaconnect#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, "com.amazonaws.kafkaconnect#TooManyRequestsException": { "type": "structure", "members": { @@ -3257,6 +3580,71 @@ "smithy.api#httpError": 401 } }, + "com.amazonaws.kafkaconnect#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kafkaconnect#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.kafkaconnect#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kafkaconnect#BadRequestException" + }, + { + "target": "com.amazonaws.kafkaconnect#ForbiddenException" + }, + { + "target": "com.amazonaws.kafkaconnect#InternalServerErrorException" + }, + { + "target": "com.amazonaws.kafkaconnect#NotFoundException" + }, + { + "target": "com.amazonaws.kafkaconnect#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.kafkaconnect#TooManyRequestsException" + }, + { + "target": "com.amazonaws.kafkaconnect#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes tags from the specified resource.

", + "smithy.api#http": { + "uri": "/v1/tags/{resourceArn}", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.kafkaconnect#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource from which you want to remove tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.kafkaconnect#TagKeyList", + "traits": { + "smithy.api#documentation": "

The keys of the tags that you want to remove from the resource.

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.kafkaconnect#UntagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.kafkaconnect#UpdateConnector": { "type": "operation", "input": { @@ -3488,6 +3876,21 @@ "smithy.api#documentation": "

The summary of a worker configuration revision.

" } }, + "com.amazonaws.kafkaconnect#WorkerConfigurationState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "DELETING", + "name": "DELETING" + } + ] + } + }, "com.amazonaws.kafkaconnect#WorkerConfigurationSummary": { "type": "structure", "members": { @@ -3520,6 +3923,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the worker configuration.

" } + }, + "workerConfigurationState": { + "target": "com.amazonaws.kafkaconnect#WorkerConfigurationState", + "traits": { + "smithy.api#documentation": "

The state of the worker configuration.

" + } } }, "traits": { diff --git a/codegen/sdk/aws-models/lex-models-v2.json b/codegen/sdk/aws-models/lex-models-v2.json index 084e80fe179..4bb6405418f 100644 --- a/codegen/sdk/aws-models/lex-models-v2.json +++ b/codegen/sdk/aws-models/lex-models-v2.json @@ -2079,6 +2079,9 @@ } } }, + "com.amazonaws.lexmodelsv2#AnswerField": { + "type": "string" + }, "com.amazonaws.lexmodelsv2#AssociatedTranscript": { "type": "structure", "members": { @@ -2626,10 +2629,35 @@ "smithy.api#output": {} } }, + "com.amazonaws.lexmodelsv2#BedrockKnowledgeBaseArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,40}:[0-9]{12}:knowledge-base\\/[A-Za-z0-9]{10}$|^[A-Za-z0-9]{10}$" + } + }, + "com.amazonaws.lexmodelsv2#BedrockKnowledgeStoreConfiguration": { + "type": "structure", + "members": { + "bedrockKnowledgeBaseArn": { + "target": "com.amazonaws.lexmodelsv2#BedrockKnowledgeBaseArn", + "traits": { + "smithy.api#documentation": "

The ARN of the knowledge base used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of a Amazon Bedrock knowledge base.

" + } + }, "com.amazonaws.lexmodelsv2#BedrockModelArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model\\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}$" + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model\\/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$" } }, "com.amazonaws.lexmodelsv2#BedrockModelSpecification": { @@ -4169,7 +4197,10 @@ } }, "sampleUtteranceGeneration": { - "target": "com.amazonaws.lexmodelsv2#SampleUtteranceGenerationSpecification" + "target": "com.amazonaws.lexmodelsv2#SampleUtteranceGenerationSpecification", + "traits": { + "smithy.api#documentation": "

Contains specifications for the sample utterance generation feature.

" + } } }, "traits": { @@ -5883,6 +5914,12 @@ "traits": { "smithy.api#documentation": "

Configuration settings for the response that is sent to the user at\n the beginning of a conversation, before eliciting slot values.

" } + }, + "qnAIntentConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAIntentConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the configuration of the built-in Amazon.QnAIntent. The AMAZON.QnAIntent intent is called when\n Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the kendraConfiguration field.

" + } } }, "traits": { @@ -5993,6 +6030,12 @@ "traits": { "smithy.api#documentation": "

Configuration settings for the response that is sent to the user at\n the beginning of a conversation, before eliciting slot values.

" } + }, + "qnAIntentConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAIntentConfiguration", + "traits": { + "smithy.api#documentation": "

Details about the the configuration of the built-in Amazon.QnAIntent.

" + } } }, "traits": { @@ -6978,6 +7021,32 @@ "smithy.api#documentation": "

By default, data stored by Amazon Lex is encrypted. The\n DataPrivacy structure provides settings that determine\n how Amazon Lex handles special cases of securing the data for your bot.\n

" } }, + "com.amazonaws.lexmodelsv2#DataSourceConfiguration": { + "type": "structure", + "members": { + "opensearchConfiguration": { + "target": "com.amazonaws.lexmodelsv2#OpensearchConfiguration", + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the Amazon OpenSearch Service database used for the AMAZON.QnAIntent. To create a domain, follow the steps at Creating and managing Amazon OpenSearch Service domains.

" + } + }, + "kendraConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAKendraConfiguration", + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the Amazon Kendra index used for the AMAZON.QnAIntent. To create a Amazon Kendra index, follow the steps at Creating an index.

" + } + }, + "bedrockKnowledgeStoreConfiguration": { + "target": "com.amazonaws.lexmodelsv2#BedrockKnowledgeStoreConfiguration", + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the Amazon Bedrock knowledge base used for the AMAZON.QnAIntent. To set up a knowledge base, follow the steps at Building a knowledge base.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the knowledge store used for the AMAZON.QnAIntent. You must have already created the knowledge store and indexed the documents within it.

" + } + }, "com.amazonaws.lexmodelsv2#DateRangeFilter": { "type": "structure", "members": { @@ -10112,6 +10181,12 @@ "traits": { "smithy.api#documentation": "

Configuration setting for a response sent to the user before Amazon Lex starts eliciting slots.

" } + }, + "qnAIntentConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAIntentConfiguration", + "traits": { + "smithy.api#documentation": "

Details about the configuration of the built-in Amazon.QnAIntent.

" + } } }, "traits": { @@ -11179,6 +11254,12 @@ "smithy.api#documentation": "

The current state of the conversation with the user.

" } }, + "com.amazonaws.lexmodelsv2#DomainEndpoint": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(http|https):\\/\\/+[^\\s]+[\\w]$" + } + }, "com.amazonaws.lexmodelsv2#DraftBotVersion": { "type": "string", "traits": { @@ -11291,6 +11372,28 @@ "com.amazonaws.lexmodelsv2#ErrorMessage": { "type": "string" }, + "com.amazonaws.lexmodelsv2#ExactResponseFields": { + "type": "structure", + "members": { + "questionField": { + "target": "com.amazonaws.lexmodelsv2#QuestionField", + "traits": { + "smithy.api#documentation": "

The name of the field that contains the query made to the OpenSearch Service database.

", + "smithy.api#required": {} + } + }, + "answerField": { + "target": "com.amazonaws.lexmodelsv2#AnswerField", + "traits": { + "smithy.api#documentation": "

The name of the field that contains the answer to the query made to the OpenSearch Service database.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the names of the fields used for an exact response to the user.

" + } + }, "com.amazonaws.lexmodelsv2#ExceptionMessage": { "type": "string" }, @@ -12458,6 +12561,9 @@ "smithy.api#pattern": "^([0-9a-zA-Z_])+$" } }, + "com.amazonaws.lexmodelsv2#IncludeField": { + "type": "string" + }, "com.amazonaws.lexmodelsv2#InitialResponseSetting": { "type": "structure", "members": { @@ -17937,6 +18043,28 @@ "smithy.api#pattern": "^[0-9]+$" } }, + "com.amazonaws.lexmodelsv2#OSIncludeFields": { + "type": "list", + "member": { + "target": "com.amazonaws.lexmodelsv2#IncludeField" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.lexmodelsv2#OSIndexName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^(?![_-])[a-z0-9][a-z0-9_\\-]{0,254}$" + } + }, "com.amazonaws.lexmodelsv2#ObfuscationSetting": { "type": "structure", "members": { @@ -17990,6 +18118,47 @@ } } }, + "com.amazonaws.lexmodelsv2#OpensearchConfiguration": { + "type": "structure", + "members": { + "domainEndpoint": { + "target": "com.amazonaws.lexmodelsv2#DomainEndpoint", + "traits": { + "smithy.api#documentation": "

The endpoint of the Amazon OpenSearch Service domain.

", + "smithy.api#required": {} + } + }, + "indexName": { + "target": "com.amazonaws.lexmodelsv2#OSIndexName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon OpenSearch Service index.

", + "smithy.api#required": {} + } + }, + "exactResponse": { + "target": "com.amazonaws.lexmodelsv2#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to return an exact response or to return an answer generated by the model using the fields you specify from the database.

" + } + }, + "exactResponseFields": { + "target": "com.amazonaws.lexmodelsv2#ExactResponseFields", + "traits": { + "smithy.api#documentation": "

Contains the names of the fields used for an exact response to the user.

" + } + }, + "includeFields": { + "target": "com.amazonaws.lexmodelsv2#OSIncludeFields", + "traits": { + "smithy.api#documentation": "

Contains a list of fields from the Amazon OpenSearch Service that the model can use to generate the answer to the query.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the Amazon OpenSearch Service database used for the AMAZON.QnAIntent.

" + } + }, "com.amazonaws.lexmodelsv2#Operation": { "type": "string", "traits": { @@ -18501,6 +18670,58 @@ "smithy.api#documentation": "

Specifies a list of message groups that Amazon Lex sends to a user to\n elicit a response.

" } }, + "com.amazonaws.lexmodelsv2#QnAIntentConfiguration": { + "type": "structure", + "members": { + "dataSourceConfiguration": { + "target": "com.amazonaws.lexmodelsv2#DataSourceConfiguration", + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the data source used for the AMAZON.QnAIntent.

" + } + }, + "bedrockModelConfiguration": { + "target": "com.amazonaws.lexmodelsv2#BedrockModelSpecification" + } + }, + "traits": { + "smithy.api#documentation": "

Details about the the configuration of the built-in Amazon.QnAIntent.

" + } + }, + "com.amazonaws.lexmodelsv2#QnAKendraConfiguration": { + "type": "structure", + "members": { + "kendraIndex": { + "target": "com.amazonaws.lexmodelsv2#KendraIndexArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon Kendra index to use.

", + "smithy.api#required": {} + } + }, + "queryFilterStringEnabled": { + "target": "com.amazonaws.lexmodelsv2#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to enable an Amazon Kendra filter string or not.

" + } + }, + "queryFilterString": { + "target": "com.amazonaws.lexmodelsv2#QueryFilterString", + "traits": { + "smithy.api#documentation": "

Contains the Amazon Kendra filter string to use if enabled. For more information on the Amazon Kendra search filter JSON format, see Using document attributes to filter search results.

" + } + }, + "exactResponse": { + "target": "com.amazonaws.lexmodelsv2#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to return an exact response from the Amazon Kendra index or to let the Amazon Bedrock model you select generate a response based on the results. To use this feature, you must first add FAQ questions to your index by following the steps at Adding frequently asked questions (FAQs) to an index.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the configuration of the Amazon Kendra index used for the AMAZON.QnAIntent.

" + } + }, "com.amazonaws.lexmodelsv2#QueryFilterString": { "type": "string", "traits": { @@ -18510,6 +18731,9 @@ } } }, + "com.amazonaws.lexmodelsv2#QuestionField": { + "type": "string" + }, "com.amazonaws.lexmodelsv2#RecommendedAction": { "type": "string" }, @@ -23337,6 +23561,12 @@ "traits": { "smithy.api#documentation": "

Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.

" } + }, + "qnAIntentConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAIntentConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the configuration of the built-in Amazon.QnAIntent. The AMAZON.QnAIntent intent is called when\n Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the kendraConfiguration field.

" + } } }, "traits": { @@ -23459,6 +23689,12 @@ "traits": { "smithy.api#documentation": "

Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.

" } + }, + "qnAIntentConfiguration": { + "target": "com.amazonaws.lexmodelsv2#QnAIntentConfiguration", + "traits": { + "smithy.api#documentation": "

Details about the configuration of the built-in Amazon.QnAIntent.

" + } } }, "traits": { diff --git a/codegen/sdk/aws-models/migrationhuborchestrator.json b/codegen/sdk/aws-models/migrationhuborchestrator.json index bb2c8c3ae73..c2586e1e8bb 100644 --- a/codegen/sdk/aws-models/migrationhuborchestrator.json +++ b/codegen/sdk/aws-models/migrationhuborchestrator.json @@ -76,7 +76,7 @@ "date" ] }, - "smithy.api#documentation": "

This API reference provides descriptions, syntax, and other details about each of the\n actions and data types for AWS Migration Hub Orchestrator. he topic for each action shows the API\n request parameters and the response. Alternatively, you can use one of the AWS SDKs to\n access an API that is tailored to the programming language or platform that you're\n using.

", + "smithy.api#documentation": "

This API reference provides descriptions, syntax, and other details about each of the\n actions and data types for AWS Migration Hub Orchestrator. The topic for each action shows the API\n request parameters and responses. Alternatively, you can use one of the AWS SDKs to\n access an API that is tailored to the programming language or platform that you're\n using.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -776,6 +776,33 @@ "smithy.api#pattern": "^[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*$" } }, + "com.amazonaws.migrationhuborchestrator#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[-a-zA-Z0-9]*$" + } + }, + "com.amazonaws.migrationhuborchestrator#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This exception is thrown when an attempt to update or delete\n a resource would cause an inconsistent state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409, + "smithy.api#retryable": {} + } + }, "com.amazonaws.migrationhuborchestrator#CreateMigrationWorkflowRequest": { "type": "structure", "members": { @@ -819,11 +846,10 @@ "traits": { "smithy.api#documentation": "

The configuration ID of the application configured in Application Discovery Service.

", "smithy.api#length": { - "min": 1, + "min": 0, "max": 100 }, - "smithy.api#pattern": "^[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*$", - "smithy.api#required": {} + "smithy.api#pattern": "^[-a-zA-Z0-9_.+]*$" } }, "inputParameters": { @@ -918,6 +944,117 @@ } } }, + "com.amazonaws.migrationhuborchestrator#CreateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhuborchestrator#CreateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.migrationhuborchestrator#CreateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhuborchestrator#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ConflictException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#InternalServerException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ThrottlingException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a migration workflow template.

", + "smithy.api#http": { + "method": "POST", + "uri": "/template", + "code": 200 + } + } + }, + "com.amazonaws.migrationhuborchestrator#CreateTemplateRequest": { + "type": "structure", + "members": { + "templateName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the migration workflow template.

", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[ a-zA-Z0-9]*$", + "smithy.api#required": {} + } + }, + "templateDescription": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the migration workflow template.

", + "smithy.api#length": { + "min": 0, + "max": 250 + }, + "smithy.api#pattern": "^.*$" + } + }, + "templateSource": { + "target": "com.amazonaws.migrationhuborchestrator#TemplateSource", + "traits": { + "smithy.api#documentation": "

The source of the migration workflow template.

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.migrationhuborchestrator#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Idempotency in the Smithy documentation.

", + "smithy.api#idempotencyToken": {} + } + }, + "tags": { + "target": "com.amazonaws.migrationhuborchestrator#TagMap", + "traits": { + "smithy.api#documentation": "

The tags to add to the migration workflow template.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhuborchestrator#CreateTemplateResponse": { + "type": "structure", + "members": { + "templateId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the migration workflow template.

" + } + }, + "templateArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the migration workflow template. The format for an\n Migration Hub Orchestrator template ARN is\n arn:aws:migrationhub-orchestrator:region:account:template/template-abcd1234.\n For more information about ARNs, see Amazon Resource Names (ARNs)\n in the AWS General Reference.

" + } + }, + "tags": { + "target": "com.amazonaws.migrationhuborchestrator#StringMap", + "traits": { + "smithy.api#documentation": "

The tags added to the migration workflow template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhuborchestrator#CreateWorkflow": { "type": "operation", "input": { @@ -1258,6 +1395,64 @@ } } }, + "com.amazonaws.migrationhuborchestrator#DeleteTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhuborchestrator#DeleteTemplateRequest" + }, + "output": { + "target": "com.amazonaws.migrationhuborchestrator#DeleteTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhuborchestrator#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#InternalServerException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ThrottlingException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a migration workflow template.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/template/{id}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.migrationhuborchestrator#DeleteTemplateRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.migrationhuborchestrator#TemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the request to delete a migration workflow template.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhuborchestrator#DeleteTemplateResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhuborchestrator#DeleteWorkflow": { "type": "operation", "input": { @@ -1581,6 +1776,12 @@ "smithy.api#documentation": "

The ID of the template.

" } }, + "templateArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

>The Amazon Resource Name (ARN) of the migration workflow template. The format for an\n Migration Hub Orchestrator template ARN is\n arn:aws:migrationhub-orchestrator:region:account:template/template-abcd1234.\n For more information about ARNs, see Amazon Resource Names (ARNs)\n in the AWS General Reference.

" + } + }, "name": { "target": "smithy.api#String", "traits": { @@ -1605,16 +1806,40 @@ "smithy.api#documentation": "

List of AWS services utilized in a migration workflow.

" } }, + "creationTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the template was last created.

" + } + }, + "owner": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The owner of the migration workflow template.

" + } + }, "status": { "target": "com.amazonaws.migrationhuborchestrator#TemplateStatus", "traits": { "smithy.api#documentation": "

The status of the template.

" } }, - "creationTime": { - "target": "smithy.api#Timestamp", + "statusMessage": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The time at which the template was last created.

" + "smithy.api#documentation": "

The status message of retrieving migration workflow templates.

" + } + }, + "templateClass": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The class of the migration workflow template. The available template classes\n are:

\n
    \n
  • \n

    A2C

    \n
  • \n
  • \n

    MGN

    \n
  • \n
  • \n

    SAP_MULTI

    \n
  • \n
  • \n

    SQL_EC2

    \n
  • \n
  • \n

    SQL_RDS

    \n
  • \n
  • \n

    VMIE

    \n
  • \n
" + } + }, + "tags": { + "target": "com.amazonaws.migrationhuborchestrator#StringMap", + "traits": { + "smithy.api#documentation": "

The tags added to the migration workflow template.

" } } } @@ -2121,7 +2346,7 @@ "stepGroupId": { "target": "com.amazonaws.migrationhuborchestrator#StepGroupId", "traits": { - "smithy.api#documentation": "

desThe ID of the step group.

", + "smithy.api#documentation": "

The ID of the step group.

", "smithy.api#httpQuery": "stepGroupId", "smithy.api#required": {} } @@ -2972,6 +3197,21 @@ } } }, + "com.amazonaws.migrationhuborchestrator#MaxStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.migrationhuborchestrator#MaxStringValue" + } + }, + "com.amazonaws.migrationhuborchestrator#MaxStringValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + } + } + }, "com.amazonaws.migrationhuborchestrator#MigrationWorkflow": { "type": "resource", "identifiers": { @@ -3177,9 +3417,18 @@ "target": "com.amazonaws.migrationhuborchestrator#TemplateId" } }, + "create": { + "target": "com.amazonaws.migrationhuborchestrator#CreateTemplate" + }, "read": { "target": "com.amazonaws.migrationhuborchestrator#GetTemplate" }, + "update": { + "target": "com.amazonaws.migrationhuborchestrator#UpdateTemplate" + }, + "delete": { + "target": "com.amazonaws.migrationhuborchestrator#DeleteTemplate" + }, "list": { "target": "com.amazonaws.migrationhuborchestrator#ListTemplates" } @@ -3348,7 +3597,7 @@ "com.amazonaws.migrationhuborchestrator#ResourceArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:aws:migrationhub-orchestrator:[a-z0-9-]+:[0-9]+:workflow/[.]*$" + "smithy.api#pattern": "^arn:aws:migrationhub-orchestrator:[a-z0-9-]+:[0-9]+:(template|workflow)/[.]*$" } }, "com.amazonaws.migrationhuborchestrator#ResourceNotFoundException": { @@ -3818,6 +4067,10 @@ "value": "AWAITING_DEPENDENCIES", "name": "AWAITING_DEPENDENCIES" }, + { + "value": "SKIPPED", + "name": "SKIPPED" + }, { "value": "READY", "name": "READY" @@ -3938,7 +4191,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 100 + "max": 500 } } }, @@ -4149,6 +4402,20 @@ "smithy.api#pattern": "^[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*$" } }, + "com.amazonaws.migrationhuborchestrator#TemplateSource": { + "type": "union", + "members": { + "workflowId": { + "target": "com.amazonaws.migrationhuborchestrator#MigrationWorkflowId", + "traits": { + "smithy.api#documentation": "

The ID of the workflow from the source migration workflow template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The migration workflow template used as the source for the new template.

" + } + }, "com.amazonaws.migrationhuborchestrator#TemplateStatus": { "type": "string", "traits": { @@ -4156,6 +4423,22 @@ { "value": "CREATED", "name": "CREATED" + }, + { + "value": "READY", + "name": "READY" + }, + { + "value": "PENDING_CREATION", + "name": "PENDING_CREATION" + }, + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "CREATION_FAILED", + "name": "CREATION_FAILED" } ] } @@ -4559,6 +4842,111 @@ } } }, + "com.amazonaws.migrationhuborchestrator#UpdateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.migrationhuborchestrator#UpdateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.migrationhuborchestrator#UpdateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.migrationhuborchestrator#AccessDeniedException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#InternalServerException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ThrottlingException" + }, + { + "target": "com.amazonaws.migrationhuborchestrator#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a migration workflow template.

", + "smithy.api#http": { + "method": "POST", + "uri": "/template/{id}", + "code": 200 + } + } + }, + "com.amazonaws.migrationhuborchestrator#UpdateTemplateRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.migrationhuborchestrator#TemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the request to update a migration workflow template.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "templateName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the migration workflow template to update.

", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[ a-zA-Z0-9]*$" + } + }, + "templateDescription": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the migration workflow template to update.

", + "smithy.api#length": { + "min": 0, + "max": 250 + }, + "smithy.api#pattern": "^.*$" + } + }, + "clientToken": { + "target": "com.amazonaws.migrationhuborchestrator#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the\n idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.migrationhuborchestrator#UpdateTemplateResponse": { + "type": "structure", + "members": { + "templateId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the migration workflow template being updated.

" + } + }, + "templateArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN of the migration workflow template being updated. The format for an Migration Hub Orchestrator\n template ARN is\n arn:aws:migrationhub-orchestrator:region:account:template/template-abcd1234.\n For more information about ARNs, see Amazon Resource Names (ARNs)\n in the AWS General Reference.

" + } + }, + "tags": { + "target": "com.amazonaws.migrationhuborchestrator#StringMap", + "traits": { + "smithy.api#documentation": "

The tags added to the migration workflow template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.migrationhuborchestrator#UpdateWorkflow": { "type": "operation", "input": { @@ -5081,13 +5469,13 @@ } }, "stringValue": { - "target": "com.amazonaws.migrationhuborchestrator#StringValue", + "target": "com.amazonaws.migrationhuborchestrator#MaxStringValue", "traits": { "smithy.api#documentation": "

The string value.

" } }, "listOfStringValue": { - "target": "com.amazonaws.migrationhuborchestrator#StringList", + "target": "com.amazonaws.migrationhuborchestrator#MaxStringList", "traits": { "smithy.api#documentation": "

The list of string value.

" } diff --git a/codegen/sdk/aws-models/organizations.json b/codegen/sdk/aws-models/organizations.json index 4b9e89d0997..5170f46b3c5 100644 --- a/codegen/sdk/aws-models/organizations.json +++ b/codegen/sdk/aws-models/organizations.json @@ -596,6 +596,57 @@ }, "type": "endpoint" }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://organizations.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [ { @@ -1111,6 +1162,28 @@ "UseDualStack": false } }, + { + "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://organizations.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "aws-iso-global", + "UseFIPS": false, + "UseDualStack": false + } + }, { "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { @@ -1150,6 +1223,15 @@ "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-iso-east-1" + } + ] + }, "url": "https://organizations.us-iso-east-1.c2s.ic.gov" } }, @@ -7479,7 +7561,7 @@ "Id": { "target": "com.amazonaws.organizations#OrganizationalUnitId", "traits": { - "smithy.api#documentation": "

The unique identifier (ID) associated with this OU.

\n

The regex pattern for an organizational unit ID string requires \n \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the \n OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters \n or digits.

" + "smithy.api#documentation": "

The unique identifier (ID) associated with this OU. The ID is unique to the organization only.

\n

The regex pattern for an organizational unit ID string requires \n \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the \n OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters \n or digits.

" } }, "Arn": { @@ -7671,8 +7753,7 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, - "max": 1000000 + "min": 1 }, "smithy.api#pattern": "^[\\s\\S]*$" } @@ -8255,7 +8336,7 @@ "Id": { "target": "com.amazonaws.organizations#RootId", "traits": { - "smithy.api#documentation": "

The unique identifier (ID) for the root.

\n

The regex pattern for a root ID string requires \"r-\" followed by \n from 4 to 32 lowercase letters or digits.

" + "smithy.api#documentation": "

The unique identifier (ID) for the root. The ID is unique to the organization only.

\n

The regex pattern for a root ID string requires \"r-\" followed by \n from 4 to 32 lowercase letters or digits.

" } }, "Arn": { diff --git a/codegen/sdk/aws-models/qldb.json b/codegen/sdk/aws-models/qldb.json index 50039f0a846..638deaab8a0 100644 --- a/codegen/sdk/aws-models/qldb.json +++ b/codegen/sdk/aws-models/qldb.json @@ -1369,7 +1369,7 @@ "EncryptionDescription": { "target": "com.amazonaws.qldb#LedgerEncryptionDescription", "traits": { - "smithy.api#documentation": "

Information about the encryption of data at rest in the ledger. This includes the\n current status, the KMS key, and when the key became inaccessible (in the case of an\n error).

" + "smithy.api#documentation": "

Information about the encryption of data at rest in the ledger. This includes the\n current status, the KMS key, and when the key became inaccessible (in the case of an\n error). If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key for encryption.

" } } }, @@ -1997,7 +1997,7 @@ "KmsKeyArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger uses for\n encryption at rest. If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key\n for encryption.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger uses for\n encryption at rest. If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key\n for encryption. It will display AWS_OWNED_KMS_KEY when updating the ledger's encryption configuration to the Amazon Web Services owned KMS key.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk/aws-models/quicksight.json b/codegen/sdk/aws-models/quicksight.json index 7ab4cf82fb7..462a74e9a61 100644 --- a/codegen/sdk/aws-models/quicksight.json +++ b/codegen/sdk/aws-models/quicksight.json @@ -5091,7 +5091,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 200 + "max": 2000 } } }, @@ -5593,6 +5593,12 @@ "traits": { "smithy.api#documentation": "

The aggregation function of the column tooltip item.

" } + }, + "TooltipTarget": { + "target": "com.amazonaws.quicksight#TooltipTarget", + "traits": { + "smithy.api#documentation": "

Determines the target of the column tooltip item in a combo chart visual.

" + } } }, "traits": { @@ -21404,6 +21410,12 @@ "traits": { "smithy.api#documentation": "

The visibility of the tooltip item.

" } + }, + "TooltipTarget": { + "target": "com.amazonaws.quicksight#TooltipTarget", + "traits": { + "smithy.api#documentation": "

Determines the target of the field tooltip item in a combo chart visual.

" + } } }, "traits": { @@ -23788,7 +23800,7 @@ "AuthorizedResourceArns": { "target": "com.amazonaws.quicksight#ArnList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) for the Amazon QuickSight resources that the user\n is authorized to access during the lifetime of the session. If you choose\n Dashboard embedding experience, pass the list of dashboard ARNs in the\n account that you want the user to be able to view. Currently, you can pass up to 25\n dashboard ARNs in each API call.

", + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) for the Amazon QuickSight resources that the user\n is authorized to access during the lifetime of the session.

\n

If you choose Dashboard embedding experience, pass the list of dashboard ARNs in the\n account that you want the user to be able to view.

\n

Currently, you can pass up to 25\n dashboard ARNs in each API call.

", "smithy.api#required": {} } }, @@ -45992,6 +46004,29 @@ "smithy.api#documentation": "

The display options for the visual tooltip.

" } }, + "com.amazonaws.quicksight#TooltipTarget": { + "type": "enum", + "members": { + "BOTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BOTH" + } + }, + "BAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAR" + } + }, + "LINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINE" + } + } + } + }, "com.amazonaws.quicksight#TooltipTitleType": { "type": "enum", "members": { diff --git a/codegen/sdk/aws-models/rds.json b/codegen/sdk/aws-models/rds.json index f397dde2c88..f4b725baa44 100644 --- a/codegen/sdk/aws-models/rds.json +++ b/codegen/sdk/aws-models/rds.json @@ -7467,6 +7467,12 @@ "traits": { "smithy.api#documentation": "

The details for Aurora Limitless Database.

" } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the DB cluster. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

\n

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } } }, "traits": { @@ -7633,6 +7639,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the automated backup. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

\n

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } } }, "traits": { @@ -8468,6 +8480,12 @@ "traits": { "smithy.api#documentation": "

The resource ID of the DB cluster that this DB cluster snapshot was created from.

" } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the DB cluster snapshot. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

\n

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } } }, "traits": { @@ -10988,7 +11006,7 @@ } }, "DBShardGroupIdentifier": { - "target": "com.amazonaws.rds#String", + "target": "com.amazonaws.rds#DBShardGroupIdentifier", "traits": { "smithy.api#documentation": "

The name of the DB shard group.

" } @@ -11048,6 +11066,16 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#DBShardGroupIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$" + } + }, "com.amazonaws.rds#DBShardGroupNotFoundFault": { "type": "structure", "members": { @@ -12588,7 +12616,7 @@ "type": "structure", "members": { "DBShardGroupIdentifier": { - "target": "com.amazonaws.rds#String", + "target": "com.amazonaws.rds#DBShardGroupIdentifier", "traits": { "smithy.api#clientOptional": {}, "smithy.api#documentation": "

Teh name of the DB shard group to delete.

", @@ -15744,7 +15772,7 @@ "type": "structure", "members": { "DBShardGroupIdentifier": { - "target": "com.amazonaws.rds#String", + "target": "com.amazonaws.rds#DBShardGroupIdentifier", "traits": { "smithy.api#documentation": "

The user-supplied DB shard group identifier or the Amazon Resource Name (ARN) of the DB shard group. If this parameter is specified, \n information for only the specific DB shard group is returned. This parameter isn't case-sensitive.

\n

Constraints:

\n
    \n
  • \n

    If supplied, must match an existing DB shard group identifier.

    \n
  • \n
" } @@ -22695,7 +22723,7 @@ "type": "structure", "members": { "DBShardGroupIdentifier": { - "target": "com.amazonaws.rds#String", + "target": "com.amazonaws.rds#DBShardGroupIdentifier", "traits": { "smithy.api#clientOptional": {}, "smithy.api#documentation": "

The name of the DB shard group to modify.

", @@ -25288,7 +25316,7 @@ "type": "structure", "members": { "DBShardGroupIdentifier": { - "target": "com.amazonaws.rds#String", + "target": "com.amazonaws.rds#DBShardGroupIdentifier", "traits": { "smithy.api#clientOptional": {}, "smithy.api#documentation": "

The name of the DB shard group to reboot.

", @@ -27765,7 +27793,7 @@ "DBClusterSnapshotIdentifier": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from.

\n

For more information on Multi-AZ DB clusters, see Multi-AZ DB\n cluster deployments in the Amazon RDS User\n Guide.

\n

Constraints:

\n
    \n
  • \n

    Must match the identifier of an existing Multi-AZ DB cluster snapshot.

    \n
  • \n
  • \n

    Can't be specified when DBSnapshotIdentifier is specified.

    \n
  • \n
  • \n

    Must be specified when DBSnapshotIdentifier isn't specified.

    \n
  • \n
  • \n

    If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier\n must be the ARN of the shared snapshot.

    \n
  • \n
  • \n

    Can't be the identifier of an Aurora DB cluster snapshot.

    \n
  • \n
  • \n

    Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.

    \n
  • \n
" + "smithy.api#documentation": "

The identifier for the Multi-AZ DB cluster snapshot to restore from.

\n

For more information on Multi-AZ DB clusters, see Multi-AZ DB\n cluster deployments in the Amazon RDS User\n Guide.

\n

Constraints:

\n
    \n
  • \n

    Must match the identifier of an existing Multi-AZ DB cluster snapshot.

    \n
  • \n
  • \n

    Can't be specified when DBSnapshotIdentifier is specified.

    \n
  • \n
  • \n

    Must be specified when DBSnapshotIdentifier isn't specified.

    \n
  • \n
  • \n

    If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier\n must be the ARN of the shared snapshot.

    \n
  • \n
  • \n

    Can't be the identifier of an Aurora DB cluster snapshot.

    \n
  • \n
" } }, "AllocatedStorage": { diff --git a/codegen/sdk/aws-models/rum.json b/codegen/sdk/aws-models/rum.json index 1391d9738e6..eb9793f243b 100644 --- a/codegen/sdk/aws-models/rum.json +++ b/codegen/sdk/aws-models/rum.json @@ -122,7 +122,7 @@ "GuestRoleArn": { "target": "com.amazonaws.rum#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool \n that is used to authorize the sending of data to RUM.

" + "smithy.api#documentation": "

The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool \n that is used to authorize the sending of data to RUM.

\n \n

It is possible that an app monitor does not have a value for GuestRoleArn. For example, \n this can happen when you use the console to create an app monitor and you allow CloudWatch RUM to \n create a new identity pool for Authorization. In this case, GuestRoleArn is not present in the \n GetAppMonitor\n response because it is not stored by the service.

\n

If this issue affects you, you can take one of the following steps:

\n
    \n
  • \n

    Use the Cloud Development Kit (CDK) to create an identity pool and the associated IAM\n role, and use that for your app monitor.

    \n
  • \n
  • \n

    Make a separate GetIdentityPoolRoles\n call to Amazon Cognito to retrieve \n the GuestRoleArn.

    \n
  • \n
\n
" } }, "AllowCookies": { @@ -340,7 +340,7 @@ } ], "traits": { - "smithy.api#documentation": "

Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid\n destinations include CloudWatch and Evidently.

\n

By default, RUM app monitors send some metrics to CloudWatch. These default metrics\n are listed in CloudWatch metrics that you can collect \n with CloudWatch RUM.

\n

In addition to these default metrics, you can choose to send extended metrics or custom metrics or both.

\n
    \n
  • \n

    Extended metrics enable you to send metrics with additional dimensions not included \n in the default metrics. You can also send extended metrics to Evidently as well as CloudWatch. \n The valid dimension names for the additional dimensions for extended metrics are\n BrowserName, CountryCode, DeviceType,\n FileType, OSName, and PageId. For more information, see \n \n Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

    \n
  • \n
  • \n

    Custom metrics are metrics that you define. You can send custom metrics to CloudWatch or\n to CloudWatch Evidently or to both. With custom metrics, \n you can use any metric name and namespace, and to derive the metrics you can use any custom events, built-in events, \n custom attributes, or default attributes.

    \n

    You can't send custom metrics to the AWS/RUM namespace. You must send custom metrics to a \n custom namespace that you define. The namespace that you use can't start with AWS/. \n CloudWatch RUM prepends RUM/CustomMetrics/ to the custom namespace that you define, \n so the final namespace for your metrics in CloudWatch is \n RUM/CustomMetrics/your-custom-namespace\n .

    \n
  • \n
\n

The maximum number of metric definitions that you can specify in one \n BatchCreateRumMetricDefinitions operation is 200.

\n

The maximum number of metric definitions that one destination can contain is 2000.

\n

Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension\n value counts as a custom metric. For more information, see \n Amazon CloudWatch Pricing.

\n

You must have\n already created a destination for the metrics before you send them. For more information, see \n PutRumMetricsDestination.

\n

If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid,\n those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

", + "smithy.api#documentation": "

Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid\n destinations include CloudWatch and Evidently.

\n

By default, RUM app monitors send some metrics to CloudWatch. These default metrics\n are listed in CloudWatch metrics that you can collect \n with CloudWatch RUM.

\n

In addition to these default metrics, you can choose to send extended metrics, custom\n metrics, or both.

\n
    \n
  • \n

    Extended metrics let you send metrics with additional dimensions that aren't included in the\n default metrics. You can also send extended metrics to both Evidently and CloudWatch. The valid dimension names for the additional dimensions for extended\n metrics are BrowserName, CountryCode,\n DeviceType, FileType, OSName, and\n PageId. For more information, see \n Extended metrics that you can send to CloudWatch and CloudWatch\n Evidently.

    \n
  • \n
  • \n

    Custom metrics are metrics that you define. You can send custom metrics to CloudWatch.\n CloudWatch Evidently, or both. With custom metrics, you can use any metric\n name and namespace. To derive the metrics, you can use any custom events, built-in\n events, custom attributes, or default attributes.

    \n

    You can't send custom metrics to the AWS/RUM namespace. You must send custom metrics to a \n custom namespace that you define. The namespace that you use can't start with AWS/. \n CloudWatch RUM prepends RUM/CustomMetrics/ to the custom namespace that you define, \n so the final namespace for your metrics in CloudWatch is \n RUM/CustomMetrics/your-custom-namespace\n .

    \n
  • \n
\n

The maximum number of metric definitions that you can specify in one \n BatchCreateRumMetricDefinitions operation is 200.

\n

The maximum number of metric definitions that one destination can contain is 2000.

\n

Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension\n value counts as a custom metric. For more information, see \n Amazon CloudWatch Pricing.

\n

You must have\n already created a destination for the metrics before you send them. For more information, see \n PutRumMetricsDestination.

\n

If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid,\n those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

", "smithy.api#externalDocumentation": { "API Reference": "https://docs.aws.amazon.com/rum/latest/developerguide/BatchCreateRumMetricDefinitions.html" }, @@ -402,7 +402,7 @@ "Destination": { "target": "com.amazonaws.rum#MetricDestination", "traits": { - "smithy.api#documentation": "

The destination to send the metrics to. Valid values are CloudWatch and Evidently. If\n you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment \n that will receive\n the metrics and an IAM role that has permission to write to the experiment.

", + "smithy.api#documentation": "

The destination to send the metrics to. Valid values are CloudWatch and\n Evidently. If you specify Evidently, you must also specify the\n Amazon Resource Name (ARN) of the CloudWatchEvidently experiment that will receive\n the metrics and an IAM role that has permission to write to the\n experiment.

", "smithy.api#required": {} } }, @@ -770,7 +770,7 @@ "AppMonitorConfiguration": { "target": "com.amazonaws.rum#AppMonitorConfiguration", "traits": { - "smithy.api#documentation": "

A structure that contains much of the configuration data for the app monitor. If you are using \n Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the \n Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own \n authorization method. For more information, see \n Authorize your application\n to send data to Amazon Web Services.

\n

If you omit this argument, the sample rate used for RUM is set to 10% of the user sessions.

" + "smithy.api#documentation": "

A structure that contains much of the configuration data for the app monitor. If you are using \n Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the \n Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own \n authorization method. For more information, see \n Authorize your application\n to send data to Amazon Web Services.

\n

If you omit this argument, the sample rate used for RUM is set to 10% of the user sessions.

" } }, "CwLogEnabled": { @@ -1588,7 +1588,7 @@ "ValueKey": { "target": "com.amazonaws.rum#ValueKey", "traits": { - "smithy.api#documentation": "

The field within the event object that the metric value is sourced from.

\n

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you\n just want to count the number of events that the filter catches.

\n

If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently \n will handle data extraction from the event.

" + "smithy.api#documentation": "

The field within the event object that the metric value is sourced from.

\n

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is\n useful if you want to count the number of events that the filter catches.

\n

If this metric is sent to CloudWatch Evidently, this field will be passed to\n Evidently raw. Evidently will handle data extraction from the event.

" } }, "UnitLabel": { @@ -1606,7 +1606,7 @@ "EventPattern": { "target": "com.amazonaws.rum#EventPattern", "traits": { - "smithy.api#documentation": "

The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session\n against the pattern, and events that match the pattern are sent to the metric destination.

\n

When you define extended metrics, the metric definition is not valid if EventPattern\n is omitted.

\n

Example event patterns:

\n
    \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.js_error_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Safari\" ], } }'\n

    \n
  • \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Firefox\" ]\n },\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [ \"<\", 2000 ]\n }]\n }\n }'\n

    \n
  • \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Safari\" ],\n \"countryCode\": [ \"US\" ]\n },\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [ \">=\", 2000, \"<\", 8000 ]\n }]\n }\n }'\n

    \n
  • \n
\n

If the metrics destination'\n is CloudWatch and the event\n also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

" + "smithy.api#documentation": "

The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session\n against the pattern, and events that match the pattern are sent to the metric destination.

\n

When you define extended metrics, the metric definition is not valid if EventPattern\n is omitted.

\n

Example event patterns:

\n
    \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.js_error_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Safari\" ], } }'\n

    \n
  • \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Firefox\" ]\n },\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [ \"<\", 2000 ]\n }]\n }\n }'\n

    \n
  • \n
  • \n

    \n '{\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"metadata\": {\n \"browserName\": [ \"Chrome\", \"Safari\" ],\n \"countryCode\": [ \"US\" ]\n },\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [ \">=\", 2000, \"<\", 8000 ]\n }]\n }\n }'\n

    \n
  • \n
\n

If the metrics destination is CloudWatch and the event also matches a value\n in DimensionKeys, then the metric is published with the specified dimensions.

" } }, "Namespace": { @@ -1617,7 +1617,7 @@ } }, "traits": { - "smithy.api#documentation": "

Use this structure to define one extended metric or custom metric that RUM will send\n to CloudWatch or CloudWatch Evidently. For more information, see \n \n Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

\n

This structure is validated differently for extended metrics and custom metrics. For extended metrics\n that are sent to the AWS/RUM namespace, the following validations apply:

\n
    \n
  • \n

    The Namespace parameter must be omitted or set to AWS/RUM.

    \n
  • \n
  • \n

    Only certain combinations of values for Name, ValueKey, and EventPattern\n are valid. In addition to what is displayed in the list below, the EventPattern can also include information\n used by the DimensionKeys field.

    \n
      \n
    • \n

      If Name is PerformanceNavigationDuration, then\n ValueKeymust be event_details.duration and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}\n

      \n
    • \n
    • \n

      If Name is PerformanceResourceDuration, then\n ValueKeymust be event_details.duration and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}\n

      \n
    • \n
    • \n

      If Name is NavigationSatisfiedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">\",2000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is NavigationToleratedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">=\",2000,\"<\"8000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is NavigationFrustratedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">=\",8000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is WebVitalsCumulativeLayoutShift, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}\n

      \n
    • \n
    • \n

      If Name is WebVitalsFirstInputDelay, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}\n

      \n
    • \n
    • \n

      If Name is WebVitalsLargestContentfulPaint, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}\n

      \n
    • \n
    • \n

      If Name is JsErrorCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}\n

      \n
    • \n
    • \n

      If Name is HttpErrorCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.http_event\"]}\n

      \n
    • \n
    • \n

      If Name is SessionCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}\n

      \n
    • \n
    \n
  • \n
\n

For custom metrics, the following validation rules apply:

\n
    \n
  • \n

    The namespace can't be omitted and can't be AWS/RUM. You can use the AWS/RUM\n namespace only for extended metrics.

    \n
  • \n
  • \n

    All dimensions listed in the DimensionKeys field must be present in the value\n of EventPattern.

    \n
  • \n
  • \n

    The values that you specify for ValueKey, EventPattern, and \n DimensionKeys must be fields in RUM events, so all first-level keys in these fields must \n be one of the keys in the list later in this section.

    \n
  • \n
  • \n

    If you set a value for EventPattern, it must be a JSON object.

    \n
  • \n
  • \n

    For every non-empty event_details, there must be a non-empty event_type.

    \n
  • \n
  • \n

    If EventPattern contains an event_details field, \n it must also contain an event_type. For every built-in event_type that you use, you must use \n a value for event_details that corresponds to that\n event_type. For information about event details that correspond to event types, see \n \n RUM event details.

    \n
  • \n
  • \n

    In EventPattern, any JSON array must contain only one value.

    \n
  • \n
\n

Valid key values for first-level keys in the ValueKey, EventPattern, and \n DimensionKeys fields:

\n
    \n
  • \n

    \n account_id\n

    \n
  • \n
  • \n

    \n application_Id\n

    \n
  • \n
  • \n

    \n application_version\n

    \n
  • \n
  • \n

    \n application_name\n

    \n
  • \n
  • \n

    \n batch_id\n

    \n
  • \n
  • \n

    \n event_details\n

    \n
  • \n
  • \n

    \n event_id\n

    \n
  • \n
  • \n

    \n event_interaction\n

    \n
  • \n
  • \n

    \n event_timestamp\n

    \n
  • \n
  • \n

    \n event_type\n

    \n
  • \n
  • \n

    \n event_version\n

    \n
  • \n
  • \n

    \n log_stream\n

    \n
  • \n
  • \n

    \n metadata\n

    \n
  • \n
  • \n

    \n sessionId\n

    \n
  • \n
  • \n

    \n user_details\n

    \n
  • \n
  • \n

    \n userId\n

    \n
  • \n
" + "smithy.api#documentation": "

Use this structure to define one extended metric or custom metric that RUM will send\n to CloudWatch or CloudWatch Evidently. For more information, see \n \n Custom metrics and extended metrics that you can send to CloudWatch and CloudWatch Evidently.

\n

This structure is validated differently for extended metrics and custom metrics. For extended metrics\n that are sent to the AWS/RUM namespace, the following validations apply:

\n
    \n
  • \n

    The Namespace parameter must be omitted or set to AWS/RUM.

    \n
  • \n
  • \n

    Only certain combinations of values for Name, ValueKey, and\n EventPattern are valid. In addition to what is displayed in the\n following list, the EventPattern can also include information used by\n the DimensionKeys field.

    \n
      \n
    • \n

      If Name is PerformanceNavigationDuration, then\n ValueKeymust be event_details.duration and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}\n

      \n
    • \n
    • \n

      If Name is PerformanceResourceDuration, then\n ValueKeymust be event_details.duration and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}\n

      \n
    • \n
    • \n

      If Name is NavigationSatisfiedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">\",2000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is NavigationToleratedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">=\",2000,\"<\"8000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is NavigationFrustratedTransaction, then\n ValueKeymust be null and the EventPattern\n must include {\n \"event_type\": [\"com.amazon.rum.performance_navigation_event\"],\n \"event_details\": {\n \"duration\": [{\n \"numeric\": [\">=\",8000]\n }]\n }\n }\n

      \n
    • \n
    • \n

      If Name is WebVitalsCumulativeLayoutShift, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}\n

      \n
    • \n
    • \n

      If Name is WebVitalsFirstInputDelay, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}\n

      \n
    • \n
    • \n

      If Name is WebVitalsLargestContentfulPaint, then\n ValueKeymust be event_details.value and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}\n

      \n
    • \n
    • \n

      If Name is JsErrorCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}\n

      \n
    • \n
    • \n

      If Name is HttpErrorCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.http_event\"]}\n

      \n
    • \n
    • \n

      If Name is SessionCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}\n

      \n
    • \n
    • \n

      If Name is PageViewCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\":[\"com.amazon.rum.page_view_event\"]}\n

      \n
    • \n
    • \n

      If Name is Http4xxCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\": [\"com.amazon.rum.http_event\"],\"event_details\":{\"response\":{\"status\":[{\"numeric\":[\">=\",400,\"<\",500]}]}}} }\n

      \n
    • \n
    • \n

      If Name is Http5xxCount, then\n ValueKeymust be null and the EventPattern\n must include {\"event_type\": [\"com.amazon.rum.http_event\"],\"event_details\":{\"response\":{\"status\":[{\"numeric\":[\">=\",500,\"<=\",599]}]}}} }\n

      \n
    • \n
    \n
  • \n
\n

For custom metrics, the following validation rules apply:

\n
    \n
  • \n

    The namespace can't be omitted and can't be AWS/RUM. You can use the AWS/RUM\n namespace only for extended metrics.

    \n
  • \n
  • \n

    All dimensions listed in the DimensionKeys field must be present in the value\n of EventPattern.

    \n
  • \n
  • \n

    The values that you specify for ValueKey, EventPattern, and \n DimensionKeys must be fields in RUM events, so all first-level keys in these fields must \n be one of the keys in the list later in this section.

    \n
  • \n
  • \n

    If you set a value for EventPattern, it must be a JSON object.

    \n
  • \n
  • \n

    For every non-empty event_details, there must be a non-empty event_type.

    \n
  • \n
  • \n

    If EventPattern contains an event_details field, \n it must also contain an event_type. For every built-in event_type that you use, you must use \n a value for event_details that corresponds to that\n event_type. For information about event details that correspond to event types, see \n \n RUM event details.

    \n
  • \n
  • \n

    In EventPattern, any JSON array must contain only one value.

    \n
  • \n
\n

Valid key values for first-level keys in the ValueKey, EventPattern, and \n DimensionKeys fields:

\n
    \n
  • \n

    \n account_id\n

    \n
  • \n
  • \n

    \n application_Id\n

    \n
  • \n
  • \n

    \n application_version\n

    \n
  • \n
  • \n

    \n application_name\n

    \n
  • \n
  • \n

    \n batch_id\n

    \n
  • \n
  • \n

    \n event_details\n

    \n
  • \n
  • \n

    \n event_id\n

    \n
  • \n
  • \n

    \n event_interaction\n

    \n
  • \n
  • \n

    \n event_timestamp\n

    \n
  • \n
  • \n

    \n event_type\n

    \n
  • \n
  • \n

    \n event_version\n

    \n
  • \n
  • \n

    \n log_stream\n

    \n
  • \n
  • \n

    \n metadata\n

    \n
  • \n
  • \n

    \n sessionId\n

    \n
  • \n
  • \n

    \n user_details\n

    \n
  • \n
  • \n

    \n userId\n

    \n
  • \n
" } }, "com.amazonaws.rum#MetricDefinitions": { @@ -1871,7 +1871,7 @@ "IamRoleArn": { "target": "com.amazonaws.rum#IamRoleArn", "traits": { - "smithy.api#documentation": "

This parameter is required if Destination is Evidently. If Destination is \n CloudWatch, do not use this parameter.

\n

This parameter specifies\n the ARN of an IAM role that RUM will assume to write to the Evidently \n experiment that you are sending metrics to. This role must have permission to write to that experiment.

" + "smithy.api#documentation": "

This parameter is required if Destination is Evidently. If Destination is \n CloudWatch, don't use this parameter.

\n

This parameter specifies\n the ARN of an IAM role that RUM will assume to write to the Evidently \n experiment that you are sending metrics to. This role must have permission to write to that experiment.

\n

If you specify this parameter, you must be signed on to a role that has PassRole permissions attached to it, to allow\n the role to be passed. The \n CloudWatchAmazonCloudWatchRUMFullAccess\n policy doesn't include PassRole\n permissions.

" } } } @@ -3159,7 +3159,7 @@ "AppMonitorConfiguration": { "target": "com.amazonaws.rum#AppMonitorConfiguration", "traits": { - "smithy.api#documentation": "

A structure that contains much of the configuration data for the app monitor. If you are using \n Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the \n Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own \n authorization method. For more information, see \n Authorize your application\n to send data to Amazon Web Services.

" + "smithy.api#documentation": "

A structure that contains much of the configuration data for the app monitor. If you are using \n Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the \n Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own \n authorization method. For more information, see \n Authorize your application\n to send data to Amazon Web Services.

" } }, "CwLogEnabled": { diff --git a/codegen/sdk/aws-models/sagemaker.json b/codegen/sdk/aws-models/sagemaker.json index 32fb62d8053..81685b1e712 100644 --- a/codegen/sdk/aws-models/sagemaker.json +++ b/codegen/sdk/aws-models/sagemaker.json @@ -2883,7 +2883,7 @@ "target": "com.amazonaws.sagemaker#AutoMLMetricEnum", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the objective metric used to measure the predictive quality of a machine\n learning system. During training, the model's parameters are updated iteratively to\n optimize its performance based on the feedback provided by the objective metric when\n evaluating the model on the validation dataset.

\n

The list of available metrics supported by Autopilot and the default metric applied when you\n do not specify a metric name explicitly depend on the problem type.

\n
    \n
  • \n

    For tabular problem types:

    \n
      \n
    • \n

      List of available metrics:

      \n
        \n
      • \n

        Regression: InferenceLatency, MAE,\n MSE, R2, RMSE\n

        \n
      • \n
      • \n

        Binary classification: Accuracy, AUC,\n BalancedAccuracy, F1,\n InferenceLatency, LogLoss,\n Precision, Recall\n

        \n
      • \n
      • \n

        Multiclass classification: Accuracy,\n BalancedAccuracy, F1macro,\n InferenceLatency, LogLoss,\n PrecisionMacro, RecallMacro\n

        \n
      • \n
      \n

      For a description of each metric, see Autopilot metrics for classification and regression.

      \n
    • \n
    • \n

      Default objective metrics:

      \n
        \n
      • \n

        Regression: MSE.

        \n
      • \n
      • \n

        Binary classification: F1.

        \n
      • \n
      • \n

        Multiclass classification: Accuracy.

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    For image or text classification problem types:

    \n \n
  • \n
  • \n

    For time-series forecasting problem types:

    \n
      \n
    • \n

      List of available metrics: RMSE, wQL,\n Average wQL, MASE, MAPE,\n WAPE\n

      \n

      For a description of each metric, see Autopilot metrics for\n time-series forecasting.

      \n
    • \n
    • \n

      Default objective metrics: AverageWeightedQuantileLoss\n

      \n
    • \n
    \n
  • \n
  • \n

    For text generation problem types (LLMs fine-tuning): \n Fine-tuning language models in Autopilot does not\n require setting the AutoMLJobObjective field. Autopilot fine-tunes LLMs\n without requiring multiple candidates to be trained and evaluated. \n Instead, using your dataset, Autopilot directly fine-tunes your target model to enhance a\n default objective metric, the cross-entropy loss. After fine-tuning a language model,\n you can evaluate the quality of its generated text using different metrics. \n For a list of the available metrics, see Metrics for\n fine-tuning LLMs in Autopilot.

    \n
  • \n
", + "smithy.api#documentation": "

The name of the objective metric used to measure the predictive quality of a machine\n learning system. During training, the model's parameters are updated iteratively to\n optimize its performance based on the feedback provided by the objective metric when\n evaluating the model on the validation dataset.

\n

The list of available metrics supported by Autopilot and the default metric applied when you\n do not specify a metric name explicitly depend on the problem type.

\n
    \n
  • \n

    For tabular problem types:

    \n
      \n
    • \n

      List of available metrics:

      \n
        \n
      • \n

        Regression: MAE,\n MSE, R2, RMSE\n

        \n
      • \n
      • \n

        Binary classification: Accuracy, AUC,\n BalancedAccuracy, F1,\n Precision, Recall\n

        \n
      • \n
      • \n

        Multiclass classification: Accuracy,\n BalancedAccuracy, F1macro,\n PrecisionMacro, RecallMacro\n

        \n
      • \n
      \n

      For a description of each metric, see Autopilot metrics for classification and regression.

      \n
    • \n
    • \n

      Default objective metrics:

      \n
        \n
      • \n

        Regression: MSE.

        \n
      • \n
      • \n

        Binary classification: F1.

        \n
      • \n
      • \n

        Multiclass classification: Accuracy.

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    For image or text classification problem types:

    \n \n
  • \n
  • \n

    For time-series forecasting problem types:

    \n
      \n
    • \n

      List of available metrics: RMSE, wQL,\n Average wQL, MASE, MAPE,\n WAPE\n

      \n

      For a description of each metric, see Autopilot metrics for\n time-series forecasting.

      \n
    • \n
    • \n

      Default objective metrics: AverageWeightedQuantileLoss\n

      \n
    • \n
    \n
  • \n
  • \n

    For text generation problem types (LLMs fine-tuning): \n Fine-tuning language models in Autopilot does not\n require setting the AutoMLJobObjective field. Autopilot fine-tunes LLMs\n without requiring multiple candidates to be trained and evaluated. \n Instead, using your dataset, Autopilot directly fine-tunes your target model to enhance a\n default objective metric, the cross-entropy loss. After fine-tuning a language model,\n you can evaluate the quality of its generated text using different metrics. \n For a list of the available metrics, see Metrics for\n fine-tuning LLMs in Autopilot.

    \n
  • \n
", "smithy.api#required": {} } } @@ -10421,7 +10421,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a model in SageMaker. In the request, you name the model and describe a primary\n container. For the primary container, you specify the Docker image that\n contains inference code, artifacts (from prior training), and a custom environment map\n that the inference code uses when you deploy the model for predictions.

\n

Use this API to create a model if you want to use SageMaker hosting services or run a batch\n transform job.

\n

To host your model, you create an endpoint configuration with the\n CreateEndpointConfig API, and then create an endpoint with the\n CreateEndpoint API. SageMaker then deploys all of the containers that you\n defined for the model in the hosting environment.

\n

For an example that calls this method when deploying a model to SageMaker hosting services,\n see Create a Model (Amazon Web Services SDK for Python (Boto 3)).\n

\n

To run a batch transform using your model, you start a job with the\n CreateTransformJob API. SageMaker uses your model and your dataset to get\n inferences which are then saved to a specified S3 location.

\n

In the request, you also provide an IAM role that SageMaker can assume to access model\n artifacts and docker image for deployment on ML compute hosting instances or for batch\n transform jobs. In addition, you also use the IAM role to manage permissions the\n inference code needs. For example, if the inference code access any other Amazon Web Services resources, you grant necessary permissions via this role.

" + "smithy.api#documentation": "

Creates a model in SageMaker. In the request, you name the model and describe a primary\n container. For the primary container, you specify the Docker image that\n contains inference code, artifacts (from prior training), and a custom environment map\n that the inference code uses when you deploy the model for predictions.

\n

Use this API to create a model if you want to use SageMaker hosting services or run a batch\n transform job.

\n

To host your model, you create an endpoint configuration with the\n CreateEndpointConfig API, and then create an endpoint with the\n CreateEndpoint API. SageMaker then deploys all of the containers that you\n defined for the model in the hosting environment.

\n

To run a batch transform using your model, you start a job with the\n CreateTransformJob API. SageMaker uses your model and your dataset to get\n inferences which are then saved to a specified S3 location.

\n

In the request, you also provide an IAM role that SageMaker can assume to access model\n artifacts and docker image for deployment on ML compute hosting instances or for batch\n transform jobs. In addition, you also use the IAM role to manage permissions the\n inference code needs. For example, if the inference code access any other Amazon Web Services resources, you grant necessary permissions via this role.

" } }, "com.amazonaws.sagemaker#CreateModelBiasJobDefinition": { @@ -10982,7 +10982,7 @@ "InferenceSpecification": { "target": "com.amazonaws.sagemaker#InferenceSpecification", "traits": { - "smithy.api#documentation": "

Specifies details about inference jobs that can be run with models based on this model\n package, including the following:

\n
    \n
  • \n

    The Amazon ECR paths of containers that contain the inference code and model\n artifacts.

    \n
  • \n
  • \n

    The instance types that the model package supports for transform jobs and\n real-time endpoints used for inference.

    \n
  • \n
  • \n

    The input and output content formats that the model package supports for\n inference.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies details about inference jobs that you can run with models based on this model\n package, including the following information:

\n
    \n
  • \n

    The Amazon ECR paths of containers that contain the inference code and model\n artifacts.

    \n
  • \n
  • \n

    The instance types that the model package supports for transform jobs and\n real-time endpoints used for inference.

    \n
  • \n
  • \n

    The input and output content formats that the model package supports for\n inference.

    \n
  • \n
" } }, "ValidationSpecification": { @@ -11072,6 +11072,12 @@ "traits": { "smithy.api#documentation": "

Indicates if you want to skip model validation.

" } + }, + "SourceUri": { + "target": "com.amazonaws.sagemaker#ModelPackageSourceUri", + "traits": { + "smithy.api#documentation": "

The URI of the source for the model package. If you want to clone a model package,\n set it to the model package Amazon Resource Name (ARN). If you want to register a model,\n set it to the model ARN.

" + } } }, "traits": { @@ -16241,7 +16247,7 @@ "CreationTime": { "target": "com.amazonaws.sagemaker#Timestamp", "traits": { - "smithy.api#documentation": "

The creation time.

" + "smithy.api#documentation": "

The creation time of the application.

\n \n

After an application has been shut down for 24 hours, SageMaker deletes all metadata for the application. To be considered an update and retain application metadata, applications must be restarted within 24 hours after the previous application has been shut down. After this time window, creation of an application is considered a new application rather than an update of the previous application.

\n
" } }, "FailureReason": { @@ -21106,7 +21112,7 @@ "InferenceSpecification": { "target": "com.amazonaws.sagemaker#InferenceSpecification", "traits": { - "smithy.api#documentation": "

Details about inference jobs that can be run with models based on this model\n package.

" + "smithy.api#documentation": "

Details about inference jobs that you can run with models based on this model\n package.

" } }, "SourceAlgorithmSpecification": { @@ -21217,6 +21223,12 @@ "traits": { "smithy.api#documentation": "

Indicates if you want to skip model validation.

" } + }, + "SourceUri": { + "target": "com.amazonaws.sagemaker#ModelPackageSourceUri", + "traits": { + "smithy.api#documentation": "

The URI of the source for the model package.

" + } } }, "traits": { @@ -26115,7 +26127,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 16 + "max": 100 } } }, @@ -32698,7 +32710,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration for the file system and kernels in a SageMaker image running as a JupyterLab app.

" + "smithy.api#documentation": "

The configuration for the file system and kernels in a SageMaker image running as a JupyterLab app. The FileSystemConfig object is not supported.

" } }, "com.amazonaws.sagemaker#JupyterLabAppSettings": { @@ -43035,7 +43047,7 @@ "Bias": { "target": "com.amazonaws.sagemaker#Bias", "traits": { - "smithy.api#documentation": "

Metrics that measure bais in a model.

" + "smithy.api#documentation": "

Metrics that measure bias in a model.

" } }, "Explainability": { @@ -43210,6 +43222,12 @@ "smithy.api#documentation": "

An array of additional Inference Specification objects.

" } }, + "SourceUri": { + "target": "com.amazonaws.sagemaker#ModelPackageSourceUri", + "traits": { + "smithy.api#documentation": "

The URI of the source for the model package.

" + } + }, "Tags": { "target": "com.amazonaws.sagemaker#TagList", "traits": { @@ -43290,6 +43308,12 @@ "smithy.api#documentation": "

The Amazon S3 path where the model artifacts, which result from model training, are stored.\n This path must point to a single gzip compressed tar archive\n (.tar.gz suffix).

\n \n

The model artifacts must be in an S3 bucket that is in the same region as the\n model package.

\n
" } }, + "ModelDataSource": { + "target": "com.amazonaws.sagemaker#ModelDataSource", + "traits": { + "smithy.api#documentation": "

Specifies the location of ML model data to deploy during endpoint creation.

" + } + }, "ProductId": { "target": "com.amazonaws.sagemaker#ProductId", "traits": { @@ -43543,6 +43567,16 @@ } } }, + "com.amazonaws.sagemaker#ModelPackageSourceUri": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[\\p{L}\\p{M}\\p{Z}\\p{N}\\p{P}]{0,1024}$" + } + }, "com.amazonaws.sagemaker#ModelPackageStatus": { "type": "enum", "members": { @@ -56729,6 +56763,12 @@ "smithy.api#documentation": "

The Amazon S3 path where the model artifacts, which result from model training, are stored.\n This path must point to a single gzip compressed tar archive\n (.tar.gz suffix).

\n \n

The model artifacts must be in an S3 bucket that is in the same Amazon Web Services\n region as the algorithm.

\n
" } }, + "ModelDataSource": { + "target": "com.amazonaws.sagemaker#ModelDataSource", + "traits": { + "smithy.api#documentation": "

Specifies the location of ML model data to deploy during endpoint creation.

" + } + }, "AlgorithmName": { "target": "com.amazonaws.sagemaker#ArnOrName", "traits": { @@ -63301,7 +63341,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the feature group by either adding features or updating the online store\n configuration. Use one of the following request parameters at a time while using the\n UpdateFeatureGroup API.

\n

You can add features for your feature group using the FeatureAdditions\n request parameter. Features cannot be removed from a feature group.

\n

You can update the online store configuration by using the\n OnlineStoreConfig request parameter. If a TtlDuration is\n specified, the default TtlDuration applies for all records added to the\n feature group after the feature group is updated. If a record level\n TtlDuration exists from using the PutRecord API, the record\n level TtlDuration applies to that record instead of the default\n TtlDuration.

" + "smithy.api#documentation": "

Updates the feature group by either adding features or updating the online store\n configuration. Use one of the following request parameters at a time while using the\n UpdateFeatureGroup API.

\n

You can add features for your feature group using the FeatureAdditions\n request parameter. Features cannot be removed from a feature group.

\n

You can update the online store configuration by using the\n OnlineStoreConfig request parameter. If a TtlDuration is\n specified, the default TtlDuration applies for all records added to the\n feature group after the feature group is updated. If a record level\n TtlDuration exists from using the PutRecord API, the record\n level TtlDuration applies to that record instead of the default\n TtlDuration. To remove the default TtlDuration from an\n existing feature group, use the UpdateFeatureGroup API and set the\n TtlDuration\n Unit and Value to null.

" } }, "com.amazonaws.sagemaker#UpdateFeatureGroupRequest": { @@ -63991,6 +64031,18 @@ "traits": { "smithy.api#documentation": "

An array of additional Inference Specification objects to be added to the \n existing array additional Inference Specification. Total number of additional \n Inference Specifications can not exceed 15. Each additional Inference Specification \n specifies artifacts based on this model package that can be used on inference endpoints. \n Generally used with SageMaker Neo to store the compiled artifacts.

" } + }, + "InferenceSpecification": { + "target": "com.amazonaws.sagemaker#InferenceSpecification", + "traits": { + "smithy.api#documentation": "

Specifies details about inference jobs that you can run with models based on this model\n package, including the following information:

\n
    \n
  • \n

    The Amazon ECR paths of containers that contain the inference code and model\n artifacts.

    \n
  • \n
  • \n

    The instance types that the model package supports for transform jobs and\n real-time endpoints used for inference.

    \n
  • \n
  • \n

    The input and output content formats that the model package supports for\n inference.

    \n
  • \n
" + } + }, + "SourceUri": { + "target": "com.amazonaws.sagemaker#ModelPackageSourceUri", + "traits": { + "smithy.api#documentation": "

The URI of the source for the model package.

" + } } }, "traits": { @@ -65587,7 +65639,7 @@ "Key": { "target": "com.amazonaws.sagemaker#VisibilityConditionsKey", "traits": { - "smithy.api#documentation": "

The key that specifies the tag that you're using to filter the search results. It must be in the following format: Tags./EqualsIfExists.

" + "smithy.api#documentation": "

The key that specifies the tag that you're using to filter the search results. It must be in the following format: Tags..

" } }, "Value": { @@ -65598,7 +65650,7 @@ } }, "traits": { - "smithy.api#documentation": "

The list of key-value pairs that you specify for your resources.

" + "smithy.api#documentation": "

The list of key-value pairs used to filter your search results. If a search result contains a key from your list, it is included in the final search response if the value associated with the key in the result matches the value you specified. \n If the value doesn't match, the result is excluded from the search response. Any resources that don't have a key from the list that you've provided will also be included in the search response.

" } }, "com.amazonaws.sagemaker#VisibilityConditionsKey": { diff --git a/codegen/sdk/aws-models/securitylake.json b/codegen/sdk/aws-models/securitylake.json index ed5fb4aed87..65c98b004b7 100644 --- a/codegen/sdk/aws-models/securitylake.json +++ b/codegen/sdk/aws-models/securitylake.json @@ -137,7 +137,7 @@ }, "traits": { "smithy.api#length": { - "min": 0, + "min": 1, "max": 50 } } @@ -180,6 +180,18 @@ "traits": { "smithy.api#enumValue": "S3_DATA" } + }, + "EKS_AUDIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EKS_AUDIT" + } + }, + "WAF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WAF" + } } } }, @@ -207,6 +219,11 @@ "type": "list", "member": { "target": "com.amazonaws.securitylake#AwsLogSourceResource" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } } }, "com.amazonaws.securitylake#AwsLogSourceVersion": { @@ -416,7 +433,8 @@ "configuration": { "target": "com.amazonaws.securitylake#CustomLogSourceConfiguration", "traits": { - "smithy.api#documentation": "

The configuration for the third-party custom source.

" + "smithy.api#documentation": "

The configuration for the third-party custom source.

", + "smithy.api#required": {} } } }, @@ -626,8 +644,7 @@ "autoEnableNewAccount": { "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList", "traits": { - "smithy.api#documentation": "

Enable Security Lake with the specified configuration settings, to begin collecting security\n data for new accounts in your organization.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Enable Security Lake with the specified configuration settings, to begin collecting security\n data for new accounts in your organization.

" } } }, @@ -1113,6 +1130,11 @@ "type": "list", "member": { "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } } }, "com.amazonaws.securitylake#DataLakeConfiguration": { @@ -1152,6 +1174,11 @@ "type": "list", "member": { "target": "com.amazonaws.securitylake#DataLakeConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } } }, "com.amazonaws.securitylake#DataLakeEncryptionConfiguration": { @@ -1779,8 +1806,7 @@ "autoEnableNewAccount": { "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList", "traits": { - "smithy.api#documentation": "

Turns off automatic enablement of Security Lake for member accounts that are added to an organization.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Turns off automatic enablement of Security Lake for member accounts that are added to an organization.

" } } }, @@ -2817,7 +2843,7 @@ "resourceArn": { "target": "com.amazonaws.securitylake#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Security Lake resource to retrieve the tags for.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Security Lake resource for which you want to retrieve the tags.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3073,7 +3099,7 @@ "com.amazonaws.securitylake#RoleArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:.*$" + "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" } }, "com.amazonaws.securitylake#S3BucketArn": { @@ -4490,6 +4516,12 @@ "smithy.api#documentation": "

Specify the Region or Regions that will contribute data to the rollup region.

", "smithy.api#required": {} } + }, + "metaStoreManagerRoleArn": { + "target": "com.amazonaws.securitylake#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) used to create and update the Glue table.\n This table contains partitions generated by the ingestion and normalization of\n Amazon Web Services log sources and custom sources.

" + } } }, "traits": { diff --git a/codegen/sdk/aws-models/sesv2.json b/codegen/sdk/aws-models/sesv2.json index 85eca1091f7..68f31c8d7dc 100644 --- a/codegen/sdk/aws-models/sesv2.json +++ b/codegen/sdk/aws-models/sesv2.json @@ -870,7 +870,7 @@ "ContactListImportAction": { "target": "com.amazonaws.sesv2#ContactListImportAction", "traits": { - "smithy.api#documentation": "

>The type of action to perform on the addresses. The following are the \n possible values:

\n
    \n
  • \n

    PUT: add the addresses to the contact list. If the record already exists, it\n will override it with the new value.

    \n
  • \n
  • \n

    DELETE: remove the addresses from the contact list.

    \n
  • \n
", + "smithy.api#documentation": "

>The type of action to perform on the addresses. The following are the possible\n values:

\n
    \n
  • \n

    PUT: add the addresses to the contact list. If the record already exists, it\n will override it with the new value.

    \n
  • \n
  • \n

    DELETE: remove the addresses from the contact list.

    \n
  • \n
", "smithy.api#required": {} } } @@ -1978,12 +1978,12 @@ "EngagementMetrics": { "target": "com.amazonaws.sesv2#FeatureStatus", "traits": { - "smithy.api#documentation": "

Specifies the status of your VDM engagement metrics collection. Can be one of the following:

\n
    \n
  • \n

    \n ENABLED – Amazon SES enables engagement metrics for your account.

    \n
  • \n
  • \n

    \n DISABLED – Amazon SES disables engagement metrics for your account.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the status of your VDM engagement metrics collection. Can be one of the\n following:

\n
    \n
  • \n

    \n ENABLED – Amazon SES enables engagement metrics for your\n account.

    \n
  • \n
  • \n

    \n DISABLED – Amazon SES disables engagement metrics for your\n account.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

An object containing additional settings for your VDM configuration as applicable to the Dashboard.

" + "smithy.api#documentation": "

An object containing additional settings for your VDM configuration as applicable to\n the Dashboard.

" } }, "com.amazonaws.sesv2#DashboardOptions": { @@ -3276,7 +3276,7 @@ "Raw": { "target": "com.amazonaws.sesv2#RawMessage", "traits": { - "smithy.api#documentation": "

The raw email message. The message has to meet the following criteria:

\n
    \n
  • \n

    The message has to contain a header and a body, separated by one blank\n line.

    \n
  • \n
  • \n

    All of the required header fields must be present in the message.

    \n
  • \n
  • \n

    Each part of a multipart MIME message must be formatted properly.

    \n
  • \n
  • \n

    If you include attachments, they must be in a file format that the Amazon SES API v2\n supports.\n

    \n
  • \n
  • \n

    The raw data of the message needs to base64-encoded if you are accessing\n Amazon SES directly through the HTTPS interface. If you are accessing Amazon SES using an Amazon Web Services\n SDK, the SDK takes care of the base 64-encoding for you.

    \n
  • \n
  • \n

    If any of the MIME parts in your message contain content that is outside of\n the 7-bit ASCII character range, you should encode that content to ensure that\n recipients' email clients render the message properly.

    \n
  • \n
  • \n

    The length of any single line of text in the message can't exceed 1,000\n characters. This restriction is defined in RFC 5321.

    \n
  • \n
" + "smithy.api#documentation": "

The raw email message. The message has to meet the following criteria:

\n
    \n
  • \n

    The message has to contain a header and a body, separated by one blank\n line.

    \n
  • \n
  • \n

    All of the required header fields must be present in the message.

    \n
  • \n
  • \n

    Each part of a multipart MIME message must be formatted properly.

    \n
  • \n
  • \n

    If you include attachments, they must be in a file format that the Amazon SES API v2\n supports.\n

    \n
  • \n
  • \n

    The raw data of the message needs to base64-encoded if you are accessing Amazon SES\n directly through the HTTPS interface. If you are accessing Amazon SES using an Amazon Web Services\n SDK, the SDK takes care of the base 64-encoding for you.

    \n
  • \n
  • \n

    If any of the MIME parts in your message contain content that is outside of\n the 7-bit ASCII character range, you should encode that content to ensure that\n recipients' email clients render the message properly.

    \n
  • \n
  • \n

    The length of any single line of text in the message can't exceed 1,000\n characters. This restriction is defined in RFC 5321.

    \n
  • \n
" } }, "Template": { @@ -3967,7 +3967,7 @@ "target": "com.amazonaws.sesv2#Enabled", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether or not your account has production access in the current Amazon Web Services\n Region.

\n

If the value is false, then your account is in the\n sandbox. When your account is in the sandbox, you can only send\n email to verified identities. Additionally, the maximum number of emails you can send in\n a 24-hour period (your sending quota) is 200, and the maximum number of emails you can\n send per second (your maximum sending rate) is 1.

\n

If the value is true, then your account has production access. When your\n account has production access, you can send email to any address. The sending quota and\n maximum sending rate for your account vary based on your specific use case.

" + "smithy.api#documentation": "

Indicates whether or not your account has production access in the current Amazon Web Services\n Region.

\n

If the value is false, then your account is in the\n sandbox. When your account is in the sandbox, you can only send\n email to verified identities.\n

\n

If the value is true, then your account has production access. When your\n account has production access, you can send email to any address. The sending quota and\n maximum sending rate for your account vary based on your specific use case.

" } }, "SendQuota": { @@ -5641,12 +5641,12 @@ "OptimizedSharedDelivery": { "target": "com.amazonaws.sesv2#FeatureStatus", "traits": { - "smithy.api#documentation": "

Specifies the status of your VDM optimized shared delivery. Can be one of the following:

\n
    \n
  • \n

    \n ENABLED – Amazon SES enables optimized shared delivery for your account.

    \n
  • \n
  • \n

    \n DISABLED – Amazon SES disables optimized shared delivery for your account.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the status of your VDM optimized shared delivery. Can be one of the\n following:

\n
    \n
  • \n

    \n ENABLED – Amazon SES enables optimized shared delivery for your\n account.

    \n
  • \n
  • \n

    \n DISABLED – Amazon SES disables optimized shared delivery for\n your account.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

An object containing additional settings for your VDM configuration as applicable to the Guardian.

" + "smithy.api#documentation": "

An object containing additional settings for your VDM configuration as applicable to\n the Guardian.

" } }, "com.amazonaws.sesv2#GuardianOptions": { @@ -6327,7 +6327,7 @@ "PageSize": { "target": "com.amazonaws.sesv2#MaxItems", "traits": { - "smithy.api#documentation": "

The number of contacts that may be returned at once, which is dependent on if there\n are more or less contacts than the value of the PageSize. Use this parameter to\n paginate results. If additional contacts exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n contacts.

", + "smithy.api#documentation": "

The number of contacts that may be returned at once, which is dependent on if there\n are more or less contacts than the value of the PageSize. Use this parameter to paginate\n results. If additional contacts exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n contacts.

", "smithy.api#httpQuery": "PageSize" } }, @@ -7468,6 +7468,12 @@ "smithy.api#documentation": "

The body of the message. You can specify an HTML version of the message, a text-only\n version of the message, or both.

", "smithy.api#required": {} } + }, + "Headers": { + "target": "com.amazonaws.sesv2#MessageHeaderList", + "traits": { + "smithy.api#documentation": "

The list of message headers that will be added to the email message.

" + } } }, "traits": { @@ -7483,6 +7489,63 @@ "com.amazonaws.sesv2#MessageData": { "type": "string" }, + "com.amazonaws.sesv2#MessageHeader": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.sesv2#MessageHeaderName", + "traits": { + "smithy.api#documentation": "

The name of the message header. The message header name has to meet the following\n criteria:

\n
    \n
  • \n

    Can contain any printable ASCII character (33 - 126) except for colon (:).

    \n
  • \n
  • \n

    Can contain no more than 126 characters.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.sesv2#MessageHeaderValue", + "traits": { + "smithy.api#documentation": "

The value of the message header. The message header value has to meet the following\n criteria:

\n
    \n
  • \n

    Can contain any printable ASCII character.

    \n
  • \n
  • \n

    Can contain no more than 870 characters.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the name and value of a message header that you add to an email.

" + } + }, + "com.amazonaws.sesv2#MessageHeaderList": { + "type": "list", + "member": { + "target": "com.amazonaws.sesv2#MessageHeader" + }, + "traits": { + "smithy.api#documentation": "

A list of message headers. The list of message headers has to meet the following\n criteria:

\n
    \n
  • \n

    Can contain no more than 15 headers in one message.

    \n
  • \n
", + "smithy.api#length": { + "min": 0, + "max": 15 + } + } + }, + "com.amazonaws.sesv2#MessageHeaderName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of the message header. The message header name has to meet the following\n criteria:

\n
    \n
  • \n

    Can contain any printable ASCII character (33 - 126) except for colon (:).

    \n
  • \n
  • \n

    Can contain no more than 126 characters.

    \n
  • \n
", + "smithy.api#length": { + "min": 1, + "max": 126 + }, + "smithy.api#pattern": "^[!-9;-@A-~]+$" + } + }, + "com.amazonaws.sesv2#MessageHeaderValue": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The value of the message header. The message header value has to meet the following\n criteria:

\n
    \n
  • \n

    Can contain any printable ASCII character.

    \n
  • \n
", + "smithy.api#length": { + "min": 1, + "max": 870 + }, + "smithy.api#pattern": "^[ -~]*$" + } + }, "com.amazonaws.sesv2#MessageInsightsDataSource": { "type": "structure", "members": { @@ -8152,7 +8215,7 @@ "ProductionAccessEnabled": { "target": "com.amazonaws.sesv2#EnabledWrapper", "traits": { - "smithy.api#documentation": "

Indicates whether or not your account should have production access in the current\n Amazon Web Services Region.

\n

If the value is false, then your account is in the\n sandbox. When your account is in the sandbox, you can only send\n email to verified identities. Additionally, the maximum number of emails you can send in\n a 24-hour period (your sending quota) is 200, and the maximum number of emails you can\n send per second (your maximum sending rate) is 1.

\n

If the value is true, then your account has production access. When your\n account has production access, you can send email to any address. The sending quota and\n maximum sending rate for your account vary based on your specific use case.

" + "smithy.api#documentation": "

Indicates whether or not your account should have production access in the current\n Amazon Web Services Region.

\n

If the value is false, then your account is in the\n sandbox. When your account is in the sandbox, you can only send\n email to verified identities.\n

\n

If the value is true, then your account has production access. When your\n account has production access, you can send email to any address. The sending quota and\n maximum sending rate for your account vary based on your specific use case.

" } } }, @@ -9350,7 +9413,7 @@ "Data": { "target": "com.amazonaws.sesv2#RawMessageData", "traits": { - "smithy.api#documentation": "

The raw email message. The message has to meet the following criteria:

\n
    \n
  • \n

    The message has to contain a header and a body, separated by one blank\n line.

    \n
  • \n
  • \n

    All of the required header fields must be present in the message.

    \n
  • \n
  • \n

    Each part of a multipart MIME message must be formatted properly.

    \n
  • \n
  • \n

    Attachments must be in a file format that the Amazon SES supports.

    \n
  • \n
  • \n

    The raw data of the message needs to base64-encoded if you are accessing\n Amazon SES directly through the HTTPS interface. If you are accessing Amazon SES using an Amazon Web Services\n SDK, the SDK takes care of the base 64-encoding for you.

    \n
  • \n
  • \n

    If any of the MIME parts in your message contain content that is outside of\n the 7-bit ASCII character range, you should encode that content to ensure that\n recipients' email clients render the message properly.

    \n
  • \n
  • \n

    The length of any single line of text in the message can't exceed 1,000\n characters. This restriction is defined in RFC 5321.

    \n
  • \n
", + "smithy.api#documentation": "

The raw email message. The message has to meet the following criteria:

\n
    \n
  • \n

    The message has to contain a header and a body, separated by one blank\n line.

    \n
  • \n
  • \n

    All of the required header fields must be present in the message.

    \n
  • \n
  • \n

    Each part of a multipart MIME message must be formatted properly.

    \n
  • \n
  • \n

    Attachments must be in a file format that the Amazon SES supports.

    \n
  • \n
  • \n

    The raw data of the message needs to base64-encoded if you are accessing Amazon SES\n directly through the HTTPS interface. If you are accessing Amazon SES using an Amazon Web Services\n SDK, the SDK takes care of the base 64-encoding for you.

    \n
  • \n
  • \n

    If any of the MIME parts in your message contain content that is outside of\n the 7-bit ASCII character range, you should encode that content to ensure that\n recipients' email clients render the message properly.

    \n
  • \n
  • \n

    The length of any single line of text in the message can't exceed 1,000\n characters. This restriction is defined in RFC 5321.

    \n
  • \n
", "smithy.api#required": {} } } @@ -9719,7 +9782,7 @@ "FromEmailAddress": { "target": "com.amazonaws.sesv2#EmailAddress", "traits": { - "smithy.api#documentation": "

The email address to use as the \"From\" address for the email. The\n address that you specify has to be verified.

" + "smithy.api#documentation": "

The email address to use as the \"From\" address for the email. The address that you\n specify has to be verified.

" } }, "FromEmailAddressIdentityArn": { @@ -9927,7 +9990,7 @@ "FromEmailAddress": { "target": "com.amazonaws.sesv2#EmailAddress", "traits": { - "smithy.api#documentation": "

The email address to use as the \"From\" address for the email. The\n address that you specify has to be verified.\n

" + "smithy.api#documentation": "

The email address to use as the \"From\" address for the email. The address that you\n specify has to be verified.\n

" } }, "FromEmailAddressIdentityArn": { @@ -9963,7 +10026,7 @@ "Content": { "target": "com.amazonaws.sesv2#EmailContent", "traits": { - "smithy.api#documentation": "

An object that contains the body of the message. You can send either a Simple message\n Raw message or a template Message.

", + "smithy.api#documentation": "

An object that contains the body of the message. You can send either a Simple message,\n Raw message, or a Templated message.

", "smithy.api#required": {} } }, @@ -9997,7 +10060,7 @@ "MessageId": { "target": "com.amazonaws.sesv2#OutboundMessageId", "traits": { - "smithy.api#documentation": "

A unique identifier for the message that is generated when the message is\n accepted.

\n \n

It's possible for Amazon SES to accept a message without sending it. This can happen\n when the message that you're trying to send has an attachment contains a virus, or\n when you send a templated email that contains invalid personalization content, for\n example.

\n
" + "smithy.api#documentation": "

A unique identifier for the message that is generated when the message is\n accepted.

\n \n

It's possible for Amazon SES to accept a message without sending it. For example, this\n can happen when the message that you're trying to send has an attachment that\n contains a virus, or when you send a templated email that contains invalid\n personalization content.

\n
" } } }, @@ -11632,6 +11695,12 @@ "traits": { "smithy.api#documentation": "

An object that defines the values to use for message variables in the template. This\n object is a set of key-value pairs. Each key defines a message variable in the template.\n The corresponding value defines the value to use for that variable.

" } + }, + "Headers": { + "target": "com.amazonaws.sesv2#MessageHeaderList", + "traits": { + "smithy.api#documentation": "

The list of message headers that will be added to the email message.

" + } } }, "traits": { @@ -12021,7 +12090,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a contact's preferences for a list. It is not necessary to specify all\n existing topic preferences in the TopicPreferences object, just the ones that need\n updating.

", + "smithy.api#documentation": "

Updates a contact's preferences for a list.

\n \n

You must specify all existing topic preferences in the\n TopicPreferences object, not just the ones that need updating;\n otherwise, all your existing preferences will be removed.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/v2/email/contact-lists/{ContactListName}/contacts/{EmailAddress}", @@ -12390,13 +12459,13 @@ "DashboardAttributes": { "target": "com.amazonaws.sesv2#DashboardAttributes", "traits": { - "smithy.api#documentation": "

Specifies additional settings for your VDM configuration as applicable to the Dashboard.

" + "smithy.api#documentation": "

Specifies additional settings for your VDM configuration as applicable to the\n Dashboard.

" } }, "GuardianAttributes": { "target": "com.amazonaws.sesv2#GuardianAttributes", "traits": { - "smithy.api#documentation": "

Specifies additional settings for your VDM configuration as applicable to the Guardian.

" + "smithy.api#documentation": "

Specifies additional settings for your VDM configuration as applicable to the\n Guardian.

" } } }, diff --git a/codegen/sdk/aws-models/wafv2.json b/codegen/sdk/aws-models/wafv2.json index 730e2ab2f99..af2b2435a31 100644 --- a/codegen/sdk/aws-models/wafv2.json +++ b/codegen/sdk/aws-models/wafv2.json @@ -5343,6 +5343,12 @@ "com.amazonaws.wafv2#ErrorReason": { "type": "string" }, + "com.amazonaws.wafv2#EvaluationWindowSec": { + "type": "long", + "traits": { + "smithy.api#default": 0 + } + }, "com.amazonaws.wafv2#ExcludedRule": { "type": "structure", "members": { @@ -9682,6 +9688,13 @@ "smithy.api#required": {} } }, + "EvaluationWindowSec": { + "target": "com.amazonaws.wafv2#EvaluationWindowSec", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The amount of time, in seconds, that WAF\n should include in its request counts, looking back from the current time. For example, \n for a setting of 120, when WAF checks the rate, it counts the requests for the 2 minutes immediately preceding \n the current time. Valid settings are 60, 120, 300, and 600.

\n

This setting doesn't determine how often WAF checks the rate, but how far back it looks each \n time it checks. WAF checks the rate about every 10 seconds.

\n

Default: 300 (5 minutes)

" + } + }, "AggregateKeyType": { "target": "com.amazonaws.wafv2#RateBasedStatementAggregateKeyType", "traits": { diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/AwsQuery.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/AwsQuery.kt index 5aed86cb8c2..027e9050f30 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/AwsQuery.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/AwsQuery.kt @@ -12,11 +12,10 @@ import software.amazon.smithy.kotlin.codegen.aws.protocols.core.AwsHttpBindingPr import software.amazon.smithy.kotlin.codegen.aws.protocols.core.QueryHttpBindingProtocolGenerator import software.amazon.smithy.kotlin.codegen.aws.protocols.formurl.QuerySerdeFormUrlDescriptorGenerator import software.amazon.smithy.kotlin.codegen.core.* +import software.amazon.smithy.kotlin.codegen.lang.KotlinTypes import software.amazon.smithy.kotlin.codegen.model.* -import software.amazon.smithy.kotlin.codegen.model.traits.OperationOutput import software.amazon.smithy.kotlin.codegen.rendering.protocol.* import software.amazon.smithy.kotlin.codegen.rendering.serde.* -import software.amazon.smithy.kotlin.codegen.utils.dq import software.amazon.smithy.model.shapes.* import software.amazon.smithy.model.traits.* @@ -68,24 +67,6 @@ private class AwsQuerySerdeFormUrlDescriptorGenerator( member.hasTrait() } -private class AwsQuerySerdeXmlDescriptorGenerator( - ctx: RenderingContext, - memberShapes: List? = null, -) : XmlSerdeDescriptorGenerator(ctx, memberShapes) { - - override fun getObjectDescriptorTraits(): List { - val traits = super.getObjectDescriptorTraits().toMutableList() - - if (objectShape.hasTrait()) { - traits.removeIf { it.symbol == RuntimeTypes.Serde.SerdeXml.XmlSerialName } - val serialName = objectShape.changeNameSuffix("Response" to "Result") - traits.add(RuntimeTypes.Serde.SerdeXml.XmlSerialName, serialName.dq()) - } - - return traits - } -} - private class AwsQuerySerializerGenerator( private val protocolGenerator: AwsQuery, ) : AbstractQueryFormUrlSerializerGenerator(protocolGenerator, protocolGenerator.defaultTimestampFormat) { @@ -98,50 +79,76 @@ private class AwsQuerySerializerGenerator( } private class AwsQueryXmlParserGenerator( - private val protocolGenerator: AwsQuery, -) : XmlParserGenerator(protocolGenerator, protocolGenerator.defaultTimestampFormat) { - - override fun descriptorGenerator( - ctx: ProtocolGenerator.GenerationContext, - shape: Shape, - members: List, - writer: KotlinWriter, - ): XmlSerdeDescriptorGenerator = AwsQuerySerdeXmlDescriptorGenerator(ctx.toRenderingContext(protocolGenerator, shape, writer), members) - - override fun renderDeserializeOperationBody( - ctx: ProtocolGenerator.GenerationContext, - op: OperationShape, - documentMembers: List, - writer: KotlinWriter, - ) { - writer.write("val deserializer = #T(payload)", RuntimeTypes.Serde.SerdeXml.XmlDeserializer) - unwrapOperationResponseBody(op.id.name, writer) - val shape = ctx.model.expectShape(op.output.get()) - renderDeserializerBody(ctx, shape, documentMembers, writer) - } + protocolGenerator: AwsQuery, +) : XmlParserGenerator(protocolGenerator.defaultTimestampFormat) { /** * Unwraps the response body as specified by * https://awslabs.github.io/smithy/1.0/spec/aws/aws-query-protocol.html#response-serialization so that the * deserializer is in the correct state. + * + * ``` + * + * + * <-- SAME AS REST XML --> + * + * + * ``` */ - private fun unwrapOperationResponseBody( - operationName: String, + override fun unwrapOperationBody( + ctx: ProtocolGenerator.GenerationContext, + serdeCtx: SerdeCtx, + op: OperationShape, writer: KotlinWriter, - ) { - writer.write("// begin unwrap response wrapper") - .write("val resultDescriptor = #T(#T.Struct, #T(#S))", RuntimeTypes.Serde.SdkFieldDescriptor, RuntimeTypes.Serde.SerialKind, RuntimeTypes.Serde.SerdeXml.XmlSerialName, "${operationName}Result") - .withBlock("val wrapperDescriptor = #T.build {", "}", RuntimeTypes.Serde.SdkObjectDescriptor) { - write("trait(#T(#S))", RuntimeTypes.Serde.SerdeXml.XmlSerialName, "${operationName}Response") - write("#T(resultDescriptor)", RuntimeTypes.Serde.field) + ): SerdeCtx { + val operationName = op.id.getName(ctx.service) + + val unwrapAwsQueryOperation = buildSymbol { + name = "unwrapAwsQueryResponse" + namespace = ctx.settings.pkg.serde + definitionFile = "AwsQueryUtil.kt" + renderBy = { writer -> + + writer.withBlock( + "internal fun $name(root: #1T, operationName: #2T): #1T {", + "}", + RuntimeTypes.Serde.SerdeXml.XmlTagReader, + KotlinTypes.String, + ) { + write("val responseWrapperName = \"\${operationName}Response\"") + write("val resultWrapperName = \"\${operationName}Result\"") + withBlock( + "if (root.tagName != responseWrapperName) {", + "}", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid root, expected \$responseWrapperName; found `\${root.tag}`") + } + + write("val resultTag = ${serdeCtx.tagReader}.nextTag()") + withBlock( + "if (resultTag == null || resultTag.tagName != resultWrapperName) {", + "}", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid result, expected \$resultWrapperName; found `\${resultTag?.tag}`") + } + + write("return resultTag") + } } - .write("") - // abandon the iterator, this only occurs at the top level operational output - .write("val wrapper = deserializer.#T(wrapperDescriptor)", RuntimeTypes.Serde.deserializeStruct) - .withBlock("if (wrapper.findNextFieldIndex() != resultDescriptor.index) {", "}") { - write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "failed to unwrap $operationName response") - } - .write("// end unwrap response wrapper") - .write("") + } + + writer.write("val unwrapped = #T(#L, #S)", unwrapAwsQueryOperation, serdeCtx.tagReader, operationName) + + return SerdeCtx("unwrapped") + } + + override fun unwrapOperationError( + ctx: ProtocolGenerator.GenerationContext, + serdeCtx: SerdeCtx, + errorShape: StructureShape, + writer: KotlinWriter, + ): SerdeCtx { + writer.write("val errReader = #T(${serdeCtx.tagReader})", RestXmlErrors.wrappedErrorResponseDeserializer(ctx)) + return SerdeCtx("errReader") } } diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/Ec2Query.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/Ec2Query.kt index 3db60123682..65751cefad6 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/Ec2Query.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/Ec2Query.kt @@ -6,20 +6,19 @@ package software.amazon.smithy.kotlin.codegen.aws.protocols import software.amazon.smithy.aws.traits.protocols.Ec2QueryNameTrait import software.amazon.smithy.aws.traits.protocols.Ec2QueryTrait +import software.amazon.smithy.codegen.core.Symbol import software.amazon.smithy.kotlin.codegen.aws.protocols.core.AbstractQueryFormUrlSerializerGenerator import software.amazon.smithy.kotlin.codegen.aws.protocols.core.QueryHttpBindingProtocolGenerator import software.amazon.smithy.kotlin.codegen.aws.protocols.formurl.QuerySerdeFormUrlDescriptorGenerator import software.amazon.smithy.kotlin.codegen.core.KotlinWriter import software.amazon.smithy.kotlin.codegen.core.RenderingContext import software.amazon.smithy.kotlin.codegen.core.RuntimeTypes -import software.amazon.smithy.kotlin.codegen.model.changeNameSuffix +import software.amazon.smithy.kotlin.codegen.core.withBlock +import software.amazon.smithy.kotlin.codegen.model.buildSymbol import software.amazon.smithy.kotlin.codegen.model.getTrait -import software.amazon.smithy.kotlin.codegen.model.hasTrait -import software.amazon.smithy.kotlin.codegen.model.traits.OperationOutput import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolGenerator import software.amazon.smithy.kotlin.codegen.rendering.protocol.toRenderingContext import software.amazon.smithy.kotlin.codegen.rendering.serde.* -import software.amazon.smithy.kotlin.codegen.utils.dq import software.amazon.smithy.model.shapes.* import software.amazon.smithy.model.traits.XmlNameTrait @@ -73,24 +72,6 @@ private class Ec2QuerySerdeFormUrlDescriptorGenerator( targetShape.type == ShapeType.LIST } -private class Ec2QuerySerdeXmlDescriptorGenerator( - ctx: RenderingContext, - memberShapes: List? = null, -) : XmlSerdeDescriptorGenerator(ctx, memberShapes) { - - override fun getObjectDescriptorTraits(): List { - val traits = super.getObjectDescriptorTraits().toMutableList() - - if (objectShape.hasTrait()) { - traits.removeIf { it.symbol == RuntimeTypes.Serde.SerdeXml.XmlSerialName } - val serialName = objectShape.changeNameSuffix("Response" to "Result") - traits.add(RuntimeTypes.Serde.SerdeXml.XmlSerialName, serialName.dq()) - } - - return traits - } -} - private class Ec2QuerySerializerGenerator( private val protocolGenerator: Ec2Query, ) : AbstractQueryFormUrlSerializerGenerator(protocolGenerator, protocolGenerator.defaultTimestampFormat) { @@ -104,13 +85,73 @@ private class Ec2QuerySerializerGenerator( } private class Ec2QueryParserGenerator( - private val protocolGenerator: Ec2Query, -) : XmlParserGenerator(protocolGenerator, protocolGenerator.defaultTimestampFormat) { - - override fun descriptorGenerator( + protocolGenerator: Ec2Query, +) : XmlParserGenerator(protocolGenerator.defaultTimestampFormat) { + override fun unwrapOperationError( ctx: ProtocolGenerator.GenerationContext, - shape: Shape, - members: List, + serdeCtx: SerdeCtx, + errorShape: StructureShape, writer: KotlinWriter, - ): XmlSerdeDescriptorGenerator = Ec2QuerySerdeXmlDescriptorGenerator(ctx.toRenderingContext(protocolGenerator, shape, writer), members) + ): SerdeCtx { + val unwrapFn = unwrapErrorResponse(ctx) + writer.write("val errReader = #T(${serdeCtx.tagReader})", unwrapFn) + return SerdeCtx("errReader") + } + + /** + * Error deserializer for a wrapped error response + * + * ``` + * + * + * + * <-- DATA -->> + * + * + * + * ``` + * + * See https://smithy.io/2.0/aws/protocols/aws-ec2-query-protocol.html#operation-error-serialization + */ + private fun unwrapErrorResponse(ctx: ProtocolGenerator.GenerationContext): Symbol = buildSymbol { + name = "unwrapXmlErrorResponse" + namespace = ctx.settings.pkg.serde + definitionFile = "XmlErrorUtils.kt" + renderBy = { writer -> + writer.dokka("Handle [wrapped](https://smithy.io/2.0/aws/protocols/aws-ec2-query-protocol.html#operation-error-serialization) error responses") + writer.withBlock( + "internal fun $name(root: #1T): #1T {", + "}", + RuntimeTypes.Serde.SerdeXml.XmlTagReader, + ) { + withBlock( + "if (root.tagName != #S) {", + "}", + "Response", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid root, expected ; found `\${root.tag}`") + } + + write("val errorsTag = root.nextTag()") + withBlock( + "if (errorsTag == null || errorsTag.tagName != #S) {", + "}", + "Errors", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid error, expected ; found `\${errorsTag?.tag}`") + } + + write("val errTag = errorsTag.nextTag()") + withBlock( + "if (errTag == null || errTag.tagName != #S) {", + "}", + "Error", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid error, expected ; found `\${errTag?.tag}`") + } + + write("return errTag") + } + } + } } diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/RestXml.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/RestXml.kt index 158fc9c0262..c7c834c3175 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/RestXml.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/aws/protocols/RestXml.kt @@ -52,7 +52,7 @@ open class RestXml : AwsHttpBindingProtocolGenerator() { } override fun structuredDataParser(ctx: ProtocolGenerator.GenerationContext): StructuredDataParserGenerator = - RestXmlParserGenerator(this, defaultTimestampFormat) + RestXmlParserGenerator(this) override fun structuredDataSerializer(ctx: ProtocolGenerator.GenerationContext): StructuredDataSerializerGenerator = RestXmlSerializerGenerator(this, defaultTimestampFormat) @@ -68,16 +68,8 @@ open class RestXml : AwsHttpBindingProtocolGenerator() { } class RestXmlParserGenerator( - private val protocolGenerator: RestXml, - defaultTimestampFormat: TimestampFormatTrait.Format, -) : XmlParserGenerator(protocolGenerator, defaultTimestampFormat) { - - override fun descriptorGenerator( - ctx: ProtocolGenerator.GenerationContext, - shape: Shape, - members: List, - writer: KotlinWriter, - ): XmlSerdeDescriptorGenerator = RestXmlSerdeDescriptorGenerator(ctx.toRenderingContext(protocolGenerator, shape, writer), members) + protocolGenerator: RestXml, +) : XmlParserGenerator(protocolGenerator.defaultTimestampFormat) { override fun payloadDeserializer( ctx: ProtocolGenerator.GenerationContext, @@ -112,14 +104,113 @@ class RestXmlParserGenerator( addNestedDocumentDeserializers(ctx, targetShape, writer) writer.dokka("Payload deserializer for ${memberSymbol.name} with a different XML name trait (${xmlNameTrait.value})") writer.withBlock("internal fun $name(payload: ByteArray): #T {", "}", memberSymbol) { - write("val deserializer = #T(payload)", RuntimeTypes.Serde.SerdeXml.XmlDeserializer) + writer.write("val root = #T(payload)", RuntimeTypes.Serde.SerdeXml.xmlRootTagReader) + val serdeCtx = SerdeCtx("root") write("val builder = #T.Builder()", memberSymbol) - renderDeserializerBody(ctx, copyWithMemberTraits, targetShape.members().toList(), writer) + renderDeserializerBody(ctx, serdeCtx, copyWithMemberTraits, targetShape.members().toList(), writer) write("return builder.build()") } } } } + + override fun unwrapOperationError( + ctx: ProtocolGenerator.GenerationContext, + serdeCtx: SerdeCtx, + errorShape: StructureShape, + writer: KotlinWriter, + ): SerdeCtx { + val unwrapFn = when (ctx.service.getTrait()?.isNoErrorWrapping == true) { + true -> RestXmlErrors.unwrappedErrorResponseDeserializer(ctx) + false -> RestXmlErrors.wrappedErrorResponseDeserializer(ctx) + } + writer.write("val errReader = #T(${serdeCtx.tagReader})", unwrapFn) + return SerdeCtx("errReader") + } +} + +object RestXmlErrors { + + /** + * Error deserializer for a wrapped error response + * + * ``` + * + * + * <-- DATA -->> + * + * + * ``` + * + * See https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#error-response-serialization + */ + fun wrappedErrorResponseDeserializer(ctx: ProtocolGenerator.GenerationContext): Symbol = buildSymbol { + name = "unwrapWrappedXmlErrorResponse" + namespace = ctx.settings.pkg.serde + definitionFile = "XmlErrorUtils.kt" + renderBy = { writer -> + writer.dokka("Handle [wrapped](https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#error-response-serialization) error responses") + writer.withBlock( + "internal fun $name(root: #1T): #1T {", + "}", + RuntimeTypes.Serde.SerdeXml.XmlTagReader, + ) { + withBlock( + "if (root.tagName != #S) {", + "}", + "ErrorResponse", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid root, expected ; found `\${root.tag}`") + } + + write("val errTag = root.nextTag()") + withBlock( + "if (errTag == null || errTag.tagName != #S) {", + "}", + "Error", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid error, expected ; found `\${errTag?.tag}`") + } + + write("return errTag") + } + } + } + + /** + * Error deserializer for an unwrapped error response + * + * ``` + * + * <-- DATA -->> + * + * ``` + * + * See https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#error-response-serialization + */ + fun unwrappedErrorResponseDeserializer(ctx: ProtocolGenerator.GenerationContext): Symbol = buildSymbol { + name = "unwrapXmlErrorResponse" + namespace = ctx.settings.pkg.serde + definitionFile = "XmlErrorUtils.kt" + renderBy = { writer -> + writer.dokka("Handle [unwrapped](https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#error-response-serialization) error responses (restXml.noErrorWrapping == true)") + writer.withBlock( + "internal fun $name(root: #1T): #1T {", + "}", + RuntimeTypes.Serde.SerdeXml.XmlTagReader, + ) { + withBlock( + "if (root.tagName != #S) {", + "}", + "Error", + ) { + write("throw #T(#S)", RuntimeTypes.Serde.DeserializationException, "invalid error, expected ; found `\${root.tag}`") + } + + write("return root") + } + } + } } class RestXmlSerializerGenerator( @@ -145,6 +236,7 @@ class RestXmlSerializerGenerator( else -> super.payloadSerializer(ctx, shape, members) } + // FIXME private fun explicitBoundStructureSerializer( ctx: ProtocolGenerator.GenerationContext, boundMember: MemberShape, diff --git a/gradle.properties b/gradle.properties index 5d5c0e65cc0..203f09b72e1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ kotlin.native.ignoreDisabledTargets=true org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=2G # sdk -sdkVersion=1.0.64-SNAPSHOT +sdkVersion=1.0.72-SNAPSHOT # dokka config (values specified at build-time as needed) smithyKotlinDocBaseUrl=https://sdk.amazonaws.com/kotlin/api/smithy-kotlin/api/$smithyKotlinRuntimeVersion/ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 063cd76d368..f19bf376040 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,8 +9,8 @@ coroutines-version = "1.7.3" atomicfu-version = "0.23.1" # smithy-kotlin codegen and runtime are versioned separately -smithy-kotlin-runtime-version = "1.0.15" -smithy-kotlin-codegen-version = "0.30.16" +smithy-kotlin-runtime-version = "1.0.16" +smithy-kotlin-codegen-version = "0.30.17" # codegen smithy-version = "1.42.0" diff --git a/services/build.gradle.kts b/services/build.gradle.kts index b9a47ac23c5..f1fb421cd62 100644 --- a/services/build.gradle.kts +++ b/services/build.gradle.kts @@ -88,6 +88,26 @@ subprojects { description = "Run e2e service tests" group = "verification" + if (project.name == "s3") { + dependencies { + val services = project.parent?.subprojects + + if (services?.any { it.name == "s3control" } == true) { + implementation(project(":services:s3control")) + } else { + implementation("aws.sdk.kotlin:s3control:+") + } + + if (services?.any { it.name == "sts" } == true) { + implementation(project(":services:sts")) + } else { + implementation("aws.sdk.kotlin:sts:+") + } + + implementation(libs.smithy.kotlin.aws.signing.crt) + } + } + // Run the tests with the classpath containing the compile dependencies (including 'main'), // runtime dependencies, and the outputs of this compilation: classpath = compileDependencyFiles + runtimeDependencyFiles + output.allOutputs diff --git a/services/route53/common/src/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshalling.kt b/services/route53/common/src/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshalling.kt index 5b5af0d4748..e61e2a62021 100644 --- a/services/route53/common/src/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshalling.kt +++ b/services/route53/common/src/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshalling.kt @@ -6,50 +6,41 @@ package aws.sdk.kotlin.services.route53.internal import aws.sdk.kotlin.services.route53.model.InvalidChangeBatch import aws.smithy.kotlin.runtime.awsprotocol.ErrorDetails -import aws.smithy.kotlin.runtime.serde.* import aws.smithy.kotlin.runtime.serde.xml.* internal fun parseRestXmlInvalidChangeBatchResponse(payload: ByteArray): InvalidChangeBatchErrorResponse? = deserializeInvalidChangeBatchError(InvalidChangeBatch.Builder(), payload) internal fun deserializeInvalidChangeBatchError(builder: InvalidChangeBatch.Builder, payload: ByteArray): InvalidChangeBatchErrorResponse? { - val deserializer = XmlDeserializer(payload) - val MESSAGE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("message"), XmlAliasName("Message")) - val MESSAGES_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, XmlSerialName("messages"), XmlAliasName("Messages"), XmlCollectionName("Message")) - val REQUESTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("RequestId")) - val OBJ_DESCRIPTOR = SdkObjectDescriptor.build { - trait(XmlSerialName("InvalidChangeBatch")) - trait(XmlNamespace("https://route53.amazonaws.com/doc/2013-04-01/")) - field(MESSAGE_DESCRIPTOR) - field(MESSAGES_DESCRIPTOR) - field(REQUESTID_DESCRIPTOR) - } + val root = xmlTagReader(payload) var requestId: String? = null - return try { - deserializer.deserializeStruct(OBJ_DESCRIPTOR) { - loop@while (true) { - when (findNextFieldIndex()) { - MESSAGE_DESCRIPTOR.index -> builder.message = deserializeString() - REQUESTID_DESCRIPTOR.index -> requestId = deserializeString() - MESSAGES_DESCRIPTOR.index -> - builder.messages = deserializer.deserializeList(MESSAGES_DESCRIPTOR) { - val col0 = mutableListOf() - while (hasNextElement()) { - val el0 = if (nextHasValue()) { deserializeString() } else { deserializeNull(); continue } - col0.add(el0) - } - col0 - } - null -> break@loop - else -> skipValue() - } + loop@while (true) { + val curr = root.nextTag() ?: break@loop + when (curr.tagName) { + "Message", "message" -> builder.message = curr.data() + "Messages", "messages" -> builder.messages = deserializeMessages(curr) + "RequestId" -> requestId = curr.data() + } + curr.drop() + } + + return InvalidChangeBatchErrorResponse(ErrorDetails("InvalidChangeBatch", builder.message, requestId), builder.build()) +} + +private fun deserializeMessages(root: XmlTagReader): List { + val result = mutableListOf() + loop@while (true) { + val curr = root.nextTag() ?: break@loop + when (curr.tagName) { + "Message" -> { + val el = curr.tryData().getOrNull() ?: continue@loop + result.add(el) } } - InvalidChangeBatchErrorResponse(ErrorDetails("InvalidChangeBatch", builder.message, requestId), builder.build()) - } catch (e: DeserializationException) { - null // return so an appropriate exception type can be instantiated above here. } + + return result } internal data class InvalidChangeBatchErrorResponse( diff --git a/services/route53/common/test/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshallingTest.kt b/services/route53/common/test/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshallingTest.kt index b6bd664a3d3..e8a3b2e5b3d 100644 --- a/services/route53/common/test/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshallingTest.kt +++ b/services/route53/common/test/aws/sdk/kotlin/services/route53/internal/ChangeResourceRecordSetsUnmarshallingTest.kt @@ -5,7 +5,6 @@ package aws.sdk.kotlin.services.route53.internal import aws.sdk.kotlin.services.route53.model.InvalidChangeBatch -import aws.sdk.kotlin.services.route53.model.Route53Exception import aws.sdk.kotlin.services.route53.serde.ChangeResourceRecordSetsOperationDeserializer import aws.smithy.kotlin.runtime.http.Headers import aws.smithy.kotlin.runtime.http.HttpBody @@ -32,7 +31,7 @@ class ChangeResourceRecordSetsUnmarshallingTest { """.trimIndent() - val response: HttpResponse = HttpResponse( + val response = HttpResponse( HttpStatusCode.BadRequest, Headers.Empty, HttpBody.fromBytes(bodyText.encodeToByteArray()), @@ -107,34 +106,4 @@ class ChangeResourceRecordSetsUnmarshallingTest { assertEquals(listOf("InvalidChangeBatch message 1", "InvalidChangeBatch message 2"), exception.messages) assertEquals("InvalidChangeBatch message 3", exception.message) } - - @Test - fun changeResourceRecordSetsError() { - val bodyText = """ - - - - Sender - MalformedXML - ChangeResourceRecordSets error message - - b25f48e8-84fd-11e6-80d9-574e0c4664cb - - """.trimIndent() - - val response: HttpResponse = HttpResponse( - HttpStatusCode.BadRequest, - Headers.Empty, - HttpBody.fromBytes(bodyText.encodeToByteArray()), - ) - - val call = HttpCall(HttpRequestBuilder().build(), response) - - val exception = assertFailsWith { - runBlocking { - ChangeResourceRecordSetsOperationDeserializer().deserialize(ExecutionContext(), call) - } - } - assertEquals("ChangeResourceRecordSets error message", exception.message) - } } diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/S3Attributes.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/S3Attributes.kt new file mode 100644 index 00000000000..13ce1311198 --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/S3Attributes.kt @@ -0,0 +1,26 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3 + +import aws.sdk.kotlin.runtime.InternalSdkApi +import aws.smithy.kotlin.runtime.client.SdkClient +import aws.smithy.kotlin.runtime.collections.AttributeKey + +/** + * Execution context attributes specific to S3 + */ +@InternalSdkApi +public object S3Attributes { + /** + * The name of the bucket requests are being made to + */ + public val Bucket: AttributeKey = AttributeKey("aws.sdk.kotlin#S3Bucket") + + /** + * The S3 client being used to make requests to directory buckets. This client will be used to call s3:CreateSession + * to obtain directory bucket credentials. + */ + public val ExpressClient: AttributeKey = AttributeKey("aws.sdk.kotlin#S3ExpressClient") +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProvider.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProvider.kt new file mode 100644 index 00000000000..d8936f28a3b --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProvider.kt @@ -0,0 +1,89 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.sdk.kotlin.services.s3.* +import aws.sdk.kotlin.services.s3.S3Attributes +import aws.sdk.kotlin.services.s3.S3Client +import aws.smithy.kotlin.runtime.ExperimentalApi +import aws.smithy.kotlin.runtime.auth.awscredentials.CloseableCredentialsProvider +import aws.smithy.kotlin.runtime.auth.awscredentials.Credentials +import aws.smithy.kotlin.runtime.collections.Attributes +import aws.smithy.kotlin.runtime.collections.get +import aws.smithy.kotlin.runtime.io.SdkManagedBase +import aws.smithy.kotlin.runtime.telemetry.logging.getLogger +import aws.smithy.kotlin.runtime.time.Clock +import aws.smithy.kotlin.runtime.time.until +import kotlinx.coroutines.* +import kotlin.coroutines.CoroutineContext +import kotlin.time.Duration +import kotlin.time.Duration.Companion.minutes +import kotlin.time.TimeSource + +/** + * The default implementation of a credentials provider for S3 Express One Zone. Performs best-effort asynchronous refresh + * if the cached credentials are expiring within a [refreshBuffer] during a call to [resolve]. + * Otherwise, performs synchronous refresh. + * + * @param timeSource the time source to use. defaults to [TimeSource.Monotonic] + * @param clock the clock to use. defaults to [Clock.System]. note: the clock is only used to get an initial [Duration] + * until credentials expiration, [timeSource] is used as the source of truth for credentials expiration. + * @param credentialsCache an [S3ExpressCredentialsCache] to be used for caching session credentials, defaults to + * [S3ExpressCredentialsCache]. + * @param refreshBuffer an optional [Duration] representing the duration before expiration that [Credentials] + * are considered refreshable, defaults to 1 minute. + */ +internal class DefaultS3ExpressCredentialsProvider( + private val timeSource: TimeSource.WithComparableMarks = TimeSource.Monotonic, + private val clock: Clock = Clock.System, + private val credentialsCache: S3ExpressCredentialsCache = S3ExpressCredentialsCache(), + private val refreshBuffer: Duration = 1.minutes, +) : CloseableCredentialsProvider, SdkManagedBase(), CoroutineScope { + override val coroutineContext: CoroutineContext = Job() + CoroutineName("DefaultS3ExpressCredentialsProvider") + + override suspend fun resolve(attributes: Attributes): Credentials { + val client = attributes[S3Attributes.ExpressClient] as S3Client + + val key = S3ExpressCredentialsCacheKey(attributes[S3Attributes.Bucket], client.config.credentialsProvider.resolve(attributes)) + + return credentialsCache.get(key) + ?.takeIf { !it.expiringCredentials.isExpired } + ?.also { + if (it.expiringCredentials.isExpiringWithin(refreshBuffer)) { + client.logger.trace { "Credentials for ${key.bucket} are expiring in ${it.expiringCredentials.expiresAt} and are within their refresh window, performing asynchronous refresh..." } + launch(coroutineContext) { + try { + it.sfg.singleFlight { createSessionCredentials(key, client) } + } catch (e: Exception) { + client.logger.warn(e) { "Asynchronous refresh for ${key.bucket} failed." } + } + } + } + } + ?.expiringCredentials + ?.value + ?: createSessionCredentials(key, client).value + } + + override fun close() { + coroutineContext.cancel(null) + } + + /** + * Create a new set of session credentials by calling s3:CreateSession and then store them in the cache. + */ + internal suspend fun createSessionCredentials(key: S3ExpressCredentialsCacheKey, client: S3Client): ExpiringValue = + client.createSession { bucket = key.bucket }.credentials!!.let { + ExpiringValue( + Credentials(it.accessKeyId, it.secretAccessKey, it.sessionToken, it.expiration), + expiresAt = timeSource.markNow() + clock.now().until(it.expiration), + ) + }.also { + credentialsCache.put(key, S3ExpressCredentialsCacheValue(it)) + } + + @OptIn(ExperimentalApi::class) + internal val S3Client.logger get() = config.telemetryProvider.loggerProvider.getLogger() +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCrc32ChecksumInterceptor.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCrc32ChecksumInterceptor.kt new file mode 100644 index 00000000000..bad493a2fbd --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCrc32ChecksumInterceptor.kt @@ -0,0 +1,49 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.client.ProtocolRequestInterceptorContext +import aws.smithy.kotlin.runtime.collections.AttributeKey +import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor +import aws.smithy.kotlin.runtime.http.operation.HttpOperationContext +import aws.smithy.kotlin.runtime.http.request.HttpRequest +import aws.smithy.kotlin.runtime.http.request.toBuilder +import aws.smithy.kotlin.runtime.telemetry.logging.logger +import kotlin.coroutines.coroutineContext + +internal const val S3_EXPRESS_ENDPOINT_PROPERTY_KEY = "backend" +internal const val S3_EXPRESS_ENDPOINT_PROPERTY_VALUE = "S3Express" +private const val CRC32_ALGORITHM_NAME = "CRC32" + +internal class S3ExpressCrc32ChecksumInterceptor( + val checksumAlgorithmHeaderName: String? = null, +) : HttpInterceptor { + override suspend fun modifyBeforeSigning(context: ProtocolRequestInterceptorContext): HttpRequest { + if (context.executionContext.getOrNull(AttributeKey(S3_EXPRESS_ENDPOINT_PROPERTY_KEY)) != S3_EXPRESS_ENDPOINT_PROPERTY_VALUE) { + return context.protocolRequest + } + + val logger = coroutineContext.logger() + val req = context.protocolRequest.toBuilder() + + if (!context.executionContext.contains(HttpOperationContext.ChecksumAlgorithm)) { + logger.debug { "Checksum is required and not already configured, enabling CRC32 for S3 Express" } + + // Update the execution context so flexible checksums uses CRC32 + context.executionContext[HttpOperationContext.ChecksumAlgorithm] = CRC32_ALGORITHM_NAME + + // Most checksum headers are handled by the flexible checksums feature. But, S3 models an HTTP header binding for the + // checksum algorithm, which also needs to be overwritten and set to CRC32. + // + // The header is already set by the time this interceptor runs, so it needs to be overwritten and can't be set + // through the normal path. + checksumAlgorithmHeaderName?.let { + req.headers[it] = CRC32_ALGORITHM_NAME + } + } + + return req.build() + } +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCache.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCache.kt new file mode 100644 index 00000000000..054322c57a3 --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCache.kt @@ -0,0 +1,50 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.auth.awscredentials.Credentials +import aws.smithy.kotlin.runtime.collections.LruCache +import aws.smithy.kotlin.runtime.util.SingleFlightGroup +import kotlin.time.ComparableTimeMark +import kotlin.time.Duration +import kotlin.time.TimeMark + +private const val DEFAULT_S3_EXPRESS_CACHE_SIZE: Int = 100 + +internal typealias S3ExpressCredentialsCache = LruCache +internal fun S3ExpressCredentialsCache() = S3ExpressCredentialsCache(DEFAULT_S3_EXPRESS_CACHE_SIZE) + +internal data class S3ExpressCredentialsCacheKey( + /** + * The directory bucket requests are being made to + */ + val bucket: String, + /** + * The base credentials used to resolve session credentials + */ + val baseCredentials: Credentials, +) + +internal data class S3ExpressCredentialsCacheValue( + /** + * The expiring session [Credentials] + */ + val expiringCredentials: ExpiringValue, + /** + * A [SingleFlightGroup] used to de-duplicate asynchronous refresh attempts + */ + val sfg: SingleFlightGroup> = SingleFlightGroup(), +) + +/** + * A value with an expiration [TimeMark] + */ +internal data class ExpiringValue(val value: T, val expiresAt: ComparableTimeMark) + +internal val ExpiringValue.isExpired: Boolean get() = expiresAt.hasPassedNow() + +internal fun ExpiringValue.isExpiringWithin(duration: Duration) = (expiresAt - duration).hasPassedNow() + +internal typealias S3ExpressCredentialsCacheEntry = Map.Entry diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressDisableChecksumInterceptor.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressDisableChecksumInterceptor.kt new file mode 100644 index 00000000000..3b10ad3fa69 --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressDisableChecksumInterceptor.kt @@ -0,0 +1,35 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.client.ProtocolRequestInterceptorContext +import aws.smithy.kotlin.runtime.collections.AttributeKey +import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor +import aws.smithy.kotlin.runtime.http.operation.HttpOperationContext +import aws.smithy.kotlin.runtime.http.request.HttpRequest +import aws.smithy.kotlin.runtime.telemetry.logging.logger +import kotlin.coroutines.coroutineContext + +/** + * Disable checksums entirely for s3:UploadPart requests. + */ +internal class S3ExpressDisableChecksumInterceptor : HttpInterceptor { + override suspend fun modifyBeforeSigning(context: ProtocolRequestInterceptorContext): HttpRequest { + if (context.executionContext.getOrNull(AttributeKey(S3_EXPRESS_ENDPOINT_PROPERTY_KEY)) != S3_EXPRESS_ENDPOINT_PROPERTY_VALUE) { + return context.protocolRequest + } + + val logger = coroutineContext.logger() + + val configuredChecksumAlgorithm = context.executionContext.getOrNull(HttpOperationContext.ChecksumAlgorithm) + + configuredChecksumAlgorithm?.let { + logger.warn { "Disabling configured checksum $it for S3 Express UploadPart" } + context.executionContext.remove(HttpOperationContext.ChecksumAlgorithm) + } + + return context.protocolRequest + } +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressHttpSigner.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressHttpSigner.kt new file mode 100644 index 00000000000..288ed5e6f69 --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/S3ExpressHttpSigner.kt @@ -0,0 +1,46 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.auth.awscredentials.Credentials +import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigningAttributes +import aws.smithy.kotlin.runtime.collections.toMutableAttributes +import aws.smithy.kotlin.runtime.http.auth.HttpSigner +import aws.smithy.kotlin.runtime.http.auth.SignHttpRequest +import aws.smithy.kotlin.runtime.http.request.header + +internal const val S3_EXPRESS_SESSION_TOKEN_HEADER = "X-Amz-S3session-Token" +private const val SESSION_TOKEN_HEADER = "X-Amz-Security-Token" + +/** + * An [HttpSigner] used for S3 Express requests. It has identical behavior with the given [httpSigner] except for two differences: + * 1. Adds an `X-Amz-S3Session-Token` header, with a value of the credentials' sessionToken + * 2. Removes the `X-Amz-Security-Token` header, which must not be sent for S3 Express requests. + * @param httpSigner An instance of [HttpSigner] + */ +internal class S3ExpressHttpSigner( + private val httpSigner: HttpSigner, +) : HttpSigner { + /** + * Sign the request, adding `X-Amz-S3Session-Token` header and removing `X-Amz-Security-Token` header. + */ + override suspend fun sign(signingRequest: SignHttpRequest) { + val sessionToken = (signingRequest.identity as? Credentials)?.sessionToken + ?: error("No session token found on identity, required for S3 Express") + + // 1. add the S3 Express Session Token header + signingRequest.httpRequest.header(S3_EXPRESS_SESSION_TOKEN_HEADER, sessionToken) + + // 2. enable omitSessionToken for awsHttpSigner to disable signing session token header + val mutAttrs = signingRequest.signingAttributes.toMutableAttributes() + mutAttrs[AwsSigningAttributes.OmitSessionToken] = true + + // 3. call main signer + httpSigner.sign(signingRequest.copy(signingAttributes = mutAttrs)) + + // 4. remove session token header + signingRequest.httpRequest.headers.remove(SESSION_TOKEN_HEADER) + } +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/express/SigV4S3ExpressAuthScheme.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/SigV4S3ExpressAuthScheme.kt new file mode 100644 index 00000000000..c14502ab2a3 --- /dev/null +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/express/SigV4S3ExpressAuthScheme.kt @@ -0,0 +1,60 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.InternalApi +import aws.smithy.kotlin.runtime.auth.AuthOption +import aws.smithy.kotlin.runtime.auth.AuthSchemeId +import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigner +import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigningAlgorithm +import aws.smithy.kotlin.runtime.http.auth.AuthScheme +import aws.smithy.kotlin.runtime.http.auth.AwsHttpSigner +import aws.smithy.kotlin.runtime.http.auth.HttpSigner +import aws.smithy.kotlin.runtime.http.auth.sigV4 + +public val AuthSchemeId.Companion.AwsSigV4S3Express: AuthSchemeId + get() = AuthSchemeId("aws.auth#sigv4s3express") + +/** + * HTTP auth scheme for S3 Express One Zone authentication + */ +public class SigV4S3ExpressAuthScheme( + httpSigner: HttpSigner, +) : AuthScheme { + public constructor(awsSigner: AwsSigner, serviceName: String? = null) : this( + AwsHttpSigner( + AwsHttpSigner.Config().apply { + signer = awsSigner + service = serviceName + algorithm = AwsSigningAlgorithm.SIGV4 // Note: There is no new signing algorithm for S3 Express + }, + ), + ) + + override val schemeId: AuthSchemeId = AuthSchemeId.AwsSigV4S3Express + override val signer: HttpSigner = S3ExpressHttpSigner(httpSigner) +} + +/** + * Create a new [AuthOption] for the [SigV4S3ExpressAuthScheme] + * @param unsignedPayload set the signing attribute to indicate the signer should use unsigned payload. + * @param serviceName override the service name to sign for + * @param signingRegion override the signing region to sign for + * @param disableDoubleUriEncode disable double URI encoding + * @param normalizeUriPath flag indicating if the URI path should be normalized when forming the canonical request + * @return auth scheme option representing the [SigV4S3ExpressAuthScheme] + */ +@InternalApi +public fun sigV4S3Express( + unsignedPayload: Boolean = false, + serviceName: String? = null, + signingRegion: String? = null, + disableDoubleUriEncode: Boolean? = null, + normalizeUriPath: Boolean? = null, +): AuthOption { + // Note: SigV4-S3Express has the same attributes as SigV4 + val sigV4AuthOption = sigV4(unsignedPayload, serviceName, signingRegion, disableDoubleUriEncode, normalizeUriPath) + return AuthOption(AuthSchemeId.AwsSigV4S3Express, sigV4AuthOption.attributes) +} diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/FinalizeS3Config.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/FinalizeS3Config.kt index cf75cc2bafd..f3e2f2ae43b 100644 --- a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/FinalizeS3Config.kt +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/FinalizeS3Config.kt @@ -20,6 +20,7 @@ internal suspend fun finalizeS3Config( val activeProfile = sharedConfig.get().activeProfile builder.config.useArnRegion = builder.config.useArnRegion ?: S3Setting.UseArnRegion.resolve(provider) ?: activeProfile.useArnRegion builder.config.disableMrap = builder.config.disableMrap ?: S3Setting.DisableMultiRegionAccessPoints.resolve(provider) ?: activeProfile.disableMrap + builder.config.disableS3ExpressSessionAuth = builder.config.disableS3ExpressSessionAuth ?: S3Setting.DisableS3ExpressSessionAuth.resolve(provider) ?: activeProfile.disableS3ExpressSessionAuth } private val AwsProfile.useArnRegion: Boolean? @@ -27,3 +28,6 @@ private val AwsProfile.useArnRegion: Boolean? private val AwsProfile.disableMrap: Boolean? get() = getBooleanOrNull("s3_disable_multiregion_access_points") + +private val AwsProfile.disableS3ExpressSessionAuth: Boolean? + get() = getBooleanOrNull("s3_disable_express_session_auth") diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3ErrorMetadata.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3ErrorMetadata.kt index 68ad4342281..45074546fcd 100644 --- a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3ErrorMetadata.kt +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3ErrorMetadata.kt @@ -5,7 +5,6 @@ package aws.sdk.kotlin.services.s3.internal import aws.sdk.kotlin.runtime.AwsServiceException -import aws.sdk.kotlin.runtime.http.* import aws.sdk.kotlin.services.s3.model.S3ErrorMetadata import aws.sdk.kotlin.services.s3.model.S3Exception import aws.smithy.kotlin.runtime.ServiceErrorMetadata @@ -13,9 +12,8 @@ import aws.smithy.kotlin.runtime.awsprotocol.AwsErrorDetails import aws.smithy.kotlin.runtime.awsprotocol.setAseErrorMetadata import aws.smithy.kotlin.runtime.collections.setIfValueNotNull import aws.smithy.kotlin.runtime.http.response.HttpResponse -import aws.smithy.kotlin.runtime.serde.* -import aws.smithy.kotlin.runtime.serde.xml.XmlDeserializer -import aws.smithy.kotlin.runtime.serde.xml.XmlSerialName +import aws.smithy.kotlin.runtime.serde.xml.data +import aws.smithy.kotlin.runtime.serde.xml.xmlTagReader /** * Default header name identifying secondary request ID @@ -45,35 +43,22 @@ internal fun setS3ErrorMetadata(exception: Any, response: HttpResponse, errorDet } internal fun parseS3ErrorResponse(payload: ByteArray): S3ErrorDetails { - val MESSAGE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("Message")) - val CODE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("Code")) - val REQUESTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("RequestId")) - val HOSTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("HostId")) - val OBJ_DESCRIPTOR = SdkObjectDescriptor.build { - trait(XmlSerialName("Error")) - field(MESSAGE_DESCRIPTOR) - field(CODE_DESCRIPTOR) - field(REQUESTID_DESCRIPTOR) - field(HOSTID_DESCRIPTOR) - } + val root = xmlTagReader(payload) var message: String? = null var code: String? = null var requestId: String? = null var requestId2: String? = null - val deserializer = XmlDeserializer(payload, true) - deserializer.deserializeStruct(OBJ_DESCRIPTOR) { - loop@ while (true) { - when (findNextFieldIndex()) { - MESSAGE_DESCRIPTOR.index -> message = deserializeString() - CODE_DESCRIPTOR.index -> code = deserializeString() - REQUESTID_DESCRIPTOR.index -> requestId = deserializeString() - HOSTID_DESCRIPTOR.index -> requestId2 = deserializeString() - null -> break@loop - else -> skipValue() - } + loop@ while (true) { + val curr = root.nextTag() ?: break@loop + when (curr.tagName) { + "Code" -> code = curr.data() + "Message", "message" -> message = curr.data() + "RequestId" -> requestId = curr.data() + "HostId" -> requestId2 = curr.data() } + curr.drop() } return S3ErrorDetails(code, message, requestId, requestId2) diff --git a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3Setting.kt b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3Setting.kt index bd90cd01200..57c4d63bd79 100644 --- a/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3Setting.kt +++ b/services/s3/common/src/aws/sdk/kotlin/services/s3/internal/S3Setting.kt @@ -21,4 +21,9 @@ internal object S3Setting { * See [Amazon S3 Multi-Region Access Points](https://docs.aws.amazon.com/sdkref/latest/guide/feature-s3-mrap.html) */ public val DisableMultiRegionAccessPoints: EnvironmentSetting = boolEnvSetting("aws.s3DisableMultiRegionAccessPoints", "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS") + + /** + * Configure whether requests made to S3 Express One Zone should use bucket-level session authentication or the default S3 authentication method. + */ + public val DisableS3ExpressSessionAuth: EnvironmentSetting = boolEnvSetting("aws.s3DisableExpressSessionAuth", "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH") } diff --git a/services/s3/common/test/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProviderTest.kt b/services/s3/common/test/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProviderTest.kt new file mode 100644 index 00000000000..861c77ea149 --- /dev/null +++ b/services/s3/common/test/aws/sdk/kotlin/services/s3/express/DefaultS3ExpressCredentialsProviderTest.kt @@ -0,0 +1,279 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.sdk.kotlin.runtime.auth.credentials.StaticCredentialsProvider +import aws.sdk.kotlin.services.s3.S3Attributes +import aws.sdk.kotlin.services.s3.S3Client +import aws.sdk.kotlin.services.s3.model.CreateSessionRequest +import aws.sdk.kotlin.services.s3.model.CreateSessionResponse +import aws.sdk.kotlin.services.s3.model.SessionCredentials +import aws.smithy.kotlin.runtime.auth.awscredentials.Credentials +import aws.smithy.kotlin.runtime.io.use +import aws.smithy.kotlin.runtime.operation.ExecutionContext +import aws.smithy.kotlin.runtime.time.ManualClock +import kotlinx.coroutines.* +import kotlinx.coroutines.test.runTest +import kotlin.test.* +import kotlin.time.ComparableTimeMark +import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds +import kotlin.time.TestTimeSource + +class DefaultS3ExpressCredentialsProviderTest { + private val DEFAULT_BASE_CREDENTIALS = Credentials("accessKeyId", "secretAccessKey", "sessionToken") + + @Test + fun testCreateSessionCredentials() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + val client = TestS3Client(expectedCredentials) + + DefaultS3ExpressCredentialsProvider(timeSource, clock).use { provider -> + val credentials = provider.createSessionCredentials( + S3ExpressCredentialsCacheKey("bucket", DEFAULT_BASE_CREDENTIALS), + client, + ) + assertFalse(credentials.isExpired) + assertEquals(timeSource.markNow() + 5.minutes, credentials.expiresAt) + } + } + + @Test + fun testSyncRefresh() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + // Entry expired 30 seconds ago, next `resolve` call should trigger a sync refresh + val cache = S3ExpressCredentialsCache() + val entry = getCacheEntry(timeSource.markNow() - 30.seconds) + cache.put(entry.key, entry.value) + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + val testClient = TestS3Client(expectedCredentials) + DefaultS3ExpressCredentialsProvider(timeSource, clock, cache, refreshBuffer = 1.minutes).use { provider -> + val attributes = ExecutionContext.build { + this.attributes[S3Attributes.ExpressClient] = testClient + this.attributes[S3Attributes.Bucket] = "bucket" + } + + provider.resolve(attributes) + } + assertEquals(1, testClient.numCreateSession) + } + + @Test + fun testAsyncRefresh() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + // Entry expires in 30 seconds, refresh buffer is 1 minute. Next `resolve` call should trigger the async refresh + val cache = S3ExpressCredentialsCache() + val entry = getCacheEntry(timeSource.markNow() + 30.seconds) + cache.put(entry.key, entry.value) + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + val testClient = TestS3Client(expectedCredentials) + + val provider = DefaultS3ExpressCredentialsProvider(timeSource, clock, cache, refreshBuffer = 1.minutes) + + val attributes = ExecutionContext.build { + this.attributes[S3Attributes.ExpressClient] = testClient + this.attributes[S3Attributes.Bucket] = "bucket" + } + provider.resolve(attributes) + + // allow the async refresh to initiate before closing the provider + runBlocking { delay(50.milliseconds) } + + // close the provider, make sure all async refreshes are complete... + provider.close() + runBlocking { delay(50.milliseconds) } + + assertEquals(1, testClient.numCreateSession) + } + + @Test + fun testAsyncRefreshDebounce() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + // Entry expires in 30 seconds, refresh buffer is 1 minute. Next `resolve` call should trigger the async refresh + val cache = S3ExpressCredentialsCache() + val entry = getCacheEntry(expiration = timeSource.markNow() + 30.seconds) + cache.put(entry.key, entry.value) + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + val testClient = TestS3Client(expectedCredentials) + + val provider = DefaultS3ExpressCredentialsProvider(timeSource, clock, cache, refreshBuffer = 1.minutes) + + val attributes = ExecutionContext.build { + this.attributes[S3Attributes.ExpressClient] = testClient + this.attributes[S3Attributes.Bucket] = "bucket" + } + val calls = (1..5).map { + async { provider.resolve(attributes) } + } + calls.awaitAll() + + // allow the async refresh to initiate before closing the provider + runBlocking { delay(50.milliseconds) } + + // close the provider, make sure all async refreshes are complete... + provider.close() + runBlocking { delay(50.milliseconds) } + + assertEquals(1, testClient.numCreateSession) + } + + @Test + fun testAsyncRefreshHandlesFailures() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + // Entry expires in 30 seconds, refresh buffer is 1 minute. Next `resolve` call should trigger the async refresh + val cache = S3ExpressCredentialsCache() + val successEntry = getCacheEntry(timeSource.markNow() + 30.seconds, bucket = "SuccessfulBucket", bootstrapCredentials = Credentials("1", "1", "1")) + val failedEntry = getCacheEntry(timeSource.markNow() + 30.seconds, bucket = "ExceptionBucket", bootstrapCredentials = Credentials("1", "1", "1")) + cache.put(successEntry.key, successEntry.value) + cache.put(failedEntry.key, failedEntry.value) + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + // client will throw an exception when `ExceptionBucket` credentials are fetched, + // but there should be no crash + val testClient = TestS3Client(expectedCredentials, throwExceptionOnBucketNamed = "ExceptionBucket", baseCredentials = Credentials("1", "1", "1")) + + val provider = DefaultS3ExpressCredentialsProvider(timeSource, clock, cache, refreshBuffer = 1.minutes) + val attributes = ExecutionContext.build { + this.attributes[S3Attributes.ExpressClient] = testClient + this.attributes[S3Attributes.Bucket] = "ExceptionBucket" + } + provider.resolve(attributes) + + attributes[S3Attributes.Bucket] = "SuccessfulBucket" + provider.resolve(attributes) + + // allow the async refresh to initiate before closing the provider + runBlocking { delay(50.milliseconds) } + + // close the provider, make sure all async refreshes are complete... + provider.close() + runBlocking { delay(50.milliseconds) } + + assertEquals(2, testClient.numCreateSession) + } + + @Test + fun testAsyncRefreshClosesImmediately() = runTest { + val timeSource = TestTimeSource() + val clock = ManualClock() + + // Entry expires in 30 seconds, refresh buffer is 1 minute. Next `resolve` call should trigger the async refresh + val cache = S3ExpressCredentialsCache() + val entry = getCacheEntry(timeSource.markNow() + 30.seconds) + cache.put(entry.key, entry.value) + + val expectedCredentials = SessionCredentials { + accessKeyId = "access" + secretAccessKey = "secret" + sessionToken = "session" + expiration = clock.now() + 5.minutes + } + + val provider = DefaultS3ExpressCredentialsProvider(timeSource, clock, cache, refreshBuffer = 1.minutes) + + val blockingTestS3Client = object : TestS3Client(expectedCredentials) { + override suspend fun createSession(input: CreateSessionRequest): CreateSessionResponse { + delay(10.seconds) + numCreateSession += 1 + return CreateSessionResponse { credentials = expectedCredentials } + } + } + + val attributes = ExecutionContext.build { + this.attributes[S3Attributes.ExpressClient] = blockingTestS3Client + this.attributes[S3Attributes.Bucket] = "bucket" + } + + withTimeout(5.seconds) { + provider.resolve(attributes) + provider.close() + } + assertEquals(0, blockingTestS3Client.numCreateSession) + } + + /** + * Get an instance of [Map.Entry] using the given [expiration], + * [bucket], and optional [bootstrapCredentials] and [sessionCredentials]. + */ + private fun getCacheEntry( + expiration: ComparableTimeMark, + bucket: String = "bucket", + bootstrapCredentials: Credentials = Credentials(accessKeyId = "accessKeyId", secretAccessKey = "secretAccessKey", sessionToken = "sessionToken"), + sessionCredentials: Credentials = Credentials(accessKeyId = "s3AccessKeyId", secretAccessKey = "s3SecretAccessKey", sessionToken = "s3SessionToken"), + ): S3ExpressCredentialsCacheEntry = mapOf( + S3ExpressCredentialsCacheKey(bucket, bootstrapCredentials) to S3ExpressCredentialsCacheValue(ExpiringValue(sessionCredentials, expiration)), + ).entries.first() + + /** + * A test S3Client used to mock calls to s3:CreateSession. + * @param expectedCredentials the expected session credentials returned from s3:CreateSession + * @param client the base S3 client used to implement other operations, though they are unused. + * @param throwExceptionOnBucketNamed an optional bucket name, which when specified and present in the [CreateSessionRequest], will + * cause the client to throw an exception instead of returning credentials. Used for testing s3:CreateSession failures. + */ + private open inner class TestS3Client( + val expectedCredentials: SessionCredentials, + val baseCredentials: Credentials = DEFAULT_BASE_CREDENTIALS, + val client: S3Client = S3Client { credentialsProvider = StaticCredentialsProvider(baseCredentials) }, + val throwExceptionOnBucketNamed: String? = null, + ) : S3Client by client { + var numCreateSession = 0 + + override suspend fun createSession(input: CreateSessionRequest): CreateSessionResponse { + numCreateSession += 1 + throwExceptionOnBucketNamed?.let { + if (input.bucket == it) { + throw Exception("Failed to create session credentials for bucket: $throwExceptionOnBucketNamed") + } + } + return CreateSessionResponse { credentials = expectedCredentials } + } + } +} diff --git a/services/s3/common/test/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCacheTest.kt b/services/s3/common/test/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCacheTest.kt new file mode 100644 index 00000000000..2387496056f --- /dev/null +++ b/services/s3/common/test/aws/sdk/kotlin/services/s3/express/S3ExpressCredentialsCacheTest.kt @@ -0,0 +1,75 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.services.s3.express + +import aws.smithy.kotlin.runtime.auth.awscredentials.Credentials +import kotlinx.coroutines.test.runTest +import kotlin.test.* +import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds +import kotlin.time.TestTimeSource + +public class S3ExpressCredentialsCacheTest { + @Test + fun testCacheKeyEquality() = runTest { + val bucket = "bucket" + val testCredentials = Credentials("accessKeyId", "secretAccessKey", "sessionToken") + + // Different keys with the same bucket and credentials should be considered equal + val key1 = S3ExpressCredentialsCacheKey(bucket, testCredentials) + val key2 = S3ExpressCredentialsCacheKey(bucket, testCredentials) + + assertEquals(key1, key2) + } + + @Test + fun testCacheOperations() = runTest { + val cache = S3ExpressCredentialsCache() + + val bucket = "bucket" + val bootstrapCredentials = Credentials("accessKeyId", "secretAccessKey", "sessionToken") + val key = S3ExpressCredentialsCacheKey(bucket, bootstrapCredentials) + + val sessionCredentials = Credentials("superFastAccessKey", "superSecretSecretKey", "s3SessionToken") + val expiringSessionCredentials = ExpiringValue(sessionCredentials, TestTimeSource().markNow()) + val value = S3ExpressCredentialsCacheValue(expiringSessionCredentials) + + cache.put(key, value) // put + assertEquals(expiringSessionCredentials, cache.get(key)?.expiringCredentials) // get + assertEquals(1, cache.size) // size + assertContains(cache.entries.map { it.key }, key) // entries + assertContains(cache.entries.map { it.value }, value) // entries + + cache.remove(key) + assertEquals(0, cache.size) + assertNull(cache.get(key)) + } + + @Test + fun testIsExpired() = runTest { + val timeSource = TestTimeSource() + + val sessionCredentials = Credentials("superFastAccessKey", "superSecretSecretKey", "s3SessionToken") + + val expiringSessionCredentials = ExpiringValue(sessionCredentials, timeSource.markNow() + 5.minutes) + assertFalse(expiringSessionCredentials.isExpired) + + timeSource += 5.minutes + 1.seconds // advance just past the expiration time + assertTrue(expiringSessionCredentials.isExpired) + } + + @Test + fun testIsWithin() = runTest { + val timeSource = TestTimeSource() + + val sessionCredentials = Credentials("superFastAccessKey", "superSecretSecretKey", "s3SessionToken") + + val expiringSessionCredentials = ExpiringValue(sessionCredentials, timeSource.markNow() + 1.minutes) + assertFalse(expiringSessionCredentials.isExpiringWithin(30.seconds)) + + timeSource += 31.seconds + assertTrue(expiringSessionCredentials.isExpiringWithin(30.seconds)) + } +} diff --git a/services/s3/e2eTest/src/MutliRegionAccessPointTest.kt b/services/s3/e2eTest/src/MutliRegionAccessPointTest.kt new file mode 100644 index 00000000000..9c3cb087fa6 --- /dev/null +++ b/services/s3/e2eTest/src/MutliRegionAccessPointTest.kt @@ -0,0 +1,109 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.e2etest + +import aws.sdk.kotlin.e2etest.S3TestUtils.createMultiRegionAccessPoint +import aws.sdk.kotlin.e2etest.S3TestUtils.deleteBucketAndAllContents +import aws.sdk.kotlin.e2etest.S3TestUtils.deleteMultiRegionAccessPoint +import aws.sdk.kotlin.e2etest.S3TestUtils.getAccountId +import aws.sdk.kotlin.e2etest.S3TestUtils.getMultiRegionAccessPointArn +import aws.sdk.kotlin.e2etest.S3TestUtils.getTestBucket +import aws.sdk.kotlin.e2etest.S3TestUtils.multiRegionAccessPointWasCreated +import aws.sdk.kotlin.services.s3.S3Client +import aws.sdk.kotlin.services.s3.deleteObject +import aws.sdk.kotlin.services.s3.putObject +import aws.sdk.kotlin.services.s3.withConfig +import aws.sdk.kotlin.services.s3control.S3ControlClient +import aws.smithy.kotlin.runtime.auth.awssigning.UnsupportedSigningAlgorithmException +import aws.smithy.kotlin.runtime.auth.awssigning.crt.CrtAwsSigner +import aws.smithy.kotlin.runtime.http.auth.SigV4AsymmetricAuthScheme +import kotlinx.coroutines.runBlocking +import org.junit.jupiter.api.AfterAll +import org.junit.jupiter.api.BeforeAll +import org.junit.jupiter.api.TestInstance +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class MutliRegionAccessPointTest { + private val s3West = S3Client { region = "us-west-2" } + private val s3East = s3West.withConfig { region = "us-east-2" } + private val s3SigV4a = s3West.withConfig { authSchemes = listOf(SigV4AsymmetricAuthScheme(CrtAwsSigner)) } + private val s3Control = S3ControlClient { region = "us-west-2" } + + private val multiRegionAccessPoint = "aws-sdk-for-kotlin-test-multi-region-access-point" + private val objectKey = "test.txt" + + private lateinit var accountId: String + private lateinit var multiRegionAccessPointArn: String + private lateinit var usWestBucket: String + private lateinit var usEastBucket: String + + @BeforeAll + private fun setUp(): Unit = runBlocking { + accountId = getAccountId() + usWestBucket = getTestBucket(s3West, "us-west-2", accountId) + usEastBucket = getTestBucket(s3East, "us-east-2", accountId) + + createMultiRegionAccessPoint( + s3Control, + multiRegionAccessPoint, + usWestBucket, + usEastBucket, + accountId, + ) + + multiRegionAccessPointArn = + getMultiRegionAccessPointArn( + s3Control, + multiRegionAccessPoint, + accountId, + ) + } + + @AfterAll + private fun cleanUp(): Unit = runBlocking { + if (multiRegionAccessPointWasCreated(s3Control, multiRegionAccessPoint, accountId)) { + deleteMultiRegionAccessPoint(s3Control, multiRegionAccessPoint, accountId) + } + + deleteBucketAndAllContents(s3West, usWestBucket) + deleteBucketAndAllContents(s3East, usEastBucket) + + s3West.close() + s3East.close() + s3SigV4a.close() + s3Control.close() + } + + @Test + fun testMultiRegionAccessPointOperation(): Unit = runBlocking { + s3SigV4a.putObject { + bucket = multiRegionAccessPointArn + key = objectKey + } + + s3SigV4a.deleteObject { + bucket = multiRegionAccessPointArn + key = objectKey + } + } + + @Test + fun testUnsupportedSigningAlgorithm(): Unit = runBlocking { + val ex = assertFailsWith { + s3West.putObject { + bucket = multiRegionAccessPointArn + key = objectKey + } + } + + assertEquals( + ex.message, + "SIGV4A support is not yet implemented for the default signer. For more information on how to enable it with the CRT signer, please refer to: https://a.co/3sf8533", + ) + } +} diff --git a/services/s3/e2eTest/src/S3ExpressTest.kt b/services/s3/e2eTest/src/S3ExpressTest.kt new file mode 100644 index 00000000000..5724d3df3ad --- /dev/null +++ b/services/s3/e2eTest/src/S3ExpressTest.kt @@ -0,0 +1,158 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.e2etest + +import aws.sdk.kotlin.services.s3.S3Client +import aws.sdk.kotlin.services.s3.express.S3_EXPRESS_SESSION_TOKEN_HEADER +import aws.sdk.kotlin.services.s3.model.* +import aws.sdk.kotlin.services.s3.presigners.presignPutObject +import aws.sdk.kotlin.services.s3.putObject +import aws.sdk.kotlin.services.s3.withConfig +import aws.smithy.kotlin.runtime.client.ProtocolRequestInterceptorContext +import aws.smithy.kotlin.runtime.content.ByteStream +import aws.smithy.kotlin.runtime.content.decodeToString +import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor +import aws.smithy.kotlin.runtime.http.request.HttpRequest +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.test.runTest +import org.junit.jupiter.api.AfterAll +import org.junit.jupiter.api.BeforeAll +import org.junit.jupiter.api.TestInstance +import kotlin.test.* +import kotlin.time.Duration.Companion.minutes + +/** + * Tests for S3 Express operations + */ +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class S3ExpressTest { + private val client = S3Client { + region = S3TestUtils.DEFAULT_REGION + } + + private val testBuckets: MutableList = mutableListOf() + + @BeforeAll + fun setup(): Unit = runBlocking { + val suffix = "--usw2-az1--x-s3" // us-west-2 availability zone 1 + + // create a few test buckets to test the credentials cache + testBuckets.add(S3TestUtils.getTestDirectoryBucket(client, suffix)) + testBuckets.add(S3TestUtils.getTestDirectoryBucket(client, suffix)) + testBuckets.add(S3TestUtils.getTestDirectoryBucket(client, suffix)) + } + + @AfterAll + fun cleanup(): Unit = runBlocking { + testBuckets.forEach { bucket -> + S3TestUtils.deleteBucketAndAllContents(client, bucket) + } + client.close() + } + + @Test + fun testPutObject() = runTest { + val content = "30 minutes, or it's free!" + val keyName = "express.txt" + + testBuckets.forEach { bucketName -> + val trackingInterceptor = S3ExpressInvocationTrackingInterceptor() + client.withConfig { + interceptors += trackingInterceptor + }.use { trackingClient -> + trackingClient.putObject { + bucket = bucketName + key = keyName + body = ByteStream.fromString(content) + } + + val req = GetObjectRequest { + bucket = bucketName + key = keyName + } + + val respContent = client.getObject(req) { + it.body?.decodeToString() + } + + assertEquals(content, respContent) + assertEquals(1, trackingInterceptor.s3ExpressInvocations) + } + } + } + + @Ignore + @Test + fun testPresignedPutObject() = runTest { + val content = "Presign this!" + val keyName = "express-presigned.txt" + + testBuckets.forEach { bucketName -> + val presigned = client.presignPutObject( + PutObjectRequest { + bucket = bucketName + key = keyName + body = ByteStream.fromString(content) + }, + 5.minutes, + ) + + // FIXME Presigned requests should use S3 Express Auth Scheme resulting in `X-Amz-S3session-Token` + // https://github.com/awslabs/aws-sdk-kotlin/issues/1236 + assertTrue(presigned.url.parameters.decodedParameters.contains(S3_EXPRESS_SESSION_TOKEN_HEADER)) + } + } + + @Test + fun testChecksums() = runTest { + val bucketName = testBuckets.first() // only need one bucket for this test + + val keysToDelete = listOf("checksums.txt", "delete-me.txt", "dont-forget-about-me.txt") + keysToDelete.forEach { + client.putObject { + bucket = bucketName + key = it + body = ByteStream.fromString("Check out these sums!") + } + } + + client.withConfig { + interceptors += CRC32ChecksumValidatingInterceptor() + }.use { validatingClient -> + // s3:DeleteObjects requires a checksum, even if the user doesn't specify one. + // normally the SDK would default to MD5, but S3 Express must default to CRC32 instead. + val req = DeleteObjectsRequest { + bucket = bucketName + delete = Delete { + objects = keysToDelete.map { + ObjectIdentifier { key = it } + } + } + } + + validatingClient.deleteObjects(req) + } + } + + private class S3ExpressInvocationTrackingInterceptor : HttpInterceptor { + var s3ExpressInvocations = 0 + + override fun readAfterSigning(context: ProtocolRequestInterceptorContext) { + if (context.protocolRequest.headers.contains(S3_EXPRESS_SESSION_TOKEN_HEADER)) { + s3ExpressInvocations += 1 + } + } + } + + private class CRC32ChecksumValidatingInterceptor : HttpInterceptor { + override fun readAfterSigning(context: ProtocolRequestInterceptorContext) { + val headers = context.protocolRequest.headers + if (headers.contains(S3_EXPRESS_SESSION_TOKEN_HEADER)) { + assertTrue(headers.contains("x-amz-checksum-crc32"), "Failed to find x-amz-checksum-crc32 header") + assertFalse(headers.contains("Content-MD5"), "Unexpectedly found Content-MD5 header") + } + } + } +} diff --git a/services/s3/e2eTest/src/S3TestUtils.kt b/services/s3/e2eTest/src/S3TestUtils.kt index 7ceb34708a4..c709fffe01f 100644 --- a/services/s3/e2eTest/src/S3TestUtils.kt +++ b/services/s3/e2eTest/src/S3TestUtils.kt @@ -5,31 +5,65 @@ package aws.sdk.kotlin.e2etest import aws.sdk.kotlin.services.s3.* +import aws.sdk.kotlin.services.s3.S3Client import aws.sdk.kotlin.services.s3.model.* +import aws.sdk.kotlin.services.s3.model.BucketLocationConstraint +import aws.sdk.kotlin.services.s3.model.ExpirationStatus +import aws.sdk.kotlin.services.s3.model.LifecycleRule +import aws.sdk.kotlin.services.s3.model.LifecycleRuleFilter import aws.sdk.kotlin.services.s3.paginators.listObjectsV2Paginated import aws.sdk.kotlin.services.s3.waiters.waitUntilBucketExists +import aws.sdk.kotlin.services.s3control.* +import aws.sdk.kotlin.services.s3control.model.* +import aws.sdk.kotlin.services.sts.StsClient import aws.smithy.kotlin.runtime.http.request.HttpRequest +import aws.smithy.kotlin.runtime.text.ensurePrefix import kotlinx.coroutines.* import kotlinx.coroutines.flow.* +import kotlinx.coroutines.withTimeout import java.io.OutputStreamWriter import java.net.URL import java.util.* import javax.net.ssl.HttpsURLConnection +import kotlin.time.Duration +import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds object S3TestUtils { const val DEFAULT_REGION = "us-west-2" + // The E2E test account only has permission to operate on buckets with the prefix private const val TEST_BUCKET_PREFIX = "s3-test-bucket-" - suspend fun getTestBucket(client: S3Client): String = getBucketWithPrefix(client, TEST_BUCKET_PREFIX) + private const val S3_MAX_BUCKET_NAME_LENGTH = 63 // https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html + private const val S3_EXPRESS_DIRECTORY_BUCKET_SUFFIX = "--x-s3" - private suspend fun getBucketWithPrefix(client: S3Client, prefix: String): String = withTimeout(60.seconds) { - var testBucket = client.listBuckets() + suspend fun getTestBucket( + client: S3Client, + region: String? = null, + accountId: String? = null, + ): String = getBucketWithPrefix(client, TEST_BUCKET_PREFIX, region, accountId) + + private suspend fun getBucketWithPrefix( + client: S3Client, + prefix: String, + region: String?, + accountId: String?, + ): String = withTimeout(60.seconds) { + val buckets = client.listBuckets() .buckets ?.mapNotNull { it.name } - ?.firstOrNull { it.startsWith(prefix) } + + var testBucket = buckets?.firstOrNull { bucketName -> + bucketName.startsWith(prefix) && + region?.let { + client.getBucketLocation { + bucket = bucketName + expectedBucketOwner = accountId + }.locationConstraint?.value == region + } ?: true + } if (testBucket == null) { testBucket = prefix + UUID.randomUUID() @@ -38,7 +72,7 @@ object S3TestUtils { client.createBucket { bucket = testBucket createBucketConfiguration { - locationConstraint = BucketLocationConstraint.fromValue(client.config.region!!) + locationConstraint = BucketLocationConstraint.fromValue(region ?: client.config.region!!) } } @@ -64,6 +98,41 @@ object S3TestUtils { testBucket } + suspend fun getTestDirectoryBucket(client: S3Client, suffix: String) = withTimeout(60.seconds) { + var testBucket = client.listBuckets() + .buckets + ?.mapNotNull { it.name } + ?.firstOrNull { it.startsWith(TEST_BUCKET_PREFIX) && it.endsWith(S3_EXPRESS_DIRECTORY_BUCKET_SUFFIX) } + + if (testBucket == null) { + // Adding S3 Express suffix surpasses the bucket name length limit... trim the UUID if needed + testBucket = TEST_BUCKET_PREFIX + + UUID.randomUUID().toString().subSequence(0 until (S3_MAX_BUCKET_NAME_LENGTH - TEST_BUCKET_PREFIX.length - suffix.ensurePrefix("--").length)) + + suffix.ensurePrefix("--") + + println("Creating S3 Express directory bucket: $testBucket") + + val availabilityZone = testBucket // s3-test-bucket-UUID--use1-az4--x-s3 + .removeSuffix(S3_EXPRESS_DIRECTORY_BUCKET_SUFFIX) // s3-test-bucket-UUID--use1-az4 + .substringAfterLast("--") // use1-az4 + + client.createBucket { + bucket = testBucket + createBucketConfiguration { + location = LocationInfo { + type = LocationType.AvailabilityZone + name = availabilityZone + } + bucket = BucketInfo { + type = BucketType.Directory + dataRedundancy = DataRedundancy.SingleAvailabilityZone + } + } + } + } + testBucket + } + @OptIn(ExperimentalCoroutinesApi::class) suspend fun deleteBucketAndAllContents(client: S3Client, bucketName: String): Unit = coroutineScope { val scope = this @@ -115,4 +184,128 @@ object S3TestUtils { return connection.responseCode } + + internal suspend fun getAccountId(): String { + println("Getting account ID") + + val accountId = StsClient { + region = "us-west-2" + }.use { + it.getCallerIdentity().account + } + + return checkNotNull(accountId) { "Unable to get AWS account ID" } + } + + internal suspend fun createMultiRegionAccessPoint( + s3ControlClient: S3ControlClient, + multiRegionAccessPointName: String, + regionOneBucket: String, + regionTwoBucket: String, + testAccountId: String, + ) { + println("Creating multi region access point: $multiRegionAccessPointName") + + val createRequestToken = s3ControlClient.createMultiRegionAccessPoint { + accountId = testAccountId + details { + name = multiRegionAccessPointName + regions = listOf( + Region { bucket = regionOneBucket }, + Region { bucket = regionTwoBucket }, + ) + } + } + + waitUntilMultiRegionAccessPointOperationCompletes( + s3ControlClient, + checkNotNull(createRequestToken.requestTokenArn) { "Unable to get request token ARN" }, + 10.minutes, + testAccountId, + "createMultiRegionAccessPoint", + ) + } + + internal suspend fun getMultiRegionAccessPointArn( + s3ControlClient: S3ControlClient, + multiRegionAccessPointName: String, + testAccountId: String, + ): String { + println("Getting multi region access point arn for: $multiRegionAccessPointName") + + s3ControlClient.getMultiRegionAccessPoint { + accountId = testAccountId + name = multiRegionAccessPointName + }.accessPoint?.alias?.let { alias -> + return "arn:aws:s3::$testAccountId:accesspoint/$alias" + } + throw Exception("Unable to get multi region access point arn") + } + + internal suspend fun deleteMultiRegionAccessPoint( + s3ControlClient: S3ControlClient, + multiRegionAccessPointName: String, + testAccountId: String, + ) { + println("Deleting multi region access point: $multiRegionAccessPointName") + + val deleteRequestToken = s3ControlClient.deleteMultiRegionAccessPoint { + accountId = testAccountId + details { + name = multiRegionAccessPointName + } + } + + waitUntilMultiRegionAccessPointOperationCompletes( + s3ControlClient, + checkNotNull(deleteRequestToken.requestTokenArn) { "Unable to get request token ARN" }, + 5.minutes, + testAccountId, + "deleteMultiRegionAccessPoint", + ) + } + + private suspend fun waitUntilMultiRegionAccessPointOperationCompletes( + s3ControlClient: S3ControlClient, + request: String, + timeoutAfter: Duration, + testAccountId: String, + operation: String, + ) { + withTimeout(timeoutAfter) { + var status: String? = null + while (true) { + val latestStatus = s3ControlClient.describeMultiRegionAccessPointOperation { + accountId = testAccountId + requestTokenArn = request + }.asyncOperation?.requestStatus + + when (latestStatus) { + "SUCCEEDED" -> { + println("$operation operation succeeded.") + return@withTimeout + } + "FAILED" -> throw IllegalStateException("$operation operation failed") + else -> { if (status == null || latestStatus != status) { + println("Waiting on $operation operation. Status: $latestStatus ") + status = latestStatus + } } + } + + delay(10.seconds) // Avoid constant status checks + } + } + } + + internal suspend fun multiRegionAccessPointWasCreated( + s3Control: S3ControlClient, + multiRegionAccessPointName: String, + testAccountId: String, + ): Boolean { + println("Checking if multi region access point was created: $multiRegionAccessPointName") + + return s3Control.listMultiRegionAccessPoints { + accountId = testAccountId + }.accessPoints?.any { it.name == multiRegionAccessPointName } ?: false + } } diff --git a/tests/benchmarks/service-benchmarks/README.md b/tests/benchmarks/service-benchmarks/README.md index 5d13740fd5e..fd34d54ed41 100644 --- a/tests/benchmarks/service-benchmarks/README.md +++ b/tests/benchmarks/service-benchmarks/README.md @@ -51,6 +51,19 @@ The following benchmark run serves as a baseline for future runs: | —GetEndpoint | | 555 | 0.220 | 0.401 | 0.406 | 0.452 | 0.506 | 6.606 | | —PutEvents | | 415 | 0.242 | 0.400 | 0.420 | 0.466 | 0.619 | 2.762 | +### S3 Express +S3 Express benchmarks were ran separately. + +| Hardware type | Operating system | SDK version | +|----------------|------------------|-----------------| +| EC2 m5.4xlarge | Amazon Linux 2023 | 1.0.66 | + +| | E2E Duration (ms) | n | min | avg | med | p90 | p99 | max | +| :--- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| **S3Express** | | | | | | | | | +| —PutObject | | 1950 | 7.240 | 7.487 | 7.455 | 7.617 | 7.886 | 21.096 | +| —GetObject | | 3402 | 4.049 | 4.188 | 4.141 | 4.243 | 4.470 | 20.537 | + ## Methodology This section describes how the benchmarks actually work at a high level: diff --git a/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/BenchmarkHarness.kt b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/BenchmarkHarness.kt index 4f523a93f2d..ae60c0a2437 100644 --- a/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/BenchmarkHarness.kt +++ b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/BenchmarkHarness.kt @@ -22,6 +22,7 @@ private val benchmarks = setOf( CloudwatchEventsBenchmark(), DynamoDbBenchmark(), PinpointBenchmark(), + S3ExpressBenchmark(), ).map { @Suppress("UNCHECKED_CAST") it as ServiceBenchmark diff --git a/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/definitions/S3ExpressBenchmark.kt b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/definitions/S3ExpressBenchmark.kt new file mode 100644 index 00000000000..73df450e939 --- /dev/null +++ b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/definitions/S3ExpressBenchmark.kt @@ -0,0 +1,100 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.benchmarks.service.definitions + +import aws.sdk.kotlin.benchmarks.service.Common +import aws.sdk.kotlin.services.s3.* +import aws.sdk.kotlin.services.s3.model.* +import aws.smithy.kotlin.runtime.ExperimentalApi +import aws.smithy.kotlin.runtime.content.ByteStream + +/** + * Benchmarks for S3 Express One Zone. + * Note: This benchmark must be run from an EC2 host in the same AZ as the bucket (usw2-az1). + */ +class S3ExpressBenchmark : ServiceBenchmark { + private val regionAz = "usw2-az1" // FIXME Use IMDS to dynamically create a bucket in the EC2 host's AZ + private val bucketName = Common.random("sdk-benchmark-bucket-") + .substring(0 until 47) + // truncate to prevent "bucket name too long" errors + "--$regionAz--x-s3" + + private val KEY = "64kb-object" + private val CONTENTS = "a".repeat(65536) // 64KB + + @OptIn(ExperimentalApi::class) + override suspend fun client() = S3Client.fromEnvironment { + clientName = "S3Express" + retryStrategy = Common.noRetries + telemetryProvider = Common.telemetryProvider + httpClient { + telemetryProvider = Common.telemetryProvider + } + } + + override suspend fun setup(client: S3Client) { + client.createBucket { + bucket = bucketName + createBucketConfiguration { + location { + type = LocationType.AvailabilityZone + this.name = regionAz + } + bucket { + type = BucketType.Directory + dataRedundancy = DataRedundancy.SingleAvailabilityZone + } + } + } + } + + override val operations get() = listOf(putObjectBenchmark, getObjectBenchmark) + + override suspend fun tearDown(client: S3Client) { + client.deleteBucket { bucket = bucketName } + } + + private val putObjectBenchmark = object : AbstractOperationBenchmark("PutObject") { + override suspend fun transact(client: S3Client) { + client.putObject { + bucket = bucketName + key = KEY + body = ByteStream.fromString(CONTENTS) + } + } + + override suspend fun tearDown(client: S3Client) { + client.deleteObject { + bucket = bucketName + key = KEY + } + } + } + + private val getObjectBenchmark = object : AbstractOperationBenchmark("GetObject") { + override suspend fun setup(client: S3Client) { + client.putObject { + bucket = bucketName + key = KEY + body = ByteStream.fromString(CONTENTS) + } + } + + override suspend fun transact(client: S3Client) { + client.getObject( + GetObjectRequest { + bucket = bucketName + key = KEY + }, + ) { } + } + + override suspend fun tearDown(client: S3Client) { + client.deleteObject { + bucket = bucketName + key = KEY + } + } + } +} diff --git a/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/telemetry/BenchmarkTelemetryProvider.kt b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/telemetry/BenchmarkTelemetryProvider.kt index e05c7a29e54..5a031679b83 100644 --- a/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/telemetry/BenchmarkTelemetryProvider.kt +++ b/tests/benchmarks/service-benchmarks/jvm/src/aws/sdk/kotlin/benchmarks/service/telemetry/BenchmarkTelemetryProvider.kt @@ -14,12 +14,12 @@ import aws.smithy.kotlin.runtime.telemetry.metrics.* import aws.smithy.kotlin.runtime.telemetry.trace.TracerProvider private val capturedMetrics = mapOf( - "smithy.client.attempt_overhead_duration" to "Overhead", + "smithy.client.call.attempt_overhead_duration" to "Overhead", // "smithy.client.http.time_to_first_byte" to "TTFB", - // "smithy.client.attempt_duration" to "Call", - // "smithy.client.serialization_duration" to "Serlz", - // "smithy.client.deserialization_duration" to "Deserlz", - // "smithy.client.resolve_endpoint_duration" to "EPR", + // "smithy.client.call.attempt_duration" to "Call", + // "smithy.client.call.serialization_duration" to "Serlz", + // "smithy.client.call.deserialization_duration" to "Deserlz", + // "smithy.client.call.resolve_endpoint_duration" to "EPR", ) @ExperimentalApi