Skip to content

Commit f7c17d6

Browse files
committed
Merge from main
2 parents ca2fa02 + 290c048 commit f7c17d6

File tree

268 files changed

+48087
-11581
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

268 files changed

+48087
-11581
lines changed

.brazil.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
{
22
"dependencies": {
3+
"org.jetbrains.kotlin:kotlin-gradle-plugin:2.*": "KotlinGradlePlugin-2.x",
34
"org.jetbrains.kotlin:kotlin-stdlib-common:2.*.*": "KotlinStdlibCommon-2.x",
45
"org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.*.*": "KotlinStdlibJdk8-2.x",
56
"org.jetbrains.kotlin:kotlin-stdlib:2.*.*": "KotlinStdlib-2.x",
67
"org.jetbrains.kotlinx:atomicfu:0.*.*": "Atomicfu-0.x",
78
"org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.*": "KotlinxCoroutinesCoreJvm-1.x",
8-
"org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.*": "KotlinxCoroutinesJdk8-1.x"
9+
"org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.*": "KotlinxCoroutinesJdk8-1.x",
10+
"com.google.devtools.ksp:symbol-processing-api:2.*": "Maven-com-google-devtools-ksp_symbol-processing-api-2.x",
11+
"com.google.devtools.ksp:symbol-processing-gradle-plugin:2.*": "Maven-com-google-devtools-ksp_symbol-processing-gradle-plugin-2.x"
912
},
1013
"packageHandlingRules": {
1114
"versioning": {
1215
"defaultVersionLayout": "{MAJOR}.0.x"
1316
},
1417
"ignore": [
1518
"aws.sdk.kotlin:bom",
16-
"aws.sdk.kotlin.crt:aws-crt-kotlin-android",
1719
"aws.sdk.kotlin:testing",
1820
"aws.sdk.kotlin:version-catalog"
1921
],

CHANGELOG.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,86 @@
11
# Changelog
22

3+
## [1.3.66] - 10/31/2024
4+
5+
### Features
6+
* (**amp**) Added support for UpdateScraper API, to enable updating collector configuration in-place
7+
* (**autoscaling**) Adds bake time for Auto Scaling group Instance Refresh
8+
* (**batch**) Add `podNamespace` to `EksAttemptDetail` and `containerID` to `EksAttemptContainerDetail`.
9+
* (**elasticloadbalancingv2**) Add UDP support for AWS PrivateLink and dual-stack Network Load Balancers
10+
* (**glue**) Add schedule support for AWS Glue column statistics
11+
* (**sagemaker**) SageMaker HyperPod adds scale-down at instance level via BatchDeleteClusterNodes API and group level via UpdateCluster API. SageMaker Training exposes secondary job status in TrainingJobSummary from ListTrainingJobs API. SageMaker now supports G6, G6e, P5e instances for HyperPod and Training.
12+
* (**sesv2**) This release enables customers to provide the email template content in the SESv2 SendEmail and SendBulkEmail APIs instead of the name or the ARN of a stored email template.
13+
14+
### Miscellaneous
15+
* Send x-amzn-query-mode=true for services with query-compatible trait
16+
* Bump to smithy-kotlin 1.3.18
17+
18+
## [1.3.65] - 10/30/2024
19+
20+
### Features
21+
* (**appsync**) This release adds support for AppSync Event APIs.
22+
* (**connect**) Updated the public documentation for the UserIdentityInfo object to accurately reflect the character limits for the FirstName and LastName fields, which were previously listed as 1-100 characters.
23+
* (**datasync**) AWS DataSync now supports Enhanced mode tasks. This task mode supports transfer of virtually unlimited numbers of objects with enhanced metrics, more detailed logs, and higher performance than Basic mode. This mode currently supports transfers between Amazon S3 locations.
24+
* (**ec2**) This release adds two new capabilities to VPC Security Groups: Security Group VPC Associations and Shared Security Groups.
25+
* (**ecs**) This release supports service deployments and service revisions which provide a comprehensive view of your Amazon ECS service history.
26+
* (**geomaps**) Release of Amazon Location Maps API. Maps enables you to build digital maps that showcase your locations, visualize your data, and unlock insights to drive your business
27+
* (**geoplaces**) Release of Amazon Location Places API. Places enables you to quickly search, display, and filter places, businesses, and locations based on proximity, category, and name
28+
* (**georoutes**) Release of Amazon Location Routes API. Routes enables you to plan efficient routes and streamline deliveries by leveraging real-time traffic, vehicle restrictions, and turn-by-turn directions.
29+
* (**keyspaces**) Adds support for interacting with user-defined types (UDTs) through the following new operations: Create-Type, Delete-Type, List-Types, Get-Type.
30+
* (**networkfirewall**) AWS Network Firewall now supports configuring TCP idle timeout
31+
* (**opensearch**) This release introduces the new OpenSearch user interface (Dashboards), a new web-based application that can be associated with multiple data sources across OpenSearch managed clusters, serverless collections, and Amazon S3, so that users can gain a comprehensive insights in an unified interface.
32+
* (**opensearchserverless**) Neo Integration via IAM Identity Center (IdC)
33+
* (**redshift**) This release launches S3 event integrations to create and manage integrations from an Amazon S3 source into an Amazon Redshift database.
34+
* (**redshiftserverless**) Adds and updates API members for the Redshift Serverless AI-driven scaling and optimization feature using the price-performance target setting.
35+
* (**route53**) This release adds support for TLSA, SSHFP, SVCB, and HTTPS record types.
36+
* (**sagemaker**) Added support for Model Registry Staging construct. Users can define series of stages that models can progress through for model workflows and lifecycle. This simplifies tracking and managing models as they transition through development, testing, and production stages.
37+
* (**workmail**) This release adds support for Multi-Factor Authentication (MFA) and Personal Access Tokens through integration with AWS IAM Identity Center.
38+
39+
## [1.3.64] - 10/29/2024
40+
41+
### Features
42+
* (**bedrock**) Update Application Inference Profile
43+
* (**bedrockruntime**) Update Application Inference Profile
44+
* (**cleanrooms**) This release adds the option for customers to configure analytics engine when creating a collaboration, and introduces the new SPARK analytics engine type in addition to maintaining the legacy CLEAN_ROOMS_SQL engine type.
45+
* (**cloudwatchlogs**) Added support for new optional baseline parameter in the UpdateAnomaly API. For UpdateAnomaly requests with baseline set to True, The anomaly behavior is then treated as baseline behavior. However, more severe occurrences of this behavior will still be reported as anomalies.
46+
* [#472](https://github.com/awslabs/aws-sdk-kotlin/issues/472) (**dynamodb-mapper**) Initial release of Developer Preview of **DynamoDB Mapper** for Kotlin
47+
* (**iotfleetwise**) Updated BatchCreateVehicle and BatchUpdateVehicle APIs: LimitExceededException has been added and the maximum number of vehicles in a batch has been set to 10 explicitly
48+
* (**redshiftdata**) Adding a new API GetStatementResultV2 that supports CSV formatted results from ExecuteStatement and BatchExecuteStatement calls.
49+
* (**sagemaker**) Adding `notebook-al2-v3` as allowed value to SageMaker NotebookInstance PlatformIdentifier attribute
50+
51+
### Miscellaneous
52+
* Remove Nimble Service
53+
54+
## [1.3.63] - 10/28/2024
55+
56+
### Features
57+
* (**mediapackagev2**) MediaPackage V2 Live to VOD Harvester is a MediaPackage V2 feature, which is used to export content from an origin endpoint to a S3 bucket.
58+
* (**opensearch**) Adds support for provisioning dedicated coordinator nodes. Coordinator nodes can be specified using the new NodeOptions parameter in ClusterConfig.
59+
* (**rds**) This release adds support for Enhanced Monitoring and Performance Insights when restoring Aurora Limitless Database DB clusters. It also adds support for the os-upgrade pending maintenance action.
60+
61+
### Documentation
62+
* (**storagegateway**) Documentation update: Amazon FSx File Gateway will no longer be available to new customers.
63+
64+
## [1.3.62] - 10/25/2024
65+
66+
### Features
67+
* (**bedrockagent**) Add support of new model types for Bedrock Agents, Adding inference profile support for Flows and Prompt Management, Adding new field to configure additional inference configurations for Flows and Prompt Management
68+
* (**cloudwatchlogs**) Adding inferred token name for dynamic tokens in Anomalies.
69+
* (**codebuild**) AWS CodeBuild now supports automatically retrying failed builds
70+
* (**lambda**) Add TagsError field in Lambda GetFunctionResponse. The TagsError field contains details related to errors retrieving tags.
71+
* (**supplychain**) API doc updates, and also support showing error message on a failed instance
72+
73+
## [1.3.61] - 10/24/2024
74+
75+
### Features
76+
* (**appconfig**) This release improves deployment safety by granting customers the ability to REVERT completed deployments, to the last known good state.In the StopDeployment API revert case the status of a COMPLETE deployment will be REVERTED. AppConfig only allows a revert within 72 hours of deployment completion.
77+
* (**ec2**) This release includes a new API to describe some details of the Amazon Machine Images (AMIs) that were used to launch EC2 instances, even if those AMIs are no longer available for use.
78+
* (**ecs**) This release adds support for EBS volumes attached to Amazon ECS Windows tasks running on EC2 instances.
79+
* (**qbusiness**) Add a new field in chat response. This field can be used to support nested schemas in array fields
80+
81+
### Documentation
82+
* (**pcs**) Documentation update: added the default value of the Slurm configuration parameter scaleDownIdleTimeInSeconds to its description.
83+
384
## [1.3.60] - 10/23/2024
485

586
### Features

aws-runtime/aws-http/api/aws-http.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ public final class aws/sdk/kotlin/runtime/http/interceptors/AddUserAgentMetadata
141141
}
142142

143143
public final class aws/sdk/kotlin/runtime/http/interceptors/AwsBusinessMetric : java/lang/Enum, aws/smithy/kotlin/runtime/businessmetrics/BusinessMetric {
144+
public static final field DDB_MAPPER Laws/sdk/kotlin/runtime/http/interceptors/AwsBusinessMetric;
144145
public static final field S3_EXPRESS_BUCKET Laws/sdk/kotlin/runtime/http/interceptors/AwsBusinessMetric;
145146
public static fun getEntries ()Lkotlin/enums/EnumEntries;
146147
public fun getIdentifier ()Ljava/lang/String;

aws-runtime/aws-http/common/src/aws/sdk/kotlin/runtime/http/interceptors/BusinessMetricsInterceptor.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@ private fun formatMetrics(metrics: MutableSet<String>): String {
6464
@InternalApi
6565
public enum class AwsBusinessMetric(public override val identifier: String) : BusinessMetric {
6666
S3_EXPRESS_BUCKET("J"),
67+
DDB_MAPPER("d"),
6768
}

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ configureNexus()
145145
val lintPaths = listOf(
146146
"**/*.{kt,kts}",
147147
"!**/generated-src/**",
148+
"!**/generated/ksp/**",
149+
"!**/kspCaches/**",
148150
"!**/smithyprojections/**",
149151
)
150152

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package aws.sdk.kotlin.codegen.customization
6+
7+
import software.amazon.smithy.aws.traits.protocols.AwsQueryCompatibleTrait
8+
import software.amazon.smithy.kotlin.codegen.KotlinSettings
9+
import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration
10+
import software.amazon.smithy.kotlin.codegen.model.hasTrait
11+
import software.amazon.smithy.kotlin.codegen.rendering.protocol.MutateHeadersMiddleware
12+
import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolGenerator
13+
import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolMiddleware
14+
import software.amazon.smithy.model.Model
15+
16+
/**
17+
* Send an extra `x-amzn-query-mode` header with a value of `true` for services which have the [AwsQueryCompatibleTrait] applied.
18+
*/
19+
class AwsQueryModeCustomization : KotlinIntegration {
20+
override fun enabledForService(model: Model, settings: KotlinSettings): Boolean =
21+
model
22+
.getShape(settings.service)
23+
.get()
24+
.hasTrait<AwsQueryCompatibleTrait>()
25+
26+
override fun customizeMiddleware(ctx: ProtocolGenerator.GenerationContext, resolved: List<ProtocolMiddleware>): List<ProtocolMiddleware> =
27+
resolved + MutateHeadersMiddleware(extraHeaders = mapOf("x-amzn-query-mode" to "true"))
28+
}

codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/SigV4AsymmetricTraitCustomization.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class SigV4AsymmetricTraitCustomization : KotlinIntegration {
2626
override val order: Byte = -60
2727

2828
// services which support SigV4A but don't model it
29-
private val unmodeledSigV4aServices = listOf("s3", "eventbridge")
29+
private val unmodeledSigV4aServices = listOf("s3", "eventbridge", "sesv2")
3030

3131
override fun enabledForService(model: Model, settings: KotlinSettings): Boolean =
3232
unmodeledSigV4aServices.contains(settings.sdkId.lowercase()) && !model.isTraitApplied(SigV4ATrait::class.java)

codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/smoketests/SmokeTestAwsVendorParamsIntegration.kt

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package aws.sdk.kotlin.codegen.smoketests
22

33
import aws.sdk.kotlin.codegen.AwsRuntimeTypes
4+
import software.amazon.smithy.codegen.core.SymbolProvider
45
import software.amazon.smithy.kotlin.codegen.KotlinSettings
5-
import software.amazon.smithy.kotlin.codegen.core.RuntimeTypes
6-
import software.amazon.smithy.kotlin.codegen.core.getContextValue
7-
import software.amazon.smithy.kotlin.codegen.core.withBlock
6+
import software.amazon.smithy.kotlin.codegen.core.*
87
import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration
8+
import software.amazon.smithy.kotlin.codegen.integration.SectionWriter
99
import software.amazon.smithy.kotlin.codegen.integration.SectionWriterBinding
1010
import software.amazon.smithy.kotlin.codegen.model.hasTrait
1111
import software.amazon.smithy.kotlin.codegen.rendering.smoketests.*
1212
import software.amazon.smithy.kotlin.codegen.rendering.smoketests.Param.ParamName
1313
import software.amazon.smithy.kotlin.codegen.rendering.smoketests.Param.ParamShape
1414
import software.amazon.smithy.kotlin.codegen.rendering.smoketests.Param.Parameter
15+
import software.amazon.smithy.kotlin.codegen.rendering.smoketests.Param.SymbolProvider
1516
import software.amazon.smithy.kotlin.codegen.rendering.util.format
1617
import software.amazon.smithy.kotlin.codegen.utils.dq
1718
import software.amazon.smithy.kotlin.codegen.utils.topDownOperations
@@ -21,9 +22,9 @@ import software.amazon.smithy.model.shapes.*
2122
import software.amazon.smithy.smoketests.traits.SmokeTestsTrait
2223

2324
/**
24-
* Adds support for AWS specific client config and custom code generation to smoke tests.
25+
* Code generates AWS specific code for smoke test runners
2526
*/
26-
class SmokeTestAwsVendorParamsIntegration : KotlinIntegration {
27+
class AwsSmokeTestsRunnerGeneratorIntegration : KotlinIntegration {
2728
override fun enabledForService(model: Model, settings: KotlinSettings): Boolean =
2829
model.topDownOperations(settings.service).any { it.hasTrait<SmokeTestsTrait>() }
2930

@@ -49,61 +50,62 @@ private val parameterGenerator =
4950
val parameter = writer.getContextValue(Parameter)
5051
val shape = writer.getContextValue(ParamShape)
5152

52-
writer.write("#L", coerceParameterToModeledShape(parameter, shape, paramName))
53-
}
53+
val symbolProvider = writer.getContextValue(SymbolProvider)
5454

55-
fun coerceParameterToModeledShape(param: Node, customShape: Shape?, name: String): String {
56-
if (customShape == null) return param.format()
55+
coerceParameterToModeledShape(
56+
parameter,
57+
shape,
58+
paramName,
59+
writer,
60+
symbolProvider,
61+
)
62+
}
5763

58-
// TODO: Fill this out
64+
fun coerceParameterToModeledShape(
65+
param: Node,
66+
customShape: Shape?,
67+
name: String,
68+
writer: KotlinWriter,
69+
symbolProvider: SymbolProvider
70+
) {
71+
if (customShape == null || customShape.isCompatibleWithNodeTypes) {
72+
writer.write("#L", param.format())
73+
}
5974

60-
// TODO: Which ones need customization and which ones can I delegate down to `format` ?
6175
when (customShape) {
62-
is BigDecimalShape -> {
63-
if (param !is NumberNode)
76+
is DocumentShape -> {} // TODO: Unknown !
77+
is BlobShape -> {} // TODO: Unknown !
78+
is EnumShape -> {
79+
val enumSymbol = symbolProvider.toSymbol(customShape)
80+
val enumValue = param.asStringNode().get().value
81+
82+
writer.write("#T.#L", enumSymbol, enumValue)
6483
}
65-
is BigIntegerShape -> {}
66-
is BlobShape -> {}
67-
is BooleanShape -> {}
68-
is ByteShape -> {}
69-
is ListShape -> {}
70-
is CollectionShape -> {}
71-
is DocumentShape -> {}
72-
is DoubleShape -> {}
73-
is EntityShape -> {} // ??
74-
is EnumShape -> {}
75-
is FloatShape -> {}
76-
is IntEnumShape -> {}
77-
is IntegerShape -> {}
78-
is LongShape -> {}
79-
is MapShape -> {}
80-
is MemberShape -> {}
81-
is NumberShape -> {}
82-
is SetShape -> {}
83-
is ShortShape -> {}
84-
is StringShape -> {}
85-
is TimestampShape -> {}
86-
is UnionShape -> {}
84+
is MemberShape -> {} // TODO: Important !
85+
is TimestampShape -> {} // TODO: Unknown !
86+
is UnionShape -> {} // TODO: Important !
8787
else -> throw Exception("Code generation unsupported for smoke test operation parameter '$name' of type '$customShape'.")
8888
}
89+
}
8990

90-
// TODO: Remove. This is here for reference only.
91-
when (param) {
92-
is NullNode -> "null"
93-
is StringNode -> value.dq()
94-
is BooleanNode -> value.toString()
95-
is NumberNode -> value.toString()
96-
is ArrayNode -> elements.joinToString(",", "listOf(", ")") { element ->
97-
element.format()
98-
}
99-
is ObjectNode -> stringMap.entries.joinToString(", ", "mapOf(", ")") { (key, value) ->
100-
"${key.dq()} to ${value.format()}"
101-
}
102-
else -> throw Exception("Unexpected node type: $this")
91+
private val Shape.isCompatibleWithNodeTypes: Boolean
92+
get() = when (this) {
93+
is NumberShape, // TODO: Maybe not all numbers are okay?
94+
is MapShape,
95+
is StringShape,
96+
is BooleanShape, // TODO: One of these can actually be an enum.....
97+
is CollectionShape -> true
98+
99+
else -> false
103100
}
104101

105-
return ""
106-
}
102+
103+
104+
105+
106+
107+
108+
107109

108110

109111

codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ aws.sdk.kotlin.codegen.customization.s3.express.S3ExpressIntegration
4343
aws.sdk.kotlin.codegen.customization.s3.S3ExpiresIntegration
4444
aws.sdk.kotlin.codegen.BusinessMetricsIntegration
4545
aws.sdk.kotlin.codegen.smoketests.SmokeTestsDenyListIntegration
46-
aws.sdk.kotlin.codegen.smoketests.SmokeTestAwsVendorParamsIntegration
46+
aws.sdk.kotlin.codegen.smoketests.AwsSmokeTestsRunnerGeneratorIntegration
4747
aws.sdk.kotlin.codegen.smoketests.testing.SmokeTestSuccessHttpEngineIntegration
4848
aws.sdk.kotlin.codegen.smoketests.testing.SmokeTestFailHttpEngineIntegration
49+
aws.sdk.kotlin.codegen.customization.AwsQueryModeCustomization

0 commit comments

Comments
 (0)