diff --git a/.changes/a965bace-fc72-45ec-8a67-b5d0163621e3.json b/.changes/a965bace-fc72-45ec-8a67-b5d0163621e3.json new file mode 100644 index 00000000000..420a7184fce --- /dev/null +++ b/.changes/a965bace-fc72-45ec-8a67-b5d0163621e3.json @@ -0,0 +1,6 @@ +{ + "id": "a965bace-fc72-45ec-8a67-b5d0163621e3", + "type": "bugfix", + "description": "**Breaking**: Make properties of S3Control PublicAccessBlockConfiguration optional by removing default values. Previously they defaulted to false, which caused invalid requests", + "requiresMinorVersionBump": true +} diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/RemoveDefaults.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/RemoveDefaults.kt index 836f3fc6ae7..77d7b240d37 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/RemoveDefaults.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/RemoveDefaults.kt @@ -25,37 +25,43 @@ import software.amazon.smithy.utils.ToSmithyBuilder */ class RemoveDefaults : KotlinIntegration { // Service shape id -> Shape id of each root shape to remove default values from. - private val removeDefaultsFrom = mapOf( - ShapeId.from("com.amazonaws.amplifyuibuilder#AmplifyUIBuilder") to setOf( - ShapeId.from("com.amazonaws.amplifyuibuilder#ListComponentsLimit"), - ShapeId.from("com.amazonaws.amplifyuibuilder#ListFormsLimit"), - ShapeId.from("com.amazonaws.amplifyuibuilder#ListThemesLimit"), + private val removeDefaultsFrom: Map> = mapOf( + "com.amazonaws.amplifyuibuilder#AmplifyUIBuilder" to setOf( + "com.amazonaws.amplifyuibuilder#ListComponentsLimit", + "com.amazonaws.amplifyuibuilder#ListFormsLimit", + "com.amazonaws.amplifyuibuilder#ListThemesLimit", ), - ShapeId.from("com.amazonaws.drs#ElasticDisasterRecoveryService") to setOf( - ShapeId.from("com.amazonaws.drs#Validity"), - ShapeId.from("com.amazonaws.drs#CostOptimizationConfiguration\$burstBalanceThreshold"), - ShapeId.from("com.amazonaws.drs#CostOptimizationConfiguration\$burstBalanceDeltaThreshold"), - ShapeId.from("com.amazonaws.drs#ListStagingAccountsRequest\$maxResults"), - ShapeId.from("com.amazonaws.drs#StrictlyPositiveInteger"), - ShapeId.from("com.amazonaws.drs#MaxResultsType"), - ShapeId.from("com.amazonaws.drs#MaxResultsReplicatingSourceServers"), - ShapeId.from("com.amazonaws.drs#LaunchActionOrder"), + "com.amazonaws.drs#ElasticDisasterRecoveryService" to setOf( + "com.amazonaws.drs#Validity", + "com.amazonaws.drs#CostOptimizationConfiguration\$burstBalanceThreshold", + "com.amazonaws.drs#CostOptimizationConfiguration\$burstBalanceDeltaThreshold", + "com.amazonaws.drs#ListStagingAccountsRequest\$maxResults", + "com.amazonaws.drs#StrictlyPositiveInteger", + "com.amazonaws.drs#MaxResultsType", + "com.amazonaws.drs#MaxResultsReplicatingSourceServers", + "com.amazonaws.drs#LaunchActionOrder", ), - ShapeId.from("com.amazonaws.evidently#Evidently") to setOf( - ShapeId.from("com.amazonaws.evidently#ResultsPeriod"), + "com.amazonaws.evidently#Evidently" to setOf( + "com.amazonaws.evidently#ResultsPeriod", ), - ShapeId.from("com.amazonaws.location#LocationService") to setOf( - ShapeId.from("com.amazonaws.location#ListPlaceIndexesRequest\$MaxResults"), - ShapeId.from("com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest\$MaxResults"), - ShapeId.from("com.amazonaws.location#PlaceIndexSearchResultLimit"), + "com.amazonaws.location#LocationService" to setOf( + "com.amazonaws.location#ListPlaceIndexesRequest\$MaxResults", + "com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest\$MaxResults", + "com.amazonaws.location#PlaceIndexSearchResultLimit", ), - ShapeId.from("com.amazonaws.paymentcryptographydata#PaymentCryptographyDataPlane") to setOf( - ShapeId.from("com.amazonaws.paymentcryptographydata#IntegerRangeBetween4And12"), + "com.amazonaws.paymentcryptographydata#PaymentCryptographyDataPlane" to setOf( + "com.amazonaws.paymentcryptographydata#IntegerRangeBetween4And12", ), - ShapeId.from("com.amazonaws.emrserverless#AwsToledoWebService") to setOf( - ShapeId.from("com.amazonaws.emrserverless#WorkerCounts"), + "com.amazonaws.emrserverless#AwsToledoWebService" to setOf( + "com.amazonaws.emrserverless#WorkerCounts", ), - ) + "com.amazonaws.s3control#AWSS3ControlServiceV20180820" to setOf( + "com.amazonaws.s3control#PublicAccessBlockConfiguration\$BlockPublicAcls", + "com.amazonaws.s3control#PublicAccessBlockConfiguration\$IgnorePublicAcls", + "com.amazonaws.s3control#PublicAccessBlockConfiguration\$BlockPublicPolicy", + "com.amazonaws.s3control#PublicAccessBlockConfiguration\$RestrictPublicBuckets", + ), + ).map { (k, v) -> ShapeId.from(k) to v.map { ShapeId.from(it) }.toSet() }.toMap() override val order: Byte = 0