Skip to content

Commit 98b7fc7

Browse files
Merge pull request #2760 from aws/staging/a5694233-9596-4ea9-b616-0ed7bfd36dba
Pull request: release <- staging/a5694233-9596-4ea9-b616-0ed7bfd36dba
2 parents ff44bb0 + 42e8b6c commit 98b7fc7

File tree

481 files changed

+3510
-1164
lines changed

Some content is hidden

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

481 files changed

+3510
-1164
lines changed

.changes/2.21.21.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"version": "2.21.21",
3+
"date": "2023-11-10",
4+
"entries": [
5+
{
6+
"type": "bugfix",
7+
"category": "Netty NIO HTTP Client",
8+
"contributor": "",
9+
"description": "Fix an issue where data received on a channel while it was idling was not handled until the channel was leased again for a request. This caused issues such as late notification of channel closes, manifesting as channels being closed at the beginning of a request."
10+
},
11+
{
12+
"type": "feature",
13+
"category": "AWS Control Tower",
14+
"contributor": "",
15+
"description": "AWS Control Tower supports tagging for enabled controls. This release introduces TagResource, UntagResource and ListTagsForResource APIs to manage tags in existing enabled controls. It updates EnabledControl API to tag resources at creation time."
16+
},
17+
{
18+
"type": "feature",
19+
"category": "AWS Cost and Usage Report Service",
20+
"contributor": "",
21+
"description": "This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not."
22+
},
23+
{
24+
"type": "feature",
25+
"category": "AWS Elemental MediaConvert",
26+
"contributor": "",
27+
"description": "This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content."
28+
},
29+
{
30+
"type": "feature",
31+
"category": "AWS Marketplace Entitlement Service",
32+
"contributor": "",
33+
"description": "Add paginators to GetEntitlements."
34+
},
35+
{
36+
"type": "feature",
37+
"category": "Amazon Elastic Compute Cloud",
38+
"contributor": "",
39+
"description": "EC2 adds API updates to enable ENA Express at instance launch time."
40+
},
41+
{
42+
"type": "feature",
43+
"category": "Amazon Relational Database Service",
44+
"contributor": "",
45+
"description": "Updates Amazon RDS documentation for zero-ETL integrations."
46+
},
47+
{
48+
"type": "feature",
49+
"category": "Amazon S3",
50+
"contributor": "anirudh9391",
51+
"description": "Create a plugin framework for Code-gen to consume plugins specified in customization.config and configure them on the client instance"
52+
},
53+
{
54+
"type": "feature",
55+
"category": "Firewall Management Service",
56+
"contributor": "",
57+
"description": "Adds optimizeUnassociatedWebACL flag to ManagedServiceData, updates third-party firewall examples, and other minor documentation updates."
58+
}
59+
]
60+
}

CHANGELOG.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
# __2.21.21__ __2023-11-10__
2+
## __AWS Control Tower__
3+
- ### Features
4+
- AWS Control Tower supports tagging for enabled controls. This release introduces TagResource, UntagResource and ListTagsForResource APIs to manage tags in existing enabled controls. It updates EnabledControl API to tag resources at creation time.
5+
6+
## __AWS Cost and Usage Report Service__
7+
- ### Features
8+
- This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not.
9+
10+
## __AWS Elemental MediaConvert__
11+
- ### Features
12+
- This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content.
13+
14+
## __AWS Marketplace Entitlement Service__
15+
- ### Features
16+
- Add paginators to GetEntitlements.
17+
18+
## __Amazon Elastic Compute Cloud__
19+
- ### Features
20+
- EC2 adds API updates to enable ENA Express at instance launch time.
21+
22+
## __Amazon Relational Database Service__
23+
- ### Features
24+
- Updates Amazon RDS documentation for zero-ETL integrations.
25+
26+
## __Amazon S3__
27+
- ### Features
28+
- Create a plugin framework for Code-gen to consume plugins specified in customization.config and configure them on the client instance
29+
- Contributed by: [@anirudh9391](https://github.com/anirudh9391)
30+
31+
## __Firewall Management Service__
32+
- ### Features
33+
- Adds optimizeUnassociatedWebACL flag to ManagedServiceData, updates third-party firewall examples, and other minor documentation updates.
34+
35+
## __Netty NIO HTTP Client__
36+
- ### Bugfixes
37+
- Fix an issue where data received on a channel while it was idling was not handled until the channel was leased again for a request. This caused issues such as late notification of channel closes, manifesting as channels being closed at the beginning of a request.
38+
39+
## __Contributors__
40+
Special thanks to the following contributors to this release:
41+
42+
[@anirudh9391](https://github.com/anirudh9391)
143
# __2.21.20__ __2023-11-09__
244
## __AWS CloudFormation__
345
- ### Features
@@ -1276,7 +1318,7 @@ Special thanks to the following contributors to this release:
12761318
## __Contributors__
12771319
Special thanks to the following contributors to this release:
12781320

1279-
[@psnilesh](https://github.com/psnilesh), [@faucct](https://github.com/faucct)
1321+
[@faucct](https://github.com/faucct), [@psnilesh](https://github.com/psnilesh)
12801322
# __2.20.146__ __2023-09-12__
12811323
## __AWS CRT-based S3 Client__
12821324
- ### Bugfixes
@@ -3017,7 +3059,7 @@ Special thanks to the following contributors to this release:
30173059
## __Contributors__
30183060
Special thanks to the following contributors to this release:
30193061

3020-
[@breader124](https://github.com/breader124), [@bmaizels](https://github.com/bmaizels)
3062+
[@bmaizels](https://github.com/bmaizels), [@breader124](https://github.com/breader124)
30213063
# __2.20.85__ __2023-06-13__
30223064
## __AWS CloudTrail__
30233065
- ### Features

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.21.20</version>
55+
<version>2.21.21</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.21.20</version>
89+
<version>2.21.21</version>
9090
</dependency>
9191
<dependency>
9292
<groupId>software.amazon.awssdk</groupId>
9393
<artifactId>s3</artifactId>
94-
<version>2.21.20</version>
94+
<version>2.21.21</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.21.20</version>
106+
<version>2.21.21</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.21.20</version>
23+
<version>2.21.21</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.21.20</version>
23+
<version>2.21.21</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.21.20</version>
23+
<version>2.21.21</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.21.20</version>
23+
<version>2.21.21</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.21.20</version>
20+
<version>2.21.21</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.21.20</version>
23+
<version>2.21.21</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.21.20</version>
20+
<version>2.21.21</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<artifactId>bom</artifactId>

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.21.20</version>
24+
<version>2.21.21</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.21.20</version>
25+
<version>2.21.21</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.21.20</version>
24+
<version>2.21.21</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.21.20</version>
25+
<version>2.21.21</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.21.20</version>
24+
<version>2.21.21</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>

codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public class CustomizationConfig {
208208
private UnderscoresInNameBehavior underscoresInNameBehavior;
209209

210210
private String userAgent;
211-
211+
212212
private RetryMode defaultRetryMode;
213213

214214
/**
@@ -259,6 +259,8 @@ public class CustomizationConfig {
259259

260260
private List<String> interceptors = new ArrayList<>();
261261

262+
private List<String> internalPlugins = new ArrayList<>();
263+
262264
/**
263265
* Whether marshallers perform validations against members marked with RequiredTrait.
264266
*/
@@ -698,7 +700,15 @@ public List<String> getInterceptors() {
698700
public void setInterceptors(List<String> interceptors) {
699701
this.interceptors = interceptors;
700702
}
701-
703+
704+
public List<String> getInternalPlugins() {
705+
return internalPlugins;
706+
}
707+
708+
public void setInternalPlugins(List<String> internalPlugins) {
709+
this.internalPlugins = internalPlugins;
710+
}
711+
702712
public boolean isRequiredTraitValidationEnabled() {
703713
return requiredTraitValidationEnabled;
704714
}

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

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public TypeSpec poetSpec() {
178178
builder.addMethod(setOverridesMethod());
179179
addServiceHttpConfigIfNeeded(builder, model);
180180
builder.addMethod(invokePluginsMethod());
181+
builder.addMethod(internalPluginsMethod());
181182
builder.addMethod(validateClientOptionsMethod());
182183

183184

@@ -721,15 +722,24 @@ private MethodSpec authSchemesMethod() {
721722

722723
private MethodSpec invokePluginsMethod() {
723724
MethodSpec.Builder builder = MethodSpec.methodBuilder("invokePlugins")
724-
.addAnnotation(Override.class)
725+
.addAnnotation(Override.class)
725726
.addModifiers(PROTECTED)
726727
.addParameter(SdkClientConfiguration.class, "config")
727728
.returns(SdkClientConfiguration.class);
728-
builder.addStatement("$T plugins = plugins()",
729+
730+
builder.addStatement("$T internalPlugins = internalPlugins()",
731+
ParameterizedTypeName.get(List.class, SdkPlugin.class));
732+
733+
builder.addStatement("$T externalPlugins = plugins()",
729734
ParameterizedTypeName.get(List.class, SdkPlugin.class))
730-
.beginControlFlow("if (plugins.isEmpty())")
735+
.beginControlFlow("if (internalPlugins.isEmpty() && externalPlugins.isEmpty())")
731736
.addStatement("return config")
732737
.endControlFlow();
738+
739+
builder.addStatement("$T plugins = $T.mergeLists(internalPlugins, externalPlugins)",
740+
ParameterizedTypeName.get(List.class, SdkPlugin.class),
741+
CollectionUtils.class);
742+
733743
builder.addStatement("$1T.BuilderInternal serviceConfigBuilder = $1T.builder(config.toBuilder())",
734744
configurationUtils.serviceClientConfigurationBuilderClassName());
735745
builder.addStatement("serviceConfigBuilder.overrideConfiguration(overrideConfiguration())");
@@ -741,6 +751,33 @@ private MethodSpec invokePluginsMethod() {
741751
return builder.build();
742752
}
743753

754+
private MethodSpec internalPluginsMethod() {
755+
756+
ParameterizedTypeName parameterizedTypeName = ParameterizedTypeName
757+
.get(ClassName.get(List.class), ClassName.get(SdkPlugin.class));
758+
759+
MethodSpec.Builder builder = MethodSpec.methodBuilder("internalPlugins")
760+
.addModifiers(PRIVATE)
761+
.returns(parameterizedTypeName);
762+
763+
builder.addStatement("$T internalPlugins = new $T<>()",
764+
ParameterizedTypeName.get(List.class, SdkPlugin.class),
765+
ArrayList.class);
766+
767+
List<ClassName> internalPlugins = new ArrayList<>();
768+
769+
for (String internalPlugin : model.getCustomizationConfig().getInternalPlugins()) {
770+
internalPlugins.add(ClassName.bestGuess(internalPlugin));
771+
}
772+
773+
for (ClassName internalPlugin : internalPlugins) {
774+
builder.addStatement("internalPlugins.add(new $T())", internalPlugin);
775+
}
776+
777+
builder.addStatement("return internalPlugins");
778+
return builder.build();
779+
}
780+
744781
private MethodSpec setOverridesMethod() {
745782
return MethodSpec.methodBuilder("setOverrides")
746783
.addModifiers(PROTECTED)

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,12 @@ protected SdkClientConfiguration setOverrides(SdkClientConfiguration configurati
132132

133133
@Override
134134
protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
135-
List<SdkPlugin> plugins = plugins();
136-
if (plugins.isEmpty()) {
135+
List<SdkPlugin> internalPlugins = internalPlugins();
136+
List<SdkPlugin> externalPlugins = plugins();
137+
if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) {
137138
return config;
138139
}
140+
List<SdkPlugin> plugins = CollectionUtils.mergeLists(internalPlugins, externalPlugins);
139141
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
140142
.builder(config.toBuilder());
141143
serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
@@ -146,6 +148,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
146148
return serviceConfigBuilder.buildSdkClientConfiguration();
147149
}
148150

151+
private List<SdkPlugin> internalPlugins() {
152+
List<SdkPlugin> internalPlugins = new ArrayList<>();
153+
return internalPlugins;
154+
}
155+
149156
protected static void validateClientOptions(SdkClientConfiguration c) {
150157
Validate.notNull(c.option(AwsClientOption.TOKEN_IDENTITY_PROVIDER),
151158
"The 'tokenProvider' must be configured in the client builder.");

0 commit comments

Comments
 (0)