Skip to content

S3 Multipart API implementation #4224

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 319 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
ef1e51b
Release 2.20.82. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 8, 2023
751f50b
Update to next snapshot version: 2.20.83-SNAPSHOT
Jun 8, 2023
3982769
Fixed issue with leased connection leaks when threads executing HTTP …
joviegas Jun 9, 2023
70ddf66
Now it's possible to configure NettyNioAsyncHttpClient for non blocki…
martinKindall Jun 9, 2023
4d7a27c
Add "unsafe" AsyncRequestBody constructors for byte[] and ByteBuffers…
StephenFlavin Jun 9, 2023
8aa76b4
Amazon Connect Service Update: This release adds search APIs for Prom…
Jun 9, 2023
68795f5
AWS Certificate Manager Private Certificate Authority Update: Documen…
Jun 9, 2023
f4c2167
Release 2.20.83. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 9, 2023
ba40535
Update to next snapshot version: 2.20.84-SNAPSHOT
Jun 9, 2023
6ee2d0d
Use WeakHashMap in IdleConenctionReaper (#4087)
zoewangg Jun 9, 2023
42abc9d
Update S3IntegrationTestBase.java (#4079)
zoewangg Jun 9, 2023
86aeb36
Amazon Rekognition Update: This release adds support for improved acc…
Jun 12, 2023
06c969a
Amazon DynamoDB Update: Documentation updates for DynamoDB
Jun 12, 2023
406bc49
Amazon FSx Update: Amazon FSx for NetApp ONTAP now supports joining a…
Jun 12, 2023
d9d8273
Amazon SageMaker Service Update: Sagemaker Neo now supports compilati…
Jun 12, 2023
fd34dd0
AWS Amplify UI Builder Update: AWS Amplify UIBuilder is launching Cod…
Jun 12, 2023
4f0915a
Amazon OpenSearch Service Update: This release adds support for SkipU…
Jun 12, 2023
6292bdd
Amazon DynamoDB Streams Update: Documentation updates for DynamoDB St…
Jun 12, 2023
2791572
Updated endpoints.json and partitions.json.
Jun 12, 2023
1538652
Release 2.20.84. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 12, 2023
65def41
Update to next snapshot version: 2.20.85-SNAPSHOT
Jun 12, 2023
560785f
docs: add scrocquesel as a contributor for code (#4091)
allcontributors[bot] Jun 12, 2023
a7e35d9
AWS CloudTrail Update: This feature allows users to view dashboards f…
Jun 13, 2023
39d9202
AWS WAFV2 Update: You can now detect and block fraudulent account cre…
Jun 13, 2023
c160777
AWS Well-Architected Tool Update: AWS Well-Architected now supports P…
Jun 13, 2023
2b541b8
Amazon Lightsail Update: This release adds pagination for the Get Cer…
Jun 13, 2023
45472bf
Amazon Verified Permissions Update: GA release of Amazon Verified Per…
Jun 13, 2023
fcb0cf7
EC2 Image Builder Update: Change the Image Builder ImagePipeline date…
Jun 13, 2023
67ab557
Amazon CodeGuru Security Update: Initial release of Amazon CodeGuru S…
Jun 13, 2023
cd765b6
Amazon Simple Storage Service Update: Integrate double encryption fea…
Jun 13, 2023
82b54e3
Elastic Disaster Recovery Service Update: Added APIs to support netwo…
Jun 13, 2023
fee6014
AWS SimSpace Weaver Update: This release fixes using aws-us-gov ARNs …
Jun 13, 2023
a0ee7f9
AWS SecurityHub Update: Add support for Security Hub Automation Rules
Jun 13, 2023
f2c093c
Amazon Elastic Compute Cloud Update: This release introduces a new fe…
Jun 13, 2023
dd4752d
Updated endpoints.json and partitions.json.
Jun 13, 2023
e6b8bcc
Release 2.20.85. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 13, 2023
fd34311
Update to next snapshot version: 2.20.86-SNAPSHOT
Jun 13, 2023
825cde5
Create secondary indices based on table bean annotations (#3923) (#4004)
breader124 Jun 14, 2023
c5aca13
Add EnhancedType parameters to static builder methods of StaticTableS…
bmaizels Jun 14, 2023
b11ecf5
Amazon Elastic File System Update: Documentation updates for EFS.
Jun 15, 2023
ae5679e
Amazon GuardDuty Update: Updated descriptions for some APIs.
Jun 15, 2023
1c1632a
Amazon Location Service Update: Amazon Location Service adds categori…
Jun 15, 2023
ff36749
AWS Audit Manager Update: This release introduces 2 Audit Manager fea…
Jun 15, 2023
6b21cab
Updated endpoints.json and partitions.json.
Jun 15, 2023
c0285b2
Release 2.20.86. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 15, 2023
d7655f6
Update to next snapshot version: 2.20.87-SNAPSHOT
Jun 15, 2023
3239ac7
EnumAttributeConverter: enums can be identified by toString() or name…
martinKindall Jun 16, 2023
4483584
AWS Application Discovery Service Update: Add Amazon EC2 instance rec…
Jun 16, 2023
0e6fff9
AWS Account Update: Improve pagination support for ListRegions
Jun 16, 2023
51b70de
Amazon Simple Storage Service Update: This release adds SDK support f…
Jun 16, 2023
5d9e0ba
Amazon Connect Service Update: Updates the *InstanceStorageConfig API…
Jun 16, 2023
fe36755
AWS Identity and Access Management Update: Documentation updates for …
Jun 16, 2023
2099272
Release 2.20.87. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 16, 2023
4e90005
Update to next snapshot version: 2.20.88-SNAPSHOT
Jun 16, 2023
014a284
Fix the StackOverflowException in WaiterExecutor in case of large ret…
flittev Jun 16, 2023
bd84f34
Move checksum calculation from afterMarshalling to modifyHttpRequest …
davidh44 Jun 17, 2023
50a268f
docs: add dave-fn as a contributor for code (#4092)
allcontributors[bot] Jun 17, 2023
c9f4c79
Amazon Route 53 Domains Update: Update MaxItems upper bound to 1000 f…
Jun 19, 2023
a298681
Amazon EC2 Container Service Update: Documentation only update to add…
Jun 19, 2023
d83eb94
AWS CloudFormation Update: Specify desired CloudFormation behavior in…
Jun 19, 2023
6de4b23
AWS Price List Service Update: This release updates the PriceListArn …
Jun 19, 2023
8a45afd
AWS Glue Update: This release adds support for creating cross region …
Jun 19, 2023
b726e3b
Amazon Elastic Compute Cloud Update: API changes to AWS Verified Acce…
Jun 19, 2023
40c1f53
Amazon SageMaker Service Update: Amazon Sagemaker Autopilot releases …
Jun 19, 2023
ad82d40
Release 2.20.88. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 19, 2023
923742c
Update to next snapshot version: 2.20.89-SNAPSHOT
Jun 19, 2023
bbcd079
AWS Lambda Update: This release adds RecursiveInvocationException to …
Jun 20, 2023
48808f5
AWS Config Update: Updated ResourceType enum with new resource types …
Jun 20, 2023
c35be0c
Amazon Appflow Update: This release adds new API to reset connector m…
Jun 20, 2023
42aa7f7
Amazon Elastic Compute Cloud Update: Adds support for targeting Dedic…
Jun 20, 2023
e8bff70
Amazon Redshift Update: Added support for custom domain names for Red…
Jun 20, 2023
1da90fe
Updated endpoints.json and partitions.json.
Jun 20, 2023
34331ea
Release 2.20.89. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 20, 2023
c3083a4
Update to next snapshot version: 2.20.90-SNAPSHOT
Jun 20, 2023
ee2cd81
Move QueryParametersToBodyInterceptor to front of interceptor chain (…
davidh44 Jun 21, 2023
2b51968
AWS Elemental MediaConvert Update: This release introduces the bandwi…
Jun 21, 2023
2bc77e9
AmazonMQ Update: The Cross Region Disaster Recovery feature allows to…
Jun 21, 2023
b15dc72
Amazon EMR Update: This release introduces a new Amazon EMR EPI calle…
Jun 21, 2023
d211196
Amazon SageMaker Service Update: This release provides support in Sag…
Jun 21, 2023
ffbf8c7
AWS Transfer Family Update: This release adds a new parameter Structu…
Jun 21, 2023
b399d48
Inspector2 Update: This release adds support for Software Bill of Mat…
Jun 21, 2023
e8d8a84
Amazon DynamoDB Update: Documentation updates for DynamoDB
Jun 21, 2023
e357f22
Release 2.20.90. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 21, 2023
119cad0
Update to next snapshot version: 2.20.91-SNAPSHOT
Jun 21, 2023
4088b52
Change the scm url (#4061)
jensim Jun 21, 2023
65a7ba6
Fix flaky ProfileFileSupplier test (#4127)
dagnir Jun 21, 2023
08b189f
AWS Step Functions Update: Adds support for Versions and Aliases. Add…
Jun 22, 2023
28ed38d
Amazon Chime SDK Identity Update: AppInstanceBots can be configured t…
Jun 22, 2023
b88b1c7
Amazon Chime SDK Messaging Update: ChannelMessages can be made visibl…
Jun 22, 2023
9164e65
AWSKendraFrontendService Update: Introducing Amazon Kendra Retrieve A…
Jun 22, 2023
12d227f
Release 2.20.91. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 22, 2023
628c7f4
Update to next snapshot version: 2.20.92-SNAPSHOT
Jun 22, 2023
444e247
Upgrade CRT version (#4130)
joviegas Jun 22, 2023
715e66c
Amazon Relational Database Service Update: Documentation improvements…
Jun 23, 2023
be3568b
Amazon Verified Permissions Update: Added improved descriptions and n…
Jun 23, 2023
5e7b25b
Amazon DevOps Guru Update: This release adds support for encryption v…
Jun 23, 2023
c820131
Amazon FSx Update: Update to Amazon FSx documentation.
Jun 23, 2023
a63829d
Release 2.20.92. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 23, 2023
81d7929
Update to next snapshot version: 2.20.93-SNAPSHOT
Jun 23, 2023
7d95625
Amazon Pinpoint Update: Added time zone estimation support for journeys
Jun 26, 2023
3aa71c2
Amazon Connect Service Update: This release provides a way to search …
Jun 26, 2023
52c48db
AWS Glue Update: Timestamp Starting Position For Kinesis and Kafka Da…
Jun 26, 2023
bcabecf
AWS Identity and Access Management Update: Support for a new API "Get…
Jun 26, 2023
5db8c2d
Amazon GuardDuty Update: Add support for user.extra.sessionName in Ku…
Jun 26, 2023
df6b869
Release 2.20.93. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 26, 2023
cbde865
Update to next snapshot version: 2.20.94-SNAPSHOT
Jun 26, 2023
4a4db06
Add `StreamSpecification` to `CreateTableEnhancedRequest` (#4011)
acouvreur Jun 26, 2023
ccded28
Upgrade netty from 4.1.86 to 4.1.94 (#4133)
raphaelmatori Jun 27, 2023
c2728a0
Amazon SageMaker Feature Store Runtime Update: Introducing TTL for on…
Jun 27, 2023
78e9a30
EMR Serverless Update: This release adds support to update the releas…
Jun 27, 2023
bb61412
Amazon SageMaker Service Update: Introducing TTL for online store rec…
Jun 27, 2023
4bea342
Amazon Verified Permissions Update: This update fixes several broken …
Jun 27, 2023
bef6237
Amazon Macie 2 Update: This release adds support for configuring new …
Jun 27, 2023
e60e2a9
Amazon Appflow Update: This release adds support to bypass SSO with t…
Jun 27, 2023
25e7855
AWS Private 5G Update: This release allows Private5G customers to cho…
Jun 27, 2023
e478163
AppFabric Update: Initial release of AWS AppFabric for connecting Saa…
Jun 27, 2023
8610e56
Amazon Interactive Video Service Update: IVS customers can now revoke…
Jun 27, 2023
1addfea
Amazon Kinesis Video Streams Update: General Availability (GA) releas…
Jun 27, 2023
e54a234
Amazon Simple Systems Manager (SSM) Update: Systems Manager doc-only …
Jun 27, 2023
ec11a0e
Release 2.20.94. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 27, 2023
5ba7741
Revert "Move QueryParametersToBodyInterceptor to front of interceptor…
davidh44 Jun 27, 2023
39cf97e
Update to next snapshot version: 2.20.95-SNAPSHOT
Jun 27, 2023
4b6fcbc
Amazon Omics Update: Add Common Workflow Language (CWL) as a supporte…
Jun 28, 2023
11ab0f1
AWS Lambda Update: Surface ResourceConflictException in DeleteEventSo…
Jun 28, 2023
48fb07e
Amazon CloudWatch Internet Monitor Update: This release adds a new fe…
Jun 28, 2023
8cae98f
Amazon Relational Database Service Update: Amazon Relational Database…
Jun 28, 2023
a00be8b
Amazon Kinesis Analytics Update: Support for new runtime environment …
Jun 28, 2023
e3a0906
Amazon SageMaker Service Update: This release adds support for Model …
Jun 28, 2023
0bbaab4
Amazon Simple Storage Service Update: The S3 LISTObjects, ListObjects…
Jun 28, 2023
923ead6
Release 2.20.95. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 28, 2023
21d448b
Update to next snapshot version: 2.20.96-SNAPSHOT
Jun 28, 2023
cfa405e
Amazon Chime Update: The Amazon Chime SDK APIs in the Chime namespace…
Jun 29, 2023
a7ed664
Amazon AppStream Update: This release introduces app block builder, a…
Jun 29, 2023
699c1f1
Amazon DynamoDB Update: This release adds ReturnValuesOnConditionChec…
Jun 29, 2023
a606809
AWS Glue Update: This release adds support for AWS Glue Crawler with …
Jun 29, 2023
8e2d29b
AWS Clean Rooms Service Update: This release adds support for the OR …
Jun 29, 2023
f768da8
Amazon GameLift Update: Amazon GameLift now supports game builds that…
Jun 29, 2023
32f03fd
Amazon SageMaker Service Update: Adding support for timeseries foreca…
Jun 29, 2023
19f8c6a
Release 2.20.96. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 29, 2023
d01352d
Update to next snapshot version: 2.20.97-SNAPSHOT
Jun 29, 2023
5e1c05e
AWS Transfer Family Update: Add outbound Basic authentication support…
Jun 30, 2023
8930957
Amazon Prometheus Service Update: AWS SDK service model generation to…
Jun 30, 2023
6344b9d
Amazon SageMaker Service Update: This release adds support for rollin…
Jun 30, 2023
4d53a01
Amazon Verified Permissions Update: This release corrects several bro…
Jun 30, 2023
dff1144
AWS Elemental MediaConvert Update: This release includes improved col…
Jun 30, 2023
a519b76
Amazon EC2 Container Service Update: Added new field "credentialspecs…
Jun 30, 2023
258b799
Amazon Interactive Video Service Update: Corrects the HTTP response c…
Jun 30, 2023
2eee25c
Release 2.20.97. Updated CHANGELOG.md, README.md and all pom.xml.
Jun 30, 2023
8fd0025
Update to next snapshot version: 2.20.98-SNAPSHOT
Jun 30, 2023
08f46ee
AWS Batch Update: This feature allows customers to use AWS Batch with…
Jul 3, 2023
4b94050
Amazon SageMaker Service Update: SageMaker Inference Recommender now …
Jul 3, 2023
39f14d4
Updated endpoints.json and partitions.json.
Jul 3, 2023
a680087
Release 2.20.98. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 3, 2023
bba2caa
Update to next snapshot version: 2.20.99-SNAPSHOT
Jul 3, 2023
fb9525a
S3 Cross Region Client (#4132)
joviegas Jul 5, 2023
30f9fd8
AWS Comprehend Medical Update: Update to Amazon Comprehend Medical do…
Jul 5, 2023
a53e6da
Application Migration Service Update: This release introduces the Glo…
Jul 5, 2023
b1caf24
Amazon Connect Service Update: GetMetricDataV2 API: Channels filters …
Jul 5, 2023
fdfbc8e
AWS SecurityHub Update: Documentation updates for AWS Security Hub
Jul 5, 2023
d2d4be7
AWS Key Management Service Update: Added Dry Run Feature to cryptogra…
Jul 5, 2023
bb3cf49
Release 2.20.99. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 5, 2023
5d2f196
Update to next snapshot version: 2.20.100-SNAPSHOT
Jul 5, 2023
2fcee58
Fixed issue with SsoAccessTokenProvider prematurely throwing ExpiredT…
joviegas Jul 5, 2023
3ea4bc6
Amazon Location Service Update: This release adds support for authent…
Jul 6, 2023
006250e
AWS Outposts Update: Added paginator support to several APIs. Added t…
Jul 6, 2023
f8fd72c
Amazon QuickSight Update: This release includes below three changes: …
Jul 6, 2023
4192716
Amazon Elastic Compute Cloud Update: Add Nitro Enclaves support on De…
Jul 6, 2023
f805c0a
Amazon Relational Database Service Update: Updates Amazon RDS documen…
Jul 6, 2023
0659904
Updated endpoints.json and partitions.json.
Jul 6, 2023
668bf0b
Release 2.20.100. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 6, 2023
d269b7e
Update to next snapshot version: 2.20.101-SNAPSHOT
Jul 6, 2023
971e49f
Amazon CloudWatch Logs Update: Add CMK encryption support for CloudWa…
Jul 7, 2023
8da2e8f
AWS Glue Update: This release enables customers to create new Apache …
Jul 7, 2023
7b8de20
AWS Elemental MediaLive Update: This release enables the use of Thumb…
Jul 7, 2023
cee3e3f
AWS Database Migration Service Update: Releasing DMS Serverless. Addi…
Jul 7, 2023
01f84a4
AWS MediaTailor Update: The AWS Elemental MediaTailor SDK for Channel…
Jul 7, 2023
f192b8e
Updated endpoints.json and partitions.json.
Jul 7, 2023
b0021b9
Release 2.20.101. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 7, 2023
4fd79ee
Update to next snapshot version: 2.20.102-SNAPSHOT
Jul 7, 2023
dc1fd42
Enable zero-copy ByteBuffer publishing in AsyncRequestBody "unsafe" c…
StephenFlavin Jul 10, 2023
ad83769
Amazon Cognito Identity Provider Update: API model updated in Amazon …
Jul 11, 2023
6cc1f0f
Release 2.20.102. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 11, 2023
ecf6f8f
Update to next snapshot version: 2.20.103-SNAPSHOT
Jul 11, 2023
37f3430
docs: add StephenFlavin as a contributor for code (#4178)
allcontributors[bot] Jul 12, 2023
89f162f
added workflow for handling stale discussions (#4172)
khushail Jul 12, 2023
489ac04
Amazon SageMaker Service Update: Amazon SageMaker Canvas adds Workspe…
Jul 13, 2023
e3ff9d4
Amazon Connect Service Update: Add support for deleting Queues and Ro…
Jul 13, 2023
ecb1e58
AWS Database Migration Service Update: Enhanced PostgreSQL target end…
Jul 13, 2023
f35bd17
Amazon FSx Update: Amazon FSx for NetApp ONTAP now supports SnapLock,…
Jul 13, 2023
6ea6238
AWS Identity and Access Management Update: Documentation updates for …
Jul 13, 2023
3201653
Amazon Personalize Update: This release provides ability to customers…
Jul 13, 2023
382293d
Amazon Cognito Identity Provider Update: API model updated in Amazon …
Jul 13, 2023
966bff5
Amazon Simple Storage Service Update: S3 Inventory now supports Objec…
Jul 13, 2023
304f0b3
AWS Secrets Manager Update: Documentation updates for Secrets Manager
Jul 13, 2023
08d822a
AWS MediaTailor Update: Adds categories to MediaTailor channel assemb…
Jul 13, 2023
888e085
AWS Proton Update: This release adds support for deployment history f…
Jul 13, 2023
81baee4
Amazon Elastic Compute Cloud Update: This release adds support for th…
Jul 13, 2023
db1dd94
AWS DataSync Update: Added LunCount to the response object of Describ…
Jul 13, 2023
3c57585
Updated endpoints.json and partitions.json.
Jul 13, 2023
4d7beb3
Release 2.20.103. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 13, 2023
28c58e5
Update to next snapshot version: 2.20.104-SNAPSHOT
Jul 13, 2023
947f4ed
Update window using correct remaining() value (#4184)
dagnir Jul 13, 2023
4a447cc
Update crossRegionEnabled to take Boolean instead of boolean in the C…
zoewangg Jul 14, 2023
c7d4af6
Move request checksum interceptors to pipeline stages (#4174)
davidh44 Jul 17, 2023
a4a3953
Skip ci build on documentation changes (#4099)
StephenFlavin Jul 17, 2023
05537e1
AWS Glue Update: Adding new supported permission type flags to get-un…
Jul 17, 2023
06e4329
Amazon DocumentDB with MongoDB compatibility Update: Added major vers…
Jul 17, 2023
7899fc3
Amazon Interactive Video Service Update: This release provides the fl…
Jul 17, 2023
8c8eb6e
CodeArtifact Update: Doc only update for AWS CodeArtifact
Jul 17, 2023
6f78e3a
Amazon Elastic Compute Cloud Update: Add Nitro TPM support on Describ…
Jul 17, 2023
c281433
AWS Lake Formation Update: Adds supports for ReadOnlyAdmins and Allow…
Jul 17, 2023
bfe150e
Updated endpoints.json and partitions.json.
Jul 17, 2023
c7a4ec0
Release 2.20.104. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 17, 2023
de537cf
Update to next snapshot version: 2.20.105-SNAPSHOT
Jul 17, 2023
9d3316e
Improve logging around expired credentials (#4192)
L-Applin Jul 18, 2023
56d58bb
Added support for IamPolicy in new module software.amazon.awssdk:iam-…
millems Jul 18, 2023
14e809e
Fix parent pom version in iam-policy-builder. (#4200)
millems Jul 18, 2023
e1db768
Amazon Lex Model Building V2 Update: This release adds support for Le…
Jul 18, 2023
9ec3b25
Amazon Connect Service Update: GetMetricDataV2 API: Update to include…
Jul 18, 2023
3828c47
Amazon Import/Export Snowball Update: Adds support for RACK_5U_C. Thi…
Jul 18, 2023
f7b3920
Amazon Elasticsearch Service Update: Regex Validation on the ElasticS…
Jul 18, 2023
f366f67
AWSMainframeModernization Update: Allows UpdateEnvironment to update …
Jul 18, 2023
12fb225
Amazon CodeGuru Security Update: Documentation updates for CodeGuru S…
Jul 18, 2023
ef35e00
Amazon Translate Update: Added DOCX word document support to Translat…
Jul 18, 2023
9bcae5f
Updated endpoints.json and partitions.json.
Jul 18, 2023
b55f279
Release 2.20.105. Updated CHANGELOG.md, README.md and all pom.xml.
Jul 18, 2023
a042cce
Update to next snapshot version: 2.20.106-SNAPSHOT
Jul 18, 2023
cd791a3
Millem/web identity token file stale duration config (#4191)
L-Applin Jul 18, 2023
4730da8
Include IAM policy builder in test coverage reporting (#4202)
millems Jul 18, 2023
6ceca78
Include IAM policy builder in the SDK bundle. (#4201)
millems Jul 18, 2023
7810596
Include IAM policy builder in bom. (#4203)
millems Jul 18, 2023
54495c6
Add "unsafe" AsyncRequestBody constructors for byte[] and ByteBuffers…
StephenFlavin Jun 9, 2023
0031761
S3 Cross Region Client (#4132)
joviegas Jul 5, 2023
95bba3c
Multipart config
L-Applin Jul 19, 2023
5bfe4a5
Merge remote-tracking branch 'origin/feature/master/s3multipart' into…
L-Applin Jul 19, 2023
96b0b52
add multipartConfiguration to S3AsyncClientBuilder interface
L-Applin Jul 20, 2023
540841c
use custom clientContextParams to pass MultipartConfiguration to the …
L-Applin Jul 24, 2023
f586095
add default config constructor to MultipartS3AsyncClient
L-Applin Jul 24, 2023
06a0713
Merge remote-tracking branch 'origin/feature/master/s3multipart' into…
L-Applin Jul 24, 2023
b303583
remove has hasMultipartEnabledProperty
L-Applin Jul 24, 2023
1b49589
add javadoc to the multipartConfiguration method
L-Applin Jul 24, 2023
f5b50f7
javadoc
L-Applin Jul 25, 2023
9a83c9b
fix checkstyle
L-Applin Jul 25, 2023
b8f68b9
fix checkstyle
L-Applin Jul 25, 2023
42d1dda
fix todos
L-Applin Jul 25, 2023
2cf3a17
Use multipartConfiguration in S3 multipart integration test
L-Applin Jul 25, 2023
7f03028
add UserAgent for multipart client
L-Applin Jul 25, 2023
13d1dd9
surface area review changes
L-Applin Jul 26, 2023
8bf7f10
fix useragent unit-test
L-Applin Jul 26, 2023
9f8c427
fix checkstyle
L-Applin Jul 26, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changes/next-release/feature-AWSSDKforJavav2-5d806ad.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"type": "feature",
"category": "AWS SDK for Java v2",
"contributor": "StephenFlavin",
"description": "Add \"unsafe\" and \"fromRemaining\" AsyncRequestBody constructors for byte arrays and ByteBuffers"
}
Comment on lines +1 to +6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this in this PR?

Copy link
Contributor Author

@L-Applin L-Applin Jul 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

had to merge master branch to get ClientComposer/DelegateClient related classes

6 changes: 6 additions & 0 deletions .changes/next-release/feature-AWSSDKforJavav2-70eb163.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"type": "feature",
"category": "AWS SDK for Java v2",
"contributor": "",
"description": "Cross region bucket access for S3 Client. This feature will allow users to access buckets of different region using a single cross region configured client."
}
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,11 @@ public class CustomizationConfig {
*/
private String asyncClientDecorator;

/**
* Only for s3. A set of customization to related to multipart operations.
*/
private MultipartCustomization multipartCustomization;

/**
* Whether to skip generating endpoint tests from endpoint-tests.json
*/
Expand Down Expand Up @@ -665,4 +670,12 @@ public Map<String, ClientContextParam> getCustomClientContextParams() {
public void setCustomClientContextParams(Map<String, ClientContextParam> customClientContextParams) {
this.customClientContextParams = customClientContextParams;
}

public MultipartCustomization getMultipartCustomization() {
return this.multipartCustomization;
}

public void setMultipartCustomization(MultipartCustomization multipartCustomization) {
this.multipartCustomization = multipartCustomization;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

package software.amazon.awssdk.codegen.model.config.customization;

public class MultipartCustomization {
private String multipartConfigurationClass;
private String multipartConfigMethodDoc;
private String multipartEnableMethodDoc;

public String getMultipartConfigurationClass() {
return multipartConfigurationClass;
}

public void setMultipartConfigurationClass(String multipartConfigurationClass) {
this.multipartConfigurationClass = multipartConfigurationClass;
}

public String getMultipartConfigMethodDoc() {
return multipartConfigMethodDoc;
}

public void setMultipartConfigMethodDoc(String multipartMethodDoc) {
this.multipartConfigMethodDoc = multipartMethodDoc;
}

public String getMultipartEnableMethodDoc() {
return multipartEnableMethodDoc;
}

public void setMultipartEnableMethodDoc(String multipartEnableMethodDoc) {
this.multipartEnableMethodDoc = multipartEnableMethodDoc;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

package software.amazon.awssdk.codegen.model.config.customization;

import software.amazon.awssdk.utils.ToString;

public class ServiceConfig {
/**
* Specifies the name of the client configuration class to use if a service
Expand Down Expand Up @@ -112,4 +114,18 @@ public boolean hasAccelerateModeEnabledProperty() {
public void setHasAccelerateModeEnabledProperty(boolean hasAccelerateModeEnabledProperty) {
this.hasAccelerateModeEnabledProperty = hasAccelerateModeEnabledProperty;
}

@Override
public String toString() {
return ToString.builder("ServiceConfig")
.add("className", className)
.add("hasDualstackProperty", hasDualstackProperty)
.add("hasFipsProperty", hasFipsProperty)
.add("hasUseArnRegionProperty", hasUseArnRegionProperty)
.add("hasMultiRegionEnabledProperty", hasMultiRegionEnabledProperty)
.add("hasPathStyleAccessEnabledProperty", hasPathStyleAccessEnabledProperty)
.add("hasAccelerateModeEnabledProperty", hasAccelerateModeEnabledProperty)
.add("hasCrossRegionAccessEnabledProperty", hasCrossRegionAccessEnabledProperty)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import java.util.Collections;

/**
* Represents the a Poet generated class
* Represents a Poet generated class
*/
public interface ClassSpec {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@

import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.ParameterSpec;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeSpec;
import java.net.URI;
import javax.lang.model.element.Modifier;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider;
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
import software.amazon.awssdk.codegen.model.config.customization.MultipartCustomization;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.poet.ClassSpec;
import software.amazon.awssdk.codegen.poet.PoetExtension;
Expand Down Expand Up @@ -59,12 +61,12 @@ public AsyncClientBuilderClass(IntermediateModel model) {
@Override
public TypeSpec poetSpec() {
TypeSpec.Builder builder =
PoetUtils.createClassBuilder(builderClassName)
.addAnnotation(SdkInternalApi.class)
.addModifiers(Modifier.FINAL)
.superclass(ParameterizedTypeName.get(builderBaseClassName, builderInterfaceName, clientInterfaceName))
.addSuperinterface(builderInterfaceName)
.addJavadoc("Internal implementation of {@link $T}.", builderInterfaceName);
PoetUtils.createClassBuilder(builderClassName)
.addAnnotation(SdkInternalApi.class)
.addModifiers(Modifier.FINAL)
.superclass(ParameterizedTypeName.get(builderBaseClassName, builderInterfaceName, clientInterfaceName))
.addSuperinterface(builderInterfaceName)
.addJavadoc("Internal implementation of {@link $T}.", builderInterfaceName);

if (model.getEndpointOperation().isPresent()) {
builder.addMethod(endpointDiscoveryEnabled());
Expand All @@ -80,6 +82,12 @@ public TypeSpec poetSpec() {
builder.addMethod(bearerTokenProviderMethod());
}

MultipartCustomization multipartCustomization = model.getCustomizationConfig().getMultipartCustomization();
if (multipartCustomization != null) {
builder.addMethod(multipartEnabledMethod(multipartCustomization));
builder.addMethod(multipartConfigMethods(multipartCustomization));
}

builder.addMethod(buildClientMethod());
builder.addMethod(initializeServiceClientConfigMethod());

Expand Down Expand Up @@ -124,15 +132,15 @@ private MethodSpec endpointProviderMethod() {

private MethodSpec buildClientMethod() {
MethodSpec.Builder builder = MethodSpec.methodBuilder("buildClient")
.addAnnotation(Override.class)
.addModifiers(Modifier.PROTECTED, Modifier.FINAL)
.returns(clientInterfaceName)
.addStatement("$T clientConfiguration = super.asyncClientConfiguration()",
SdkClientConfiguration.class).addStatement("this.validateClientOptions"
+ "(clientConfiguration)")
.addStatement("$T serviceClientConfiguration = initializeServiceClientConfig"
+ "(clientConfiguration)",
serviceConfigClassName);
.addAnnotation(Override.class)
.addModifiers(Modifier.PROTECTED, Modifier.FINAL)
.returns(clientInterfaceName)
.addStatement("$T clientConfiguration = super.asyncClientConfiguration()",
SdkClientConfiguration.class)
.addStatement("this.validateClientOptions(clientConfiguration)")
.addStatement("$T serviceClientConfiguration = initializeServiceClientConfig"
+ "(clientConfiguration)",
serviceConfigClassName);

builder.addStatement("$1T client = new $2T(serviceClientConfiguration, clientConfiguration)",
clientInterfaceName, clientClassName);
Expand All @@ -156,6 +164,34 @@ private MethodSpec bearerTokenProviderMethod() {
.build();
}

private MethodSpec multipartEnabledMethod(MultipartCustomization multipartCustomization) {
ClassName mulitpartConfigClassName =
PoetUtils.classNameFromFqcn(multipartCustomization.getMultipartConfigurationClass());
return MethodSpec.methodBuilder("multipartEnabled")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(builderInterfaceName)
.addParameter(Boolean.class, "enabled")
.addStatement("clientContextParams.put($T.MULTIPART_ENABLED_KEY, enabled)",
mulitpartConfigClassName)
.addStatement("return this")
.build();
}

private MethodSpec multipartConfigMethods(MultipartCustomization multipartCustomization) {
ClassName mulitpartConfigClassName =
PoetUtils.classNameFromFqcn(multipartCustomization.getMultipartConfigurationClass());
return MethodSpec.methodBuilder("multipartConfiguration")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.addParameter(ParameterSpec.builder(mulitpartConfigClassName, "multipartConfig").build())
.returns(builderInterfaceName)
.addStatement("clientContextParams.put($T.MULTIPART_CONFIGURATION_KEY, multipartConfig)",
mulitpartConfigClassName)
.addStatement("return this")
.build();
}

private MethodSpec initializeServiceClientConfigMethod() {
return MethodSpec.methodBuilder("initializeServiceClientConfig").addModifiers(Modifier.PRIVATE)
.addParameter(SdkClientConfiguration.class, "clientConfig")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,97 @@

import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.CodeBlock;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.ParameterSpec;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeSpec;
import java.util.function.Consumer;
import javax.lang.model.element.Modifier;
import software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder;
import software.amazon.awssdk.codegen.model.config.customization.MultipartCustomization;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.poet.ClassSpec;
import software.amazon.awssdk.codegen.poet.PoetUtils;
import software.amazon.awssdk.utils.Logger;
import software.amazon.awssdk.utils.Validate;

public class AsyncClientBuilderInterface implements ClassSpec {
private static final Logger log = Logger.loggerFor(AsyncClientBuilderInterface.class);

private final ClassName builderInterfaceName;
private final ClassName clientInterfaceName;
private final ClassName baseBuilderInterfaceName;
private final IntermediateModel model;

public AsyncClientBuilderInterface(IntermediateModel model) {
String basePackage = model.getMetadata().getFullClientPackageName();
this.clientInterfaceName = ClassName.get(basePackage, model.getMetadata().getAsyncInterface());
this.builderInterfaceName = ClassName.get(basePackage, model.getMetadata().getAsyncBuilderInterface());
this.baseBuilderInterfaceName = ClassName.get(basePackage, model.getMetadata().getBaseBuilderInterface());
this.model = model;
}

@Override
public TypeSpec poetSpec() {
return PoetUtils.createInterfaceBuilder(builderInterfaceName)
.addSuperinterface(ParameterizedTypeName.get(ClassName.get(AwsAsyncClientBuilder.class),
builderInterfaceName, clientInterfaceName))
.addSuperinterface(ParameterizedTypeName.get(baseBuilderInterfaceName,
builderInterfaceName, clientInterfaceName))
.addJavadoc(getJavadoc())
.build();
TypeSpec.Builder builder = PoetUtils
.createInterfaceBuilder(builderInterfaceName)
.addSuperinterface(ParameterizedTypeName.get(ClassName.get(AwsAsyncClientBuilder.class),
builderInterfaceName, clientInterfaceName))
.addSuperinterface(ParameterizedTypeName.get(baseBuilderInterfaceName,
builderInterfaceName, clientInterfaceName))
.addJavadoc(getJavadoc());

MultipartCustomization multipartCustomization = model.getCustomizationConfig().getMultipartCustomization();
if (multipartCustomization != null) {
includeMultipartMethod(builder, multipartCustomization);
}
return builder.build();
}

private void includeMultipartMethod(TypeSpec.Builder builder, MultipartCustomization multipartCustomization) {
log.debug(() -> String.format("Adding multipart config methods to builder interface for service '%s'",
model.getMetadata().getServiceId()));

// .multipartEnabled(Boolean)
builder.addMethod(
MethodSpec.methodBuilder("multipartEnabled")
.addModifiers(Modifier.DEFAULT, Modifier.PUBLIC)
.returns(builderInterfaceName)
.addParameter(Boolean.class, "enabled")
.addCode("throw new $T();", UnsupportedOperationException.class)
.addJavadoc(CodeBlock.of(multipartCustomization.getMultipartEnableMethodDoc()))
.build());

// .multipartConfiguration(MultipartConfiguration)
String multiPartConfigMethodName = "multipartConfiguration";
String multipartConfigClass = Validate.notNull(multipartCustomization.getMultipartConfigurationClass(),
"'multipartConfigurationClass' must be defined");
ClassName mulitpartConfigClassName = PoetUtils.classNameFromFqcn(multipartConfigClass);
builder.addMethod(
MethodSpec.methodBuilder(multiPartConfigMethodName)
.addModifiers(Modifier.DEFAULT, Modifier.PUBLIC)
.returns(builderInterfaceName)
.addParameter(ParameterSpec.builder(mulitpartConfigClassName, "multipartConfiguration").build())
.addCode("throw new $T();", UnsupportedOperationException.class)
.addJavadoc(CodeBlock.of(multipartCustomization.getMultipartConfigMethodDoc()))
.build());

// .multipartConfiguration(Consumer<MultipartConfiguration>)
ClassName mulitpartConfigBuilderClassName = PoetUtils.classNameFromFqcn(multipartConfigClass + ".Builder");
ParameterizedTypeName consumerBuilderType = ParameterizedTypeName.get(ClassName.get(Consumer.class),
mulitpartConfigBuilderClassName);
builder.addMethod(
MethodSpec.methodBuilder(multiPartConfigMethodName)
.addModifiers(Modifier.DEFAULT, Modifier.PUBLIC)
.returns(builderInterfaceName)
.addParameter(ParameterSpec.builder(consumerBuilderType, "multipartConfiguration").build())
.addStatement("$T builder = $T.builder()",
mulitpartConfigBuilderClassName,
mulitpartConfigClassName)
.addStatement("multipartConfiguration.accept(builder)")
.addStatement("return multipartConfiguration(builder.build())")
.addJavadoc(CodeBlock.of(multipartCustomization.getMultipartConfigMethodDoc()))
.build());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ protected static void deleteBucketAndAllContents(String bucketName) {
S3TestUtils.deleteBucketAndAllContents(s3, bucketName);
}

private static class UserAgentVerifyingExecutionInterceptor implements ExecutionInterceptor {
protected static class UserAgentVerifyingExecutionInterceptor implements ExecutionInterceptor {

private final String clientName;
private final ClientType clientType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadLocalRandom;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
Expand Down
Loading