28
28
import java .util .Set ;
29
29
import java .util .function .BiConsumer ;
30
30
import java .util .function .Consumer ;
31
+ import java .util .logging .Logger ;
32
+
33
+ import jdk .internal .net .http .common .Log ;
31
34
import software .amazon .smithy .aws .traits .ServiceTrait ;
32
35
import software .amazon .smithy .aws .traits .auth .SigV4Trait ;
33
36
import software .amazon .smithy .codegen .core .Symbol ;
@@ -62,6 +65,8 @@ public final class AddAwsAuthPlugin implements TypeScriptIntegration {
62
65
static final String ROLE_ASSUMERS_TEST_FILE = "defaultRoleAssumers.spec" ;
63
66
static final String STS_ROLE_ASSUMERS_FILE = "defaultStsRoleAssumers" ;
64
67
68
+ private static final Logger LOGGER = Logger .getLogger (AddAwsAuthPlugin .class .getName ());
69
+
65
70
@ Override
66
71
public void addConfigInterfaceFields (
67
72
TypeScriptSettings settings ,
@@ -70,6 +75,14 @@ public void addConfigInterfaceFields(
70
75
TypeScriptWriter writer
71
76
) {
72
77
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
+
73
86
if (!isSigV4Service (service )) {
74
87
return ;
75
88
}
@@ -85,6 +98,16 @@ public void addConfigInterfaceFields(
85
98
+ "@internal" );
86
99
writer .write ("credentialDefaultProvider?: (input: any) => __Provider<__Credentials>;\n " );
87
100
}
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
+ }
88
111
}
89
112
90
113
// Only one of AwsAuth or SigV4Auth should be used
0 commit comments