Skip to content

Commit 8edf05f

Browse files
committed
chore(codegen): add useFipsEndpoint in clients
1 parent b5dba54 commit 8edf05f

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
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>useFipsEndpoint: Enables FIPS compatible endpoints, if available.</li>
4243
* </ul>
4344
*
4445
* <p>This plugin adds the following Node runtime specific values:
@@ -47,15 +48,17 @@
4748
* <li>maxAttempts: Uses the default maxAttempts provider that checks things
4849
* like environment variables and the AWS config file.</li>
4950
* <li>retryMode: Specifies which retry algorithm to use.</li>
50-
* <li>logger: Sets to empty as logger is passed in client configuration</li>
51+
* <li>logger: Sets to empty as logger is passed in client configuration.</li>
52+
* <li>useFipsEndpoint: Uses default useFipsEndpoint provider.</li>
5153
* </ul>
5254
*
5355
* <p>This plugin adds the following Browser runtime specific values:
5456
*
5557
* <ul>
5658
* <li>maxAttempts: Returns default value of 3.</li>
5759
* <li>retryMode: Provider which returns DEFAULT_RETRY_MODE.</li>
58-
* <li>logger: Sets to empty as logger is passed in client configuration</li>
60+
* <li>logger: Sets to empty as logger is passed in client configuration.</li>
61+
* <li>useFipsEndpoint: Sets to false.</li>
5962
* </ul>
6063
*/
6164
@SmithyInternalApi
@@ -77,6 +80,8 @@ public void addConfigInterfaceFields(
7780
.write("retryMode?: string | __Provider<string>;\n");
7881
writer.writeDocs("Optional logger for logging debug/info/warn/error.")
7982
.write("logger?: __Logger;\n");
83+
writer.writeDocs("Enables FIPS compatible endpoints, if available.")
84+
.write("useFipsEndpoint?: boolean | __Provider<boolean>;\n");
8085
}
8186

8287
@Override
@@ -107,6 +112,12 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
107112
writer.addImport("DEFAULT_RETRY_MODE", "DEFAULT_RETRY_MODE",
108113
TypeScriptDependency.MIDDLEWARE_RETRY.packageName);
109114
writer.write("(() => Promise.resolve(DEFAULT_RETRY_MODE))");
115+
},
116+
"useFipsEndpoint", writer -> {
117+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
118+
writer.addImport("DEFAULT_USE_FIPS_ENDPOINT", "DEFAULT_USE_FIPS_ENDPOINT",
119+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
120+
writer.write("(() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT))");
110121
}
111122
);
112123
case NODE:
@@ -127,6 +138,16 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
127138
writer.addImport("NODE_RETRY_MODE_CONFIG_OPTIONS", "NODE_RETRY_MODE_CONFIG_OPTIONS",
128139
TypeScriptDependency.MIDDLEWARE_RETRY.packageName);
129140
writer.write("loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS)");
141+
},
142+
"useFipsEndpoint", writer -> {
143+
writer.addDependency(AwsDependency.NODE_CONFIG_PROVIDER);
144+
writer.addImport("loadConfig", "loadNodeConfig",
145+
AwsDependency.NODE_CONFIG_PROVIDER.packageName);
146+
writer.addDependency(TypeScriptDependency.CONFIG_RESOLVER);
147+
writer.addImport("NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS",
148+
"NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS",
149+
TypeScriptDependency.CONFIG_RESOLVER.packageName);
150+
writer.write("loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)");
130151
}
131152
);
132153
default:

0 commit comments

Comments
 (0)