Skip to content

Commit 644d5b4

Browse files
committed
Merge branch 'main' into feat-kotlin-2.2.0
2 parents 452e4ed + d78dd1c commit 644d5b4

File tree

24 files changed

+13689
-5489
lines changed

24 files changed

+13689
-5489
lines changed

.changes/91619ed5-0056-4f22-8863-8dd35b7a3c21.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

CHANGELOG.md

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

3+
## [1.4.115] - 06/27/2025
4+
5+
### Features
6+
* (**connect**) This release adds the following value to an InitiateAs enum: COMPLETED
7+
* (**glue**) AWS Glue now supports schema, partition and sort management of Apache Iceberg tables using Glue SDK
8+
* (**guardduty**) Update JSON target for Kubernetes workload resource type.
9+
* (**qconnect**) Adding UnauthorizedException to public SDK
10+
* (**rds**) StartDBCluster and StopDBCluster can now throw InvalidDBShardGroupStateFault.
11+
* (**sesv2**) Added support for new SES regions
12+
13+
### Documentation
14+
* (**configservice**) Added important considerations to the PutConformancePack and PutOrganizationConformancPack APIs.
15+
16+
## [1.4.114] - 06/26/2025
17+
18+
### Features
19+
* (**deadline**) Added fields to track cumulative task retry attempts for steps and jobs
20+
* (**ec2**) This release adds support for OdbNetworkArn as a target in VPC Route Tables
21+
* (**iotmanagedintegrations**) Adding managed integrations APIs for IoT Device Management to onboard and control devices across different manufacturers, connectivity protocols and third party vendor clouds. APIs include managed thing operations, provisioning profile management, and cloud connector operations.
22+
* (**keyspaces**) This release provides change data capture (CDC) streams support through updates to the Amazon Keyspaces API.
23+
* (**keyspacesstreams**) This release adds change data capture (CDC) streams support through the new Amazon Keyspaces Streams API.
24+
* (**qbusiness**) Added support for App level authentication for QBusiness DataAccessor using AWS IAM Identity center Trusted Token issuer
25+
* (**workspaces**) Updated modifyStreamingProperties to support PrivateLink VPC endpoints for directories
26+
27+
### Fixes
28+
* [#1626](https://github.com/awslabs/aws-sdk-kotlin/issues/1626) improve retry policies for ECS and IMDS credentials to handle common network errors
29+
* [#1295](https://github.com/smithy-lang/smithy-kotlin/issues/1295) Enable building this project on JDK21 by setting -Xjdk-release flag
30+
31+
### Documentation
32+
* (**kms**) This release updates AWS CLI examples for KMS APIs.
33+
334
## [1.4.113] - 06/25/2025
435

536
### Features

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/EcsCredentialsProvider.kt

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@ import aws.smithy.kotlin.runtime.io.closeIfCloseable
2525
import aws.smithy.kotlin.runtime.net.*
2626
import aws.smithy.kotlin.runtime.net.url.Url
2727
import aws.smithy.kotlin.runtime.operation.ExecutionContext
28-
import aws.smithy.kotlin.runtime.retries.policy.RetryDirective
29-
import aws.smithy.kotlin.runtime.retries.policy.RetryErrorType
30-
import aws.smithy.kotlin.runtime.retries.policy.RetryPolicy
3128
import aws.smithy.kotlin.runtime.serde.json.JsonDeserializer
3229
import aws.smithy.kotlin.runtime.telemetry.logging.logger
3330
import aws.smithy.kotlin.runtime.time.TimestampFormat
@@ -97,8 +94,6 @@ public class EcsCredentialsProvider(
9794
execution.endpointResolver = EndpointResolver { Endpoint(url) }
9895
}
9996

100-
op.execution.retryPolicy = EcsCredentialsRetryPolicy()
101-
10297
logger.debug { "retrieving container credentials" }
10398
val client = SdkHttpClient(httpClient)
10499
val creds = try {
@@ -260,22 +255,6 @@ private class EcsCredentialsSerializer(
260255
}
261256
}
262257

263-
internal class EcsCredentialsRetryPolicy : RetryPolicy<Any?> {
264-
override fun evaluate(result: Result<Any?>): RetryDirective = when {
265-
result.isSuccess -> RetryDirective.TerminateAndSucceed
266-
else -> evaluate(result.exceptionOrNull()!!)
267-
}
268-
269-
private fun evaluate(throwable: Throwable): RetryDirective = when (throwable) {
270-
is CredentialsProviderException -> when {
271-
throwable.sdkErrorMetadata.isThrottling -> RetryDirective.RetryError(RetryErrorType.Throttling)
272-
throwable.sdkErrorMetadata.isRetryable -> RetryDirective.RetryError(RetryErrorType.ServerSide)
273-
else -> RetryDirective.TerminateAndFail
274-
}
275-
else -> RetryDirective.TerminateAndFail
276-
}
277-
}
278-
279258
private val ecsV4Addr = IpV4Addr(169u, 254u, 170u, 2u)
280259

281260
private val eksV4Addr = IpV4Addr(169u, 254u, 170u, 23u)

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsRetryPolicy.kt

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,25 @@ import aws.smithy.kotlin.runtime.http.HttpStatusCode
99
import aws.smithy.kotlin.runtime.http.category
1010
import aws.smithy.kotlin.runtime.retries.policy.RetryDirective
1111
import aws.smithy.kotlin.runtime.retries.policy.RetryErrorType
12-
import aws.smithy.kotlin.runtime.retries.policy.RetryPolicy
12+
import aws.smithy.kotlin.runtime.retries.policy.StandardRetryPolicy
1313
import aws.smithy.kotlin.runtime.telemetry.logging.logger
1414
import kotlin.coroutines.CoroutineContext
1515

16-
internal class ImdsRetryPolicy(
17-
private val callContext: CoroutineContext,
18-
) : RetryPolicy<Any?> {
19-
override fun evaluate(result: Result<Any?>): RetryDirective = when {
20-
result.isSuccess -> RetryDirective.TerminateAndSucceed
21-
else -> evaluate(result.exceptionOrNull()!!)
22-
}
23-
24-
private fun evaluate(throwable: Throwable): RetryDirective = when (throwable) {
16+
internal class ImdsRetryPolicy(private val callContext: CoroutineContext) : StandardRetryPolicy() {
17+
override fun evaluateSpecificExceptions(ex: Throwable) = when (ex) {
2518
is EC2MetadataError -> {
26-
val status = throwable.status
19+
val status = ex.status
2720
when {
2821
status.category() == HttpStatusCode.Category.SERVER_ERROR -> RetryDirective.RetryError(RetryErrorType.ServerSide)
2922
// 401 indicates the token has expired, this is retryable
3023
status == HttpStatusCode.Unauthorized -> RetryDirective.RetryError(RetryErrorType.ServerSide)
3124
else -> {
3225
val logger = callContext.logger<ImdsRetryPolicy>()
33-
logger.debug { "Non retryable IMDS error: statusCode=$status; ${throwable.message}" }
34-
RetryDirective.TerminateAndFail
26+
logger.debug { "IMDS error: statusCode=$status; ${ex.message}" }
27+
null
3528
}
3629
}
3730
}
38-
else -> RetryDirective.TerminateAndFail
31+
else -> null
3932
}
4033
}

build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ dependencies {
7878
}
7979

8080
// Publishing
81-
configureNexus()
81+
configureNexus(
82+
nexusUrl = "https://aws.oss.sonatype.org/service/local/",
83+
snapshotRepositoryUrl = "https://aws.oss.sonatype.org/content/repositories/snapshots/",
84+
)
8285

8386
// Code Style
8487
val lintPaths = listOf(

codegen/aws-sdk-codegen/src/main/resources/aws/sdk/kotlin/codegen/endpoints.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6639,6 +6639,9 @@
66396639
"connect-campaigns" : {
66406640
"endpoints" : {
66416641
"af-south-1" : { },
6642+
"ap-northeast-1" : { },
6643+
"ap-northeast-2" : { },
6644+
"ap-southeast-1" : { },
66426645
"ap-southeast-2" : { },
66436646
"ca-central-1" : { },
66446647
"eu-central-1" : { },
@@ -10042,6 +10045,7 @@
1004210045
"ap-northeast-2" : { },
1004310046
"ap-northeast-3" : { },
1004410047
"ap-south-1" : { },
10048+
"ap-south-2" : { },
1004510049
"ap-southeast-1" : { },
1004610050
"ap-southeast-2" : { },
1004710051
"ap-southeast-3" : { },
@@ -10052,6 +10056,7 @@
1005210056
} ]
1005310057
},
1005410058
"eu-central-1" : { },
10059+
"eu-central-2" : { },
1005510060
"eu-north-1" : { },
1005610061
"eu-south-1" : { },
1005710062
"eu-west-1" : { },
@@ -10093,6 +10098,7 @@
1009310098
"hostname" : "email-fips.us-west-2.amazonaws.com"
1009410099
},
1009510100
"il-central-1" : { },
10101+
"me-central-1" : { },
1009610102
"me-south-1" : { },
1009710103
"sa-east-1" : { },
1009810104
"us-east-1" : {
@@ -11716,6 +11722,8 @@
1171611722
"ap-south-1" : { },
1171711723
"ap-southeast-1" : { },
1171811724
"ap-southeast-2" : { },
11725+
"ap-southeast-5" : { },
11726+
"ap-southeast-7" : { },
1171911727
"ca-central-1" : { },
1172011728
"eu-central-1" : { },
1172111729
"eu-north-1" : { },
@@ -36650,6 +36658,12 @@
3665036658
"us-iso-west-1" : { }
3665136659
}
3665236660
},
36661+
"backup" : {
36662+
"endpoints" : {
36663+
"us-iso-east-1" : { },
36664+
"us-iso-west-1" : { }
36665+
}
36666+
},
3665336667
"batch" : {
3665436668
"endpoints" : {
3665536669
"us-iso-east-1" : { }
@@ -37208,6 +37222,11 @@
3720837222
}
3720937223
}
3721037224
},
37225+
"lakeformation" : {
37226+
"endpoints" : {
37227+
"us-iso-east-1" : { }
37228+
}
37229+
},
3721137230
"lambda" : {
3721237231
"endpoints" : {
3721337232
"us-iso-east-1" : { },
@@ -37897,6 +37916,11 @@
3789737916
"us-isob-east-1" : { }
3789837917
}
3789937918
},
37919+
"backup" : {
37920+
"endpoints" : {
37921+
"us-isob-east-1" : { }
37922+
}
37923+
},
3790037924
"batch" : {
3790137925
"endpoints" : {
3790237926
"us-isob-east-1" : { }
@@ -39109,6 +39133,11 @@
3910939133
"eu-isoe-west-1" : { }
3911039134
}
3911139135
},
39136+
"schemas" : {
39137+
"endpoints" : {
39138+
"eu-isoe-west-1" : { }
39139+
}
39140+
},
3911239141
"secretsmanager" : {
3911339142
"endpoints" : {
3911439143
"eu-isoe-west-1" : { }

0 commit comments

Comments
 (0)