Skip to content

Commit 685f44d

Browse files
authored
chore(clients): populate and resolve flexible checksums client config (#6471)
1 parent 8c6a2fb commit 685f44d

File tree

5 files changed

+55
-10
lines changed

5 files changed

+55
-10
lines changed

clients/client-s3/src/S3Client.ts

+18-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
// smithy-typescript generated code
22
import { getAddExpectContinuePlugin } from "@aws-sdk/middleware-expect-continue";
3+
import {
4+
FlexibleChecksumsInputConfig,
5+
FlexibleChecksumsResolvedConfig,
6+
resolveFlexibleChecksumsConfig,
7+
} from "@aws-sdk/middleware-flexible-checksums";
38
import {
49
getHostHeaderPlugin,
510
HostHeaderInputConfig,
@@ -729,6 +734,7 @@ export interface ClientDefaults extends Partial<__SmithyConfiguration<__HttpHand
729734
export type S3ClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> &
730735
ClientDefaults &
731736
UserAgentInputConfig &
737+
FlexibleChecksumsInputConfig &
732738
RetryInputConfig &
733739
RegionInputConfig &
734740
HostHeaderInputConfig &
@@ -751,6 +757,7 @@ export type S3ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHan
751757
Required<ClientDefaults> &
752758
RuntimeExtensionsConfig &
753759
UserAgentResolvedConfig &
760+
FlexibleChecksumsResolvedConfig &
754761
RetryResolvedConfig &
755762
RegionResolvedConfig &
756763
HostHeaderResolvedConfig &
@@ -785,16 +792,17 @@ export class S3Client extends __Client<
785792
const _config_0 = __getRuntimeConfig(configuration || {});
786793
const _config_1 = resolveClientEndpointParameters(_config_0);
787794
const _config_2 = resolveUserAgentConfig(_config_1);
788-
const _config_3 = resolveRetryConfig(_config_2);
789-
const _config_4 = resolveRegionConfig(_config_3);
790-
const _config_5 = resolveHostHeaderConfig(_config_4);
791-
const _config_6 = resolveEndpointConfig(_config_5);
792-
const _config_7 = resolveEventStreamSerdeConfig(_config_6);
793-
const _config_8 = resolveHttpAuthSchemeConfig(_config_7);
794-
const _config_9 = resolveS3Config(_config_8, { session: [() => this, CreateSessionCommand] });
795-
const _config_10 = resolveRuntimeExtensions(_config_9, configuration?.extensions || []);
796-
super(_config_10);
797-
this.config = _config_10;
795+
const _config_3 = resolveFlexibleChecksumsConfig(_config_2);
796+
const _config_4 = resolveRetryConfig(_config_3);
797+
const _config_5 = resolveRegionConfig(_config_4);
798+
const _config_6 = resolveHostHeaderConfig(_config_5);
799+
const _config_7 = resolveEndpointConfig(_config_6);
800+
const _config_8 = resolveEventStreamSerdeConfig(_config_7);
801+
const _config_9 = resolveHttpAuthSchemeConfig(_config_8);
802+
const _config_10 = resolveS3Config(_config_9, { session: [() => this, CreateSessionCommand] });
803+
const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);
804+
super(_config_11);
805+
this.config = _config_11;
798806
this.middlewareStack.use(getUserAgentPlugin(this.config));
799807
this.middlewareStack.use(getRetryPlugin(this.config));
800808
this.middlewareStack.use(getContentLengthPlugin(this.config));

clients/client-s3/src/runtimeConfig.ts

+8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import packageInfo from "../package.json"; // eslint-disable-line
55
import { NODE_SIGV4A_CONFIG_OPTIONS, emitWarningIfUnsupportedVersion as awsCheckVersion } from "@aws-sdk/core";
66
import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node";
77
import { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from "@aws-sdk/middleware-bucket-endpoint";
8+
import {
9+
NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,
10+
NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,
11+
} from "@aws-sdk/middleware-flexible-checksums";
812
import { NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS } from "@aws-sdk/middleware-sdk-s3";
913
import { ChecksumConstructor as __ChecksumConstructor, HashConstructor as __HashConstructor } from "@aws-sdk/types";
1014
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
@@ -53,7 +57,11 @@ export const getRuntimeConfig = (config: S3ClientConfig) => {
5357
maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
5458
md5: config?.md5 ?? Hash.bind(null, "md5"),
5559
region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS),
60+
requestChecksumCalculation:
61+
config?.requestChecksumCalculation ?? loadNodeConfig(NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS),
5662
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
63+
responseChecksumValidation:
64+
config?.responseChecksumValidation ?? loadNodeConfig(NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS),
5765
retryMode:
5866
config?.retryMode ??
5967
loadNodeConfig({

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

+22
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package software.amazon.smithy.aws.typescript.codegen;
1717

18+
import static software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin.Convention.HAS_CONFIG;
1819
import static software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin.Convention.HAS_MIDDLEWARE;
1920

2021
import java.util.Collections;
@@ -131,6 +132,22 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
131132
writer.addImport("ChecksumConstructor", "__ChecksumConstructor",
132133
TypeScriptDependency.AWS_SDK_TYPES);
133134
writer.write("Hash.bind(null, \"sha1\")");
135+
},
136+
"requestChecksumCalculation", writer -> {
137+
writer.addDependency(TypeScriptDependency.NODE_CONFIG_PROVIDER);
138+
writer.addImport("loadConfig", "loadNodeConfig",
139+
TypeScriptDependency.NODE_CONFIG_PROVIDER);
140+
writer.addImport("NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS", null,
141+
AwsDependency.FLEXIBLE_CHECKSUMS_MIDDLEWARE);
142+
writer.write("loadNodeConfig(NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS)");
143+
},
144+
"responseChecksumValidation", writer -> {
145+
writer.addDependency(TypeScriptDependency.NODE_CONFIG_PROVIDER);
146+
writer.addImport("loadConfig", "loadNodeConfig",
147+
TypeScriptDependency.NODE_CONFIG_PROVIDER);
148+
writer.addImport("NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS", null,
149+
AwsDependency.FLEXIBLE_CHECKSUMS_MIDDLEWARE);
150+
writer.write("loadNodeConfig(NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS)");
134151
}
135152
);
136153
case BROWSER:
@@ -160,6 +177,11 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
160177
@Override
161178
public List<RuntimeClientPlugin> getClientPlugins() {
162179
return ListUtils.of(
180+
RuntimeClientPlugin.builder()
181+
.withConventions(AwsDependency.FLEXIBLE_CHECKSUMS_MIDDLEWARE.dependency, "FlexibleChecksums",
182+
HAS_CONFIG)
183+
.servicePredicate((m, s) -> hasHttpChecksumTrait(m, s))
184+
.build(),
163185
RuntimeClientPlugin.builder()
164186
.withConventions(AwsDependency.FLEXIBLE_CHECKSUMS_MIDDLEWARE.dependency, "FlexibleChecksums",
165187
HAS_MIDDLEWARE)

private/aws-client-api-test/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"@aws-sdk/client-s3": "*",
2121
"@aws-sdk/credential-provider-node": "*",
2222
"@aws-sdk/middleware-bucket-endpoint": "*",
23+
"@aws-sdk/middleware-flexible-checksums": "*",
2324
"@aws-sdk/middleware-sdk-s3": "*",
2425
"@aws-sdk/signature-v4-multi-region": "*",
2526
"@aws-sdk/util-user-agent-node": "*",

private/aws-client-api-test/src/client-interface-tests/client-s3/impl/initializeWithMaximalConfiguration.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { S3Client, S3ClientConfigType } from "@aws-sdk/client-s3";
22
import { defaultProvider as credentialDefaultProvider, defaultProvider } from "@aws-sdk/credential-provider-node";
33
import { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from "@aws-sdk/middleware-bucket-endpoint";
4+
import {
5+
DEFAULT_REQUEST_CHECKSUM_CALCULATION,
6+
DEFAULT_RESPONSE_CHECKSUM_VALIDATION,
7+
} from "@aws-sdk/middleware-flexible-checksums";
48
import { S3ExpressIdentityProviderImpl } from "@aws-sdk/middleware-sdk-s3";
59
import { SignatureV4MultiRegion } from "@aws-sdk/signature-v4-multi-region";
610
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
@@ -122,6 +126,8 @@ export const initializeWithMaximalConfiguration = () => {
122126
signingEscapePath: false,
123127
bucketEndpoint: false,
124128
sigv4aSigningRegionSet: [],
129+
requestChecksumCalculation: DEFAULT_REQUEST_CHECKSUM_CALCULATION,
130+
responseChecksumValidation: DEFAULT_RESPONSE_CHECKSUM_VALIDATION,
125131
};
126132

127133
const s3 = new S3Client(config);

0 commit comments

Comments
 (0)