Skip to content

Commit c7fdd8b

Browse files
authored
chore(middleware-flexible-checksums): add requestAlgorithmMemberHttpHeader (#6694)
1 parent 6c297b7 commit c7fdd8b

24 files changed

+40
-0
lines changed

clients/client-s3/src/commands/DeleteObjectsCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ export class DeleteObjectsCommand extends $Command
322322
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
323323
getFlexibleChecksumsPlugin(config, {
324324
requestAlgorithmMember: "ChecksumAlgorithm",
325+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
325326
requestChecksumRequired: true,
326327
}),
327328
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutBucketAccelerateConfigurationCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ export class PutBucketAccelerateConfigurationCommand extends $Command
124124
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
125125
getFlexibleChecksumsPlugin(config, {
126126
requestAlgorithmMember: "ChecksumAlgorithm",
127+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
127128
requestChecksumRequired: false,
128129
}),
129130
];

clients/client-s3/src/commands/PutBucketAclCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ export class PutBucketAclCommand extends $Command
315315
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
316316
getFlexibleChecksumsPlugin(config, {
317317
requestAlgorithmMember: "ChecksumAlgorithm",
318+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
318319
requestChecksumRequired: true,
319320
}),
320321
];

clients/client-s3/src/commands/PutBucketCorsCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export class PutBucketCorsCommand extends $Command
199199
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
200200
getFlexibleChecksumsPlugin(config, {
201201
requestAlgorithmMember: "ChecksumAlgorithm",
202+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
202203
requestChecksumRequired: true,
203204
}),
204205
];

clients/client-s3/src/commands/PutBucketEncryptionCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ export class PutBucketEncryptionCommand extends $Command
214214
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
215215
getFlexibleChecksumsPlugin(config, {
216216
requestAlgorithmMember: "ChecksumAlgorithm",
217+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
217218
requestChecksumRequired: true,
218219
}),
219220
];

clients/client-s3/src/commands/PutBucketLifecycleConfigurationCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ export class PutBucketLifecycleConfigurationCommand extends $Command
300300
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
301301
getFlexibleChecksumsPlugin(config, {
302302
requestAlgorithmMember: "ChecksumAlgorithm",
303+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
303304
requestChecksumRequired: true,
304305
}),
305306
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutBucketLoggingCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ export class PutBucketLoggingCommand extends $Command
215215
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
216216
getFlexibleChecksumsPlugin(config, {
217217
requestAlgorithmMember: "ChecksumAlgorithm",
218+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
218219
requestChecksumRequired: true,
219220
}),
220221
];

clients/client-s3/src/commands/PutBucketPolicyCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export class PutBucketPolicyCommand extends $Command
167167
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
168168
getFlexibleChecksumsPlugin(config, {
169169
requestAlgorithmMember: "ChecksumAlgorithm",
170+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
170171
requestChecksumRequired: true,
171172
}),
172173
];

clients/client-s3/src/commands/PutBucketReplicationCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ export class PutBucketReplicationCommand extends $Command
239239
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
240240
getFlexibleChecksumsPlugin(config, {
241241
requestAlgorithmMember: "ChecksumAlgorithm",
242+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
242243
requestChecksumRequired: true,
243244
}),
244245
];

clients/client-s3/src/commands/PutBucketRequestPaymentCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export class PutBucketRequestPaymentCommand extends $Command
115115
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
116116
getFlexibleChecksumsPlugin(config, {
117117
requestAlgorithmMember: "ChecksumAlgorithm",
118+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
118119
requestChecksumRequired: true,
119120
}),
120121
];

clients/client-s3/src/commands/PutBucketTaggingCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ export class PutBucketTaggingCommand extends $Command
169169
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
170170
getFlexibleChecksumsPlugin(config, {
171171
requestAlgorithmMember: "ChecksumAlgorithm",
172+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
172173
requestChecksumRequired: true,
173174
}),
174175
];

clients/client-s3/src/commands/PutBucketVersioningCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ export class PutBucketVersioningCommand extends $Command
149149
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
150150
getFlexibleChecksumsPlugin(config, {
151151
requestAlgorithmMember: "ChecksumAlgorithm",
152+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
152153
requestChecksumRequired: true,
153154
}),
154155
];

clients/client-s3/src/commands/PutBucketWebsiteCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ export class PutBucketWebsiteCommand extends $Command
250250
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
251251
getFlexibleChecksumsPlugin(config, {
252252
requestAlgorithmMember: "ChecksumAlgorithm",
253+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
253254
requestChecksumRequired: true,
254255
}),
255256
];

clients/client-s3/src/commands/PutObjectAclCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ export class PutObjectAclCommand extends $Command
314314
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
315315
getFlexibleChecksumsPlugin(config, {
316316
requestAlgorithmMember: "ChecksumAlgorithm",
317+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
317318
requestChecksumRequired: true,
318319
}),
319320
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutObjectCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,7 @@ export class PutObjectCommand extends $Command
463463
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
464464
getFlexibleChecksumsPlugin(config, {
465465
requestAlgorithmMember: "ChecksumAlgorithm",
466+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
466467
requestChecksumRequired: false,
467468
}),
468469
getCheckContentLengthHeaderPlugin(config),

clients/client-s3/src/commands/PutObjectLegalHoldCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export class PutObjectLegalHoldCommand extends $Command
9292
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
9393
getFlexibleChecksumsPlugin(config, {
9494
requestAlgorithmMember: "ChecksumAlgorithm",
95+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
9596
requestChecksumRequired: true,
9697
}),
9798
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutObjectLockConfigurationCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export class PutObjectLockConfigurationCommand extends $Command
115115
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
116116
getFlexibleChecksumsPlugin(config, {
117117
requestAlgorithmMember: "ChecksumAlgorithm",
118+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
118119
requestChecksumRequired: true,
119120
}),
120121
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutObjectRetentionCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export class PutObjectRetentionCommand extends $Command
9595
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
9696
getFlexibleChecksumsPlugin(config, {
9797
requestAlgorithmMember: "ChecksumAlgorithm",
98+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
9899
requestChecksumRequired: true,
99100
}),
100101
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutObjectTaggingCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ export class PutObjectTaggingCommand extends $Command
175175
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
176176
getFlexibleChecksumsPlugin(config, {
177177
requestAlgorithmMember: "ChecksumAlgorithm",
178+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
178179
requestChecksumRequired: true,
179180
}),
180181
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/PutPublicAccessBlockCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ export class PutPublicAccessBlockCommand extends $Command
123123
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
124124
getFlexibleChecksumsPlugin(config, {
125125
requestAlgorithmMember: "ChecksumAlgorithm",
126+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
126127
requestChecksumRequired: true,
127128
}),
128129
];

clients/client-s3/src/commands/RestoreObjectCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ export class RestoreObjectCommand extends $Command
389389
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
390390
getFlexibleChecksumsPlugin(config, {
391391
requestAlgorithmMember: "ChecksumAlgorithm",
392+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
392393
requestChecksumRequired: false,
393394
}),
394395
getThrow200ExceptionsPlugin(config),

clients/client-s3/src/commands/UploadPartCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ export class UploadPartCommand extends $Command
321321
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
322322
getFlexibleChecksumsPlugin(config, {
323323
requestAlgorithmMember: "ChecksumAlgorithm",
324+
requestAlgorithmMemberHttpHeader: "x-amz-sdk-checksum-algorithm",
324325
requestChecksumRequired: false,
325326
}),
326327
getThrow200ExceptionsPlugin(config),

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddHttpChecksumDependency.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@
2828
import software.amazon.smithy.codegen.core.SymbolProvider;
2929
import software.amazon.smithy.model.Model;
3030
import software.amazon.smithy.model.knowledge.TopDownIndex;
31+
import software.amazon.smithy.model.shapes.MemberShape;
3132
import software.amazon.smithy.model.shapes.OperationShape;
3233
import software.amazon.smithy.model.shapes.ServiceShape;
34+
import software.amazon.smithy.model.shapes.StructureShape;
35+
import software.amazon.smithy.model.traits.HttpHeaderTrait;
3336
import software.amazon.smithy.typescript.codegen.LanguageTarget;
3437
import software.amazon.smithy.typescript.codegen.TypeScriptDependency;
3538
import software.amazon.smithy.typescript.codegen.TypeScriptSettings;
@@ -201,6 +204,15 @@ private static Map<String, Object> getPluginFunctionParams(
201204
params.put("requestChecksumRequired", httpChecksumTrait.isRequestChecksumRequired());
202205
httpChecksumTrait.getRequestAlgorithmMember().ifPresent(requestAlgorithmMember -> {
203206
params.put("requestAlgorithmMember", requestAlgorithmMember);
207+
208+
// We know that input shape is structure, and contains requestAlgorithmMember.
209+
StructureShape inputShape = model.expectShape(operation.getInput().get(), StructureShape.class);
210+
MemberShape requestAlgorithmMemberShape = inputShape.getAllMembers().get(requestAlgorithmMember);
211+
212+
// Set requestAlgorithmMemberHttpHeader if HttpHeaderTrait is present.
213+
requestAlgorithmMemberShape.getTrait(HttpHeaderTrait.class).ifPresent(httpHeaderTrait -> {
214+
params.put("requestAlgorithmMemberHttpHeader", httpHeaderTrait.getValue());
215+
});
204216
});
205217
httpChecksumTrait.getRequestValidationModeMember().ifPresent(requestValidationModeMember -> {
206218
params.put("requestValidationModeMember", requestValidationModeMember);

packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ export interface FlexibleChecksumsRequestMiddlewareConfig {
3030
* Defines a top-level operation input member that is used to configure request checksum behavior.
3131
*/
3232
requestAlgorithmMember?: string;
33+
34+
/**
35+
* The {@link httpHeader} value for {@link requestAlgorithmMember}, if present.
36+
* {@link https://smithy.io/2.0/spec/http-bindings.html#httpheader-trait httpHeader}
37+
*/
38+
requestAlgorithmMemberHttpHeader?: string;
3339
}
3440

3541
export const flexibleChecksumsMiddlewareOptions: BuildHandlerOptions = {

0 commit comments

Comments
 (0)