Skip to content

Commit a54f8c4

Browse files
authored
fix(client-cloudfront-keyvaluestore): use sigv4a signer by default (#5684)
1 parent a9e7da3 commit a54f8c4

File tree

4 files changed

+54
-0
lines changed

4 files changed

+54
-0
lines changed

clients/client-cloudfront-keyvaluestore/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"@aws-sdk/middleware-signing": "*",
3030
"@aws-sdk/middleware-user-agent": "*",
3131
"@aws-sdk/region-config-resolver": "*",
32+
"@aws-sdk/signature-v4-multi-region": "*",
3233
"@aws-sdk/types": "*",
3334
"@aws-sdk/util-endpoints": "*",
3435
"@aws-sdk/util-user-agent-browser": "*",

clients/client-cloudfront-keyvaluestore/src/runtimeConfig.shared.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// smithy-typescript generated code
2+
import { SignatureV4MultiRegion } from "@aws-sdk/signature-v4-multi-region";
23
import { NoOpLogger } from "@smithy/smithy-client";
34
import { parseUrl } from "@smithy/url-parser";
45
import { fromBase64, toBase64 } from "@smithy/util-base64";
@@ -20,6 +21,7 @@ export const getRuntimeConfig = (config: CloudFrontKeyValueStoreClientConfig) =>
2021
extensions: config?.extensions ?? [],
2122
logger: config?.logger ?? new NoOpLogger(),
2223
serviceId: config?.serviceId ?? "CloudFront KeyValueStore",
24+
signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,
2325
urlParser: config?.urlParser ?? parseUrl,
2426
utf8Decoder: config?.utf8Decoder ?? fromUtf8,
2527
utf8Encoder: config?.utf8Encoder ?? toUtf8,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package software.amazon.smithy.aws.typescript.codegen;
7+
8+
import java.util.Collections;
9+
import java.util.Map;
10+
import java.util.function.Consumer;
11+
import software.amazon.smithy.aws.traits.ServiceTrait;
12+
import software.amazon.smithy.codegen.core.SymbolProvider;
13+
import software.amazon.smithy.model.Model;
14+
import software.amazon.smithy.model.shapes.Shape;
15+
import software.amazon.smithy.typescript.codegen.LanguageTarget;
16+
import software.amazon.smithy.typescript.codegen.TypeScriptSettings;
17+
import software.amazon.smithy.typescript.codegen.TypeScriptWriter;
18+
import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration;
19+
import software.amazon.smithy.utils.MapUtils;
20+
import software.amazon.smithy.utils.SmithyInternalApi;
21+
22+
/**
23+
* Adds customizations for CloudFront KeyValueStore service.
24+
*/
25+
@SmithyInternalApi
26+
public final class AddCloudFrontKeyValueStorePlugin implements TypeScriptIntegration {
27+
public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(TypeScriptSettings settings, Model model,
28+
SymbolProvider symbolProvider, LanguageTarget target) {
29+
if (!testServiceId(settings.getService(model))) {
30+
return Collections.emptyMap();
31+
}
32+
switch (target) {
33+
case SHARED:
34+
return MapUtils.of("signerConstructor", writer -> {
35+
writer.addDependency(AwsDependency.SIGNATURE_V4_MULTIREGION)
36+
.addImport("SignatureV4MultiRegion", "SignatureV4MultiRegion",
37+
AwsDependency.SIGNATURE_V4_MULTIREGION)
38+
.write("SignatureV4MultiRegion");
39+
});
40+
default:
41+
return Collections.emptyMap();
42+
}
43+
}
44+
45+
private static boolean testServiceId(Shape serviceShape) {
46+
return serviceShape.getTrait(ServiceTrait.class)
47+
.map(ServiceTrait::getSdkId).orElse("")
48+
.equals("CloudFront KeyValueStore");
49+
}
50+
}

codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ software.amazon.smithy.aws.typescript.codegen.AddDocumentClientPlugin
2424
software.amazon.smithy.aws.typescript.codegen.AddEndpointDiscoveryPlugin
2525
software.amazon.smithy.aws.typescript.codegen.AddHttpChecksumDependency
2626
software.amazon.smithy.aws.typescript.codegen.AddEventBridgePlugin
27+
software.amazon.smithy.aws.typescript.codegen.AddCloudFrontKeyValueStorePlugin
2728
software.amazon.smithy.aws.typescript.codegen.auth.http.integration.AwsSdkCustomizeHttpBearerTokenAuth
2829
software.amazon.smithy.aws.typescript.codegen.auth.http.integration.SupportSigV4Auth
2930
software.amazon.smithy.aws.typescript.codegen.auth.http.integration.AwsSdkCustomizeSigV4Auth

0 commit comments

Comments
 (0)