Skip to content

Commit b1602d9

Browse files
authored
S3 Message Customization (#301)
Adding support for custom headers and custom query parameters to generated requests.
1 parent 64c8a09 commit b1602d9

File tree

7 files changed

+426
-113
lines changed

7 files changed

+426
-113
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,12 @@
256256
<version>4.13.1</version>
257257
<scope>test</scope>
258258
</dependency>
259+
<dependency>
260+
<groupId>org.mockito</groupId>
261+
<artifactId>mockito-all</artifactId>
262+
<version>1.10.19</version>
263+
<scope>test</scope>
264+
</dependency>
259265
</dependencies>
260266
<build>
261267
<resources>

s3-native-client/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ dependencies {
2727
implementation(project(":smithy-crt"))
2828
implementation(rootProject)
2929

30-
testImplementation(testFixtures(rootProject))
30+
testImplementation("org.mockito:mockito-all:1.10.19")
3131
testImplementation("junit:junit:4.13.1") //matches dependency as parent pom.xml
3232
}

s3-native-client/src/generated/java/com/amazonaws/s3/model/GetObjectRequest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.time.Instant;
1010
import java.util.Objects;
1111
import software.amazon.aws.sdk.crt.annotations.Generated;
12+
import software.amazon.awssdk.crt.http.HttpHeader;
1213

1314
@Generated("software.amazon.smithy.crt.java.StructureGenerator")
1415
public class GetObjectRequest {
@@ -128,6 +129,10 @@ public class GetObjectRequest {
128129
*/
129130
String expectedBucketOwner;
130131

132+
HttpHeader[] customHeaders;
133+
134+
String customQueryParameters;
135+
131136
GetObjectRequest() {
132137
this.bucket = "";
133138
this.ifMatch = "";
@@ -149,6 +154,8 @@ public class GetObjectRequest {
149154
this.requestPayer = null;
150155
this.partNumber = null;
151156
this.expectedBucketOwner = "";
157+
this.customHeaders = null;
158+
this.customQueryParameters = "";
152159
}
153160

154161
protected GetObjectRequest(BuilderImpl builder) {
@@ -172,6 +179,8 @@ protected GetObjectRequest(BuilderImpl builder) {
172179
this.requestPayer = builder.requestPayer;
173180
this.partNumber = builder.partNumber;
174181
this.expectedBucketOwner = builder.expectedBucketOwner;
182+
this.customHeaders = builder.customHeaders;
183+
this.customQueryParameters = builder.customQueryParameters;
175184
}
176185

177186
public Builder toBuilder() {
@@ -273,6 +282,14 @@ public String expectedBucketOwner() {
273282
return expectedBucketOwner;
274283
}
275284

285+
public HttpHeader[] customHeaders() {
286+
return customHeaders;
287+
}
288+
289+
public String customQueryParameters() {
290+
return customQueryParameters;
291+
}
292+
276293
public interface Builder {
277294
Builder bucket(String bucket);
278295

@@ -314,6 +331,10 @@ public interface Builder {
314331

315332
Builder expectedBucketOwner(String expectedBucketOwner);
316333

334+
Builder customHeaders(HttpHeader[] customHeaders);
335+
336+
Builder customQueryParameters(String customQueryParameters);
337+
317338
GetObjectRequest build();
318339
}
319340

@@ -434,6 +455,10 @@ protected static class BuilderImpl implements Builder {
434455
*/
435456
String expectedBucketOwner;
436457

458+
HttpHeader[] customHeaders;
459+
460+
String customQueryParameters;
461+
437462
protected BuilderImpl() {
438463
}
439464

@@ -458,6 +483,8 @@ private BuilderImpl(GetObjectRequest model) {
458483
requestPayer(model.requestPayer);
459484
partNumber(model.partNumber);
460485
expectedBucketOwner(model.expectedBucketOwner);
486+
customHeaders(model.customHeaders);
487+
customQueryParameters(model.customQueryParameters);
461488
}
462489

463490
public GetObjectRequest build() {
@@ -564,6 +591,16 @@ public final Builder expectedBucketOwner(String expectedBucketOwner) {
564591
return this;
565592
}
566593

594+
public final Builder customHeaders(HttpHeader[] customHeaders) {
595+
this.customHeaders = customHeaders;
596+
return this;
597+
}
598+
599+
public final Builder customQueryParameters(String customQueryParameters) {
600+
this.customQueryParameters = customQueryParameters;
601+
return this;
602+
}
603+
567604
@Override
568605
public int hashCode() {
569606
return Objects.hash(BuilderImpl.class);
@@ -654,5 +691,13 @@ public Integer partNumber() {
654691
public String expectedBucketOwner() {
655692
return expectedBucketOwner;
656693
}
694+
695+
public HttpHeader[] customHeaders() {
696+
return customHeaders;
697+
}
698+
699+
public String customQueryParameters() {
700+
return customQueryParameters;
701+
}
657702
}
658703
}

s3-native-client/src/generated/java/com/amazonaws/s3/model/PutObjectRequest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.Map;
1212
import java.util.Objects;
1313
import software.amazon.aws.sdk.crt.annotations.Generated;
14+
import software.amazon.awssdk.crt.http.HttpHeader;
1415

1516
@Generated("software.amazon.smithy.crt.java.StructureGenerator")
1617
public class PutObjectRequest {
@@ -237,6 +238,10 @@ public class PutObjectRequest {
237238
*/
238239
String expectedBucketOwner;
239240

241+
HttpHeader[] customHeaders;
242+
243+
String customQueryParameters;
244+
240245
PutObjectRequest() {
241246
this.aCL = null;
242247
this.body = null;
@@ -270,6 +275,8 @@ public class PutObjectRequest {
270275
this.objectLockRetainUntilDate = null;
271276
this.objectLockLegalHoldStatus = null;
272277
this.expectedBucketOwner = "";
278+
this.customHeaders = null;
279+
this.customQueryParameters = "";
273280
}
274281

275282
protected PutObjectRequest(BuilderImpl builder) {
@@ -305,6 +312,8 @@ protected PutObjectRequest(BuilderImpl builder) {
305312
this.objectLockRetainUntilDate = builder.objectLockRetainUntilDate;
306313
this.objectLockLegalHoldStatus = builder.objectLockLegalHoldStatus;
307314
this.expectedBucketOwner = builder.expectedBucketOwner;
315+
this.customHeaders = builder.customHeaders;
316+
this.customQueryParameters = builder.customQueryParameters;
308317
}
309318

310319
public Builder toBuilder() {
@@ -454,6 +463,14 @@ public String expectedBucketOwner() {
454463
return expectedBucketOwner;
455464
}
456465

466+
public HttpHeader[] customHeaders() {
467+
return customHeaders;
468+
}
469+
470+
public String customQueryParameters() {
471+
return customQueryParameters;
472+
}
473+
457474
public interface Builder {
458475
Builder aCL(ObjectCannedACL aCL);
459476

@@ -519,6 +536,10 @@ public interface Builder {
519536

520537
Builder expectedBucketOwner(String expectedBucketOwner);
521538

539+
Builder customHeaders(HttpHeader[] customHeaders);
540+
541+
Builder customQueryParameters(String customQueryParameters);
542+
522543
PutObjectRequest build();
523544
}
524545

@@ -746,6 +767,10 @@ protected static class BuilderImpl implements Builder {
746767
*/
747768
String expectedBucketOwner;
748769

770+
HttpHeader[] customHeaders;
771+
772+
String customQueryParameters;
773+
749774
protected BuilderImpl() {
750775
}
751776

@@ -782,6 +807,8 @@ private BuilderImpl(PutObjectRequest model) {
782807
objectLockRetainUntilDate(model.objectLockRetainUntilDate);
783808
objectLockLegalHoldStatus(model.objectLockLegalHoldStatus);
784809
expectedBucketOwner(model.expectedBucketOwner);
810+
customHeaders(model.customHeaders);
811+
customQueryParameters(model.customQueryParameters);
785812
}
786813

787814
public PutObjectRequest build() {
@@ -949,6 +976,16 @@ public final Builder expectedBucketOwner(String expectedBucketOwner) {
949976
return this;
950977
}
951978

979+
public final Builder customHeaders(HttpHeader[] customHeaders) {
980+
this.customHeaders = customHeaders;
981+
return this;
982+
}
983+
984+
public final Builder customQueryParameters(String customQueryParameters) {
985+
this.customQueryParameters = customQueryParameters;
986+
return this;
987+
}
988+
952989
@Override
953990
public int hashCode() {
954991
return Objects.hash(BuilderImpl.class);
@@ -1087,5 +1124,13 @@ public ObjectLockLegalHoldStatus objectLockLegalHoldStatus() {
10871124
public String expectedBucketOwner() {
10881125
return expectedBucketOwner;
10891126
}
1127+
1128+
public HttpHeader[] customHeaders() {
1129+
return customHeaders;
1130+
}
1131+
1132+
public String customQueryParameters() {
1133+
return customQueryParameters;
1134+
}
10901135
}
10911136
}

0 commit comments

Comments
 (0)