Skip to content

Commit 4c0949b

Browse files
Merge pull request #2864 from aws/staging/c5f1ee70-76c3-4f8b-812b-07c00e667a8b
Pull request: release <- staging/c5f1ee70-76c3-4f8b-812b-07c00e667a8b
2 parents 1b262a1 + f1121ce commit 4c0949b

File tree

473 files changed

+1316
-498
lines changed

Some content is hidden

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

473 files changed

+1316
-498
lines changed

.changes/2.23.7.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"version": "2.23.7",
3+
"date": "2024-01-19",
4+
"entries": [
5+
{
6+
"type": "feature",
7+
"category": "AWS CodeBuild",
8+
"contributor": "",
9+
"description": "Release CodeBuild Reserved Capacity feature"
10+
},
11+
{
12+
"type": "feature",
13+
"category": "AWS SDK for Java v2",
14+
"contributor": "anirudh9391",
15+
"description": "Allowing SDK plugins to read and modify S3's crossRegionEnabled and SQS's checksumValidationEnabled"
16+
},
17+
{
18+
"type": "feature",
19+
"category": "Amazon Athena",
20+
"contributor": "",
21+
"description": "Introducing new NotebookS3LocationUri parameter to Athena ImportNotebook API. Payload is no longer required and either Payload or NotebookS3LocationUri needs to be provided (not both) for a successful ImportNotebook API call. If both are provided, an InvalidRequestException will be thrown."
22+
},
23+
{
24+
"type": "feature",
25+
"category": "Amazon DynamoDB",
26+
"contributor": "",
27+
"description": "This release adds support for including ApproximateCreationDateTimePrecision configurations in EnableKinesisStreamingDestination API, adds the same as an optional field in the response of DescribeKinesisStreamingDestination, and adds support for a new UpdateKinesisStreamingDestination API."
28+
},
29+
{
30+
"type": "feature",
31+
"category": "Amazon Q Connect",
32+
"contributor": "",
33+
"description": "Increased Quick Response name max length to 100"
34+
},
35+
{
36+
"type": "feature",
37+
"category": "AWS SDK for Java v2",
38+
"contributor": "",
39+
"description": "Updated endpoint and partition metadata."
40+
}
41+
]
42+
}

CHANGELOG.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
# __2.23.7__ __2024-01-19__
2+
## __AWS CodeBuild__
3+
- ### Features
4+
- Release CodeBuild Reserved Capacity feature
5+
6+
## __AWS SDK for Java v2__
7+
- ### Features
8+
- Allowing SDK plugins to read and modify S3's crossRegionEnabled and SQS's checksumValidationEnabled
9+
- Contributed by: [@anirudh9391](https://github.com/anirudh9391)
10+
- Updated endpoint and partition metadata.
11+
12+
## __Amazon Athena__
13+
- ### Features
14+
- Introducing new NotebookS3LocationUri parameter to Athena ImportNotebook API. Payload is no longer required and either Payload or NotebookS3LocationUri needs to be provided (not both) for a successful ImportNotebook API call. If both are provided, an InvalidRequestException will be thrown.
15+
16+
## __Amazon DynamoDB__
17+
- ### Features
18+
- This release adds support for including ApproximateCreationDateTimePrecision configurations in EnableKinesisStreamingDestination API, adds the same as an optional field in the response of DescribeKinesisStreamingDestination, and adds support for a new UpdateKinesisStreamingDestination API.
19+
20+
## __Amazon Q Connect__
21+
- ### Features
22+
- Increased Quick Response name max length to 100
23+
24+
## __Contributors__
25+
Special thanks to the following contributors to this release:
26+
27+
[@anirudh9391](https://github.com/anirudh9391)
128
# __2.23.6__ __2024-01-18__
229
## __AWS B2B Data Interchange__
330
- ### Features
@@ -2863,7 +2890,7 @@ Special thanks to the following contributors to this release:
28632890
## __Contributors__
28642891
Special thanks to the following contributors to this release:
28652892

2866-
[@psnilesh](https://github.com/psnilesh), [@faucct](https://github.com/faucct)
2893+
[@faucct](https://github.com/faucct), [@psnilesh](https://github.com/psnilesh)
28672894
# __2.20.146__ __2023-09-12__
28682895
## __AWS CRT-based S3 Client__
28692896
- ### Bugfixes

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ To automatically manage module versions (currently all modules have the same ver
5252
<dependency>
5353
<groupId>software.amazon.awssdk</groupId>
5454
<artifactId>bom</artifactId>
55-
<version>2.23.6</version>
55+
<version>2.23.7</version>
5656
<type>pom</type>
5757
<scope>import</scope>
5858
</dependency>
@@ -86,12 +86,12 @@ Alternatively you can add dependencies for the specific services you use only:
8686
<dependency>
8787
<groupId>software.amazon.awssdk</groupId>
8888
<artifactId>ec2</artifactId>
89-
<version>2.23.6</version>
89+
<version>2.23.7</version>
9090
</dependency>
9191
<dependency>
9292
<groupId>software.amazon.awssdk</groupId>
9393
<artifactId>s3</artifactId>
94-
<version>2.23.6</version>
94+
<version>2.23.7</version>
9595
</dependency>
9696
```
9797

@@ -103,7 +103,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please
103103
<dependency>
104104
<groupId>software.amazon.awssdk</groupId>
105105
<artifactId>aws-sdk-java</artifactId>
106-
<version>2.23.6</version>
106+
<version>2.23.7</version>
107107
</dependency>
108108
```
109109

archetypes/archetype-app-quickstart/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.23.6</version>
23+
<version>2.23.7</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

archetypes/archetype-lambda/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.23.6</version>
23+
<version>2.23.7</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>archetype-lambda</artifactId>

archetypes/archetype-tools/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.23.6</version>
23+
<version>2.23.7</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

archetypes/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>aws-sdk-java-pom</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.23.6</version>
23+
<version>2.23.7</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>archetypes</artifactId>

aws-sdk-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.23.6</version>
20+
<version>2.23.7</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<artifactId>aws-sdk-java</artifactId>

bom-internal/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>aws-sdk-java-pom</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.23.6</version>
23+
<version>2.23.7</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.23.6</version>
20+
<version>2.23.7</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<artifactId>bom</artifactId>

bundle-logging-bridge/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.23.6</version>
24+
<version>2.23.7</version>
2525
</parent>
2626
<artifactId>bundle-logging-bridge</artifactId>
2727
<packaging>jar</packaging>

bundle-sdk/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.23.6</version>
24+
<version>2.23.7</version>
2525
</parent>
2626
<artifactId>bundle-sdk</artifactId>
2727
<packaging>jar</packaging>

bundle/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.23.6</version>
24+
<version>2.23.7</version>
2525
</parent>
2626
<artifactId>bundle</artifactId>
2727
<packaging>jar</packaging>

codegen-lite-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.23.6</version>
25+
<version>2.23.7</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-lite-maven-plugin</artifactId>

codegen-lite/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.23.6</version>
24+
<version>2.23.7</version>
2525
</parent>
2626
<artifactId>codegen-lite</artifactId>
2727
<name>AWS Java SDK :: Code Generator Lite</name>

codegen-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.23.6</version>
25+
<version>2.23.7</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-maven-plugin</artifactId>

codegen/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.23.6</version>
24+
<version>2.23.7</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ private MethodSpec buildClientMethod() {
138138
builder.addStatement("$1T client = new $2T(clientConfiguration)",
139139
clientInterfaceName, clientClassName);
140140
if (model.asyncClientDecoratorClassName().isPresent()) {
141-
builder.addStatement("return new $T().decorate(client, clientConfiguration, clientContextParams.copy().build())",
141+
builder.addStatement("return new $T().decorate(client, clientConfiguration)",
142142
PoetUtils.classNameFromFqcn(model.asyncClientDecoratorClassName().get()));
143143
} else {
144144
builder.addStatement("return client");

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private MethodSpec buildClientMethod() {
130130
builder.addStatement("$1T client = new $2T(clientConfiguration)",
131131
clientInterfaceName, clientClassName);
132132
if (model.syncClientDecoratorClassName().isPresent()) {
133-
builder.addStatement("return new $T().decorate(client, clientConfiguration, clientContextParams.copy().build())",
133+
builder.addStatement("return new $T().decorate(client, clientConfiguration)",
134134
PoetUtils.classNameFromFqcn(model.syncClientDecoratorClassName().get()));
135135
} else {
136136
builder.addStatement("return client");

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import java.util.ArrayList;
3535
import java.util.Collections;
3636
import java.util.List;
37+
import java.util.Map;
38+
import java.util.Objects;
3739
import java.util.concurrent.CompletableFuture;
3840
import java.util.stream.Collectors;
3941
import java.util.stream.Stream;
@@ -47,6 +49,7 @@
4749
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
4850
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
4951
import software.amazon.awssdk.codegen.model.intermediate.Protocol;
52+
import software.amazon.awssdk.codegen.model.service.ClientContextParam;
5053
import software.amazon.awssdk.codegen.poet.PoetExtension;
5154
import software.amazon.awssdk.codegen.poet.PoetUtils;
5255
import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils;
@@ -56,6 +59,7 @@
5659
import software.amazon.awssdk.codegen.poet.client.specs.QueryProtocolSpec;
5760
import software.amazon.awssdk.codegen.poet.client.specs.XmlProtocolSpec;
5861
import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils;
62+
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
5963
import software.amazon.awssdk.core.RequestOverrideConfiguration;
6064
import software.amazon.awssdk.core.SdkPlugin;
6165
import software.amazon.awssdk.core.SdkRequest;
@@ -69,8 +73,11 @@
6973
import software.amazon.awssdk.metrics.MetricCollector;
7074
import software.amazon.awssdk.metrics.MetricPublisher;
7175
import software.amazon.awssdk.metrics.NoOpMetricCollector;
76+
import software.amazon.awssdk.utils.AttributeMap;
77+
import software.amazon.awssdk.utils.CollectionUtils;
7278
import software.amazon.awssdk.utils.CompletableFutureUtils;
7379
import software.amazon.awssdk.utils.Logger;
80+
import software.amazon.awssdk.utils.Validate;
7481

7582
public class SyncClientClass extends SyncClientInterface {
7683

@@ -418,7 +425,7 @@ protected MethodSpec.Builder waiterOperationBody(MethodSpec.Builder builder) {
418425
poetExtensions.getSyncWaiterInterface());
419426
}
420427

421-
protected static MethodSpec updateSdkClientConfigurationMethod(
428+
protected MethodSpec updateSdkClientConfigurationMethod(
422429
TypeName serviceClientConfigurationBuilderClassName,
423430
boolean shouldAddClientReference) {
424431
MethodSpec.Builder builder = MethodSpec.methodBuilder("updateSdkClientConfiguration")
@@ -442,9 +449,34 @@ protected static MethodSpec updateSdkClientConfigurationMethod(
442449
.addStatement("$1T serviceConfigBuilder = new $1T(configuration)", serviceClientConfigurationBuilderClassName)
443450
.beginControlFlow("for ($T plugin : plugins)", SdkPlugin.class)
444451
.addStatement("plugin.configureClient(serviceConfigBuilder)")
445-
.endControlFlow()
446-
.addStatement("return configuration.build()");
452+
.endControlFlow();
453+
EndpointRulesSpecUtils endpointRulesSpecUtils = new EndpointRulesSpecUtils(this.model);
454+
455+
if (model.getCustomizationConfig() == null ||
456+
CollectionUtils.isNullOrEmpty(model.getCustomizationConfig().getCustomClientContextParams())) {
457+
builder.addStatement("return configuration.build()");
458+
return builder.build();
459+
}
460+
461+
Map<String, ClientContextParam> customClientConfigParams = model.getCustomizationConfig().getCustomClientContextParams();
462+
463+
builder.addCode("$1T newContextParams = configuration.option($2T.CLIENT_CONTEXT_PARAMS);\n"
464+
+ "$1T originalContextParams = clientConfiguration.option($2T.CLIENT_CONTEXT_PARAMS);",
465+
AttributeMap.class, SdkClientOption.class);
466+
467+
builder.addCode("newContextParams = (newContextParams != null) ? newContextParams : $1T.empty();\n"
468+
+ "originalContextParams = originalContextParams != null ? originalContextParams : $1T.empty();",
469+
AttributeMap.class);
470+
471+
customClientConfigParams.forEach((n, m) -> {
472+
String keyName = model.getNamingStrategy().getEnumValueName(n);
473+
builder.addStatement("$1T.validState($2T.equals(originalContextParams.get($3T.$4N), newContextParams.get($3T.$4N)),"
474+
+ " $5S)",
475+
Validate.class, Objects.class, endpointRulesSpecUtils.clientContextParamsName(), keyName,
476+
keyName + " cannot be modified by request level plugins");
477+
});
447478

479+
builder.addStatement("return configuration.build()");
448480
return builder.build();
449481
}
450482
}

0 commit comments

Comments
 (0)