Skip to content

Commit 14d93f0

Browse files
authored
chore(codegen): awsAuthPlugin to set default signing name (#4259)
1 parent 0ca342d commit 14d93f0

File tree

1 file changed

+23
-0
lines changed
  • codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen

1 file changed

+23
-0
lines changed

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

+23
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
import java.util.Set;
2929
import java.util.function.BiConsumer;
3030
import java.util.function.Consumer;
31+
import java.util.logging.Logger;
32+
33+
import jdk.internal.net.http.common.Log;
3134
import software.amazon.smithy.aws.traits.ServiceTrait;
3235
import software.amazon.smithy.aws.traits.auth.SigV4Trait;
3336
import software.amazon.smithy.codegen.core.Symbol;
@@ -62,6 +65,8 @@ public final class AddAwsAuthPlugin implements TypeScriptIntegration {
6265
static final String ROLE_ASSUMERS_TEST_FILE = "defaultRoleAssumers.spec";
6366
static final String STS_ROLE_ASSUMERS_FILE = "defaultStsRoleAssumers";
6467

68+
private static final Logger LOGGER = Logger.getLogger(AddAwsAuthPlugin.class.getName());
69+
6570
@Override
6671
public void addConfigInterfaceFields(
6772
TypeScriptSettings settings,
@@ -70,6 +75,14 @@ public void addConfigInterfaceFields(
7075
TypeScriptWriter writer
7176
) {
7277
ServiceShape service = settings.getService(model);
78+
if (!isSigV4Service(service) && isAwsService(service)) {
79+
ServiceTrait serviceTrait = service.getTrait(ServiceTrait.class).get();
80+
settings.setDefaultSigningName(
81+
serviceTrait.getArnNamespace()
82+
);
83+
return;
84+
}
85+
7386
if (!isSigV4Service(service)) {
7487
return;
7588
}
@@ -85,6 +98,16 @@ public void addConfigInterfaceFields(
8598
+ "@internal");
8699
writer.write("credentialDefaultProvider?: (input: any) => __Provider<__Credentials>;\n");
87100
}
101+
102+
try {
103+
ServiceTrait serviceTrait = service.getTrait(ServiceTrait.class).get();
104+
settings.setDefaultSigningName(
105+
service.getTrait(SigV4Trait.class).map(SigV4Trait::getName)
106+
.orElse(serviceTrait.getArnNamespace())
107+
);
108+
} catch (Exception e) {
109+
LOGGER.warning("Unable to set service default signing name. A SigV4 or Service trait is needed.");
110+
}
88111
}
89112

90113
// Only one of AwsAuth or SigV4Auth should be used

0 commit comments

Comments
 (0)