Skip to content

Commit dde9703

Browse files
committed
chore(codegen): add config for fips and dualstack endpoints in clients
1 parent 7cc425d commit dde9703

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

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

+44-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
* made at most in case of retry.</li>
4040
* <li>retryMode: Specifies which retry algorithm to use.</li>
4141
* <li>logger: Optional logger for logging debug/info/warn/error.</li>
42+
* <li>useDualstackEndpoint: Enables IPv6/IPv4 dualstack endpoint.</li>
43+
* <li>useFipsEndpoint: Enables FIPS compatible endpoints.</li>
4244
* </ul>
4345
*
4446
* <p>This plugin adds the following Node runtime specific values:
@@ -47,15 +49,19 @@
4749
* <li>maxAttempts: Uses the default maxAttempts provider that checks things
4850
* like environment variables and the AWS config file.</li>
4951
* <li>retryMode: Specifies which retry algorithm to use.</li>
50-
* <li>logger: Sets to empty as logger is passed in client configuration</li>
52+
* <li>logger: Sets to empty as logger is passed in client configuration.</li>
53+
* <li>useDualstackEndpoint: Uses default useDualstackEndpoint provider.</li>
54+
* <li>useFipsEndpoint: Uses default useFipsEndpoint provider.</li>
5155
* </ul>
5256
*
5357
* <p>This plugin adds the following Browser runtime specific values:
5458
*
5559
* <ul>
5660
* <li>maxAttempts: Returns default value of 3.</li>
5761
* <li>retryMode: Provider which returns DEFAULT_RETRY_MODE.</li>
58-
* <li>logger: Sets to empty as logger is passed in client configuration</li>
62+
* <li>logger: Sets to empty as logger is passed in client configuration.</li>
63+
* <li>useDualstackEndpoint: Sets to false.</li>
64+
* <li>useFipsEndpoint: Sets to false.</li>
5965
* </ul>
6066
*/
6167
@SmithyInternalApi
@@ -77,6 +83,10 @@ public void addConfigInterfaceFields(
7783
.write("retryMode?: string | __Provider<string>;\n");
7884
writer.writeDocs("Optional logger for logging debug/info/warn/error.")
7985
.write("logger?: __Logger;\n");
86+
writer.writeDocs("Enables IPv6/IPv4 dualstack endpoint.")
87+
.write("useDualstackEndpoint?: boolean | __Provider<boolean>;\n");
88+
writer.writeDocs("Enables FIPS compatible endpoints.")
89+
.write("useFipsEndpoint?: boolean | __Provider<boolean>;\n");
8090
}
8191

8292
@Override
@@ -107,6 +117,18 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
107117
writer.addImport("DEFAULT_RETRY_MODE", "DEFAULT_RETRY_MODE",
108118
TypeScriptDependency.MIDDLEWARE_RETRY.packageName);
109119
writer.write("(() => Promise.resolve(DEFAULT_RETRY_MODE))");
120+
},
121+
"useDualstackEndpoint", writer -> {
122+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
123+
writer.addImport("DEFAULT_USE_DUALSTACK_ENDPOINT", "DEFAULT_USE_DUALSTACK_ENDPOINT",
124+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
125+
writer.write("(() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT))");
126+
},
127+
"useFipsEndpoint", writer -> {
128+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
129+
writer.addImport("DEFAULT_USE_FIPS_ENDPOINT", "DEFAULT_USE_FIPS_ENDPOINT",
130+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
131+
writer.write("(() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT))");
110132
}
111133
);
112134
case NODE:
@@ -127,6 +149,26 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
127149
writer.addImport("NODE_RETRY_MODE_CONFIG_OPTIONS", "NODE_RETRY_MODE_CONFIG_OPTIONS",
128150
TypeScriptDependency.MIDDLEWARE_RETRY.packageName);
129151
writer.write("loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS)");
152+
},
153+
"useDualstackEndpoint", writer -> {
154+
writer.addDependency(AwsDependency.NODE_CONFIG_PROVIDER);
155+
writer.addImport("loadConfig", "loadNodeConfig",
156+
AwsDependency.NODE_CONFIG_PROVIDER.packageName);
157+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
158+
writer.addImport("NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS",
159+
"NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS",
160+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
161+
writer.write("loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS)");
162+
},
163+
"useFipsEndpoint", writer -> {
164+
writer.addDependency(AwsDependency.NODE_CONFIG_PROVIDER);
165+
writer.addImport("loadConfig", "loadNodeConfig",
166+
AwsDependency.NODE_CONFIG_PROVIDER.packageName);
167+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
168+
writer.addImport("NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS",
169+
"NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS",
170+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
171+
writer.write("loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)");
130172
}
131173
);
132174
default:

0 commit comments

Comments
 (0)