diff --git a/clients/client-dynamodb/DynamoDBClient.ts b/clients/client-dynamodb/DynamoDBClient.ts index c8086081719d..a95207c3e17b 100644 --- a/clients/client-dynamodb/DynamoDBClient.ts +++ b/clients/client-dynamodb/DynamoDBClient.ts @@ -454,7 +454,9 @@ export class DynamoDBClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, { + endpointDiscoveryCommandCtor: DescribeEndpointsCommand, + }); super(_config_7); this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); diff --git a/clients/client-sts/STSClient.ts b/clients/client-sts/STSClient.ts index 6b8ad3030bee..c7e85f819d08 100644 --- a/clients/client-sts/STSClient.ts +++ b/clients/client-sts/STSClient.ts @@ -244,7 +244,7 @@ export class STSClient extends __Client< let _config_2 = resolveEndpointsConfig(_config_1); let _config_3 = resolveRetryConfig(_config_2); let _config_4 = resolveHostHeaderConfig(_config_3); - let _config_5 = resolveStsAuthConfig(_config_4, STSClient); + let _config_5 = resolveStsAuthConfig(_config_4, { stsClientCtor: STSClient }); let _config_6 = resolveUserAgentConfig(_config_5); super(_config_6); this.config = _config_6; diff --git a/clients/client-timestream-query/TimestreamQueryClient.ts b/clients/client-timestream-query/TimestreamQueryClient.ts index c82c860727b3..62748cfb6acb 100644 --- a/clients/client-timestream-query/TimestreamQueryClient.ts +++ b/clients/client-timestream-query/TimestreamQueryClient.ts @@ -240,7 +240,9 @@ export class TimestreamQueryClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, { + endpointDiscoveryCommandCtor: DescribeEndpointsCommand, + }); super(_config_7); this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); diff --git a/clients/client-timestream-write/TimestreamWriteClient.ts b/clients/client-timestream-write/TimestreamWriteClient.ts index 1d17050e270c..38e35cc3a34f 100644 --- a/clients/client-timestream-write/TimestreamWriteClient.ts +++ b/clients/client-timestream-write/TimestreamWriteClient.ts @@ -283,7 +283,9 @@ export class TimestreamWriteClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, { + endpointDiscoveryCommandCtor: DescribeEndpointsCommand, + }); super(_config_7); this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddAwsAuthPlugin.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddAwsAuthPlugin.java index 5bb78512bc68..59171c15217f 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddAwsAuthPlugin.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddAwsAuthPlugin.java @@ -107,7 +107,7 @@ && isAwsService(s) .withConventions(AwsDependency.STS_MIDDLEWARE.dependency, "StsAuth", HAS_CONFIG) .additionalResolveFunctionParamsSupplier((m, s, o) -> new HashMap() {{ - put("STSClient", Symbol.builder().name("STSClient").build()); + put("stsClientCtor", Symbol.builder().name("STSClient").build()); }}) .servicePredicate((m, s) -> testServiceId(s, "STS")) .build(), diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddEndpointDiscoveryPlugin.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddEndpointDiscoveryPlugin.java index 45ac5372eda0..e1732de88f93 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddEndpointDiscoveryPlugin.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddEndpointDiscoveryPlugin.java @@ -71,7 +71,8 @@ public List getClientPlugins() { "EndpointDiscovery", RuntimeClientPlugin.Convention.HAS_CONFIG) // ToDo: The Endpoint Discovery Command Name needs to be read from ClientEndpointDiscoveryTrait. .additionalResolveFunctionParamsSupplier((m, s, o) -> new HashMap() {{ - put("DescribeEndpointsCommand", Symbol.builder().name("DescribeEndpointsCommand").build()); + put("endpointDiscoveryCommandCtor", + Symbol.builder().name("DescribeEndpointsCommand").build()); }}) .servicePredicate((m, s) -> hasClientEndpointDiscovery(s)) .build(), diff --git a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.spec.ts b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.spec.ts index f0d554a2304c..88a5d92ee2b1 100644 --- a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.spec.ts +++ b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.spec.ts @@ -17,7 +17,7 @@ describe(resolveEndpointDiscoveryConfig.name, () => { }); it("assigns endpointDiscoveryCommandCtor in resolvedConfig", () => { - const resolvedConfig = resolveEndpointDiscoveryConfig(mockInput, endpointDiscoveryCommandCtor); + const resolvedConfig = resolveEndpointDiscoveryConfig(mockInput, { endpointDiscoveryCommandCtor }); expect(resolvedConfig.endpointDiscoveryCommandCtor).toStrictEqual(endpointDiscoveryCommandCtor); }); @@ -29,13 +29,13 @@ describe(resolveEndpointDiscoveryConfig.name, () => { ...mockInput, endpointCacheSize, }, - endpointDiscoveryCommandCtor + { endpointDiscoveryCommandCtor } ); expect(EndpointCache).toBeCalledWith(endpointCacheSize); }); it("creates cache of size 1000 if endpointCacheSize not passed", () => { - resolveEndpointDiscoveryConfig(mockInput, endpointDiscoveryCommandCtor); + resolveEndpointDiscoveryConfig(mockInput, { endpointDiscoveryCommandCtor }); expect(EndpointCache).toBeCalledWith(1000); }); }); @@ -47,7 +47,7 @@ describe(resolveEndpointDiscoveryConfig.name, () => { ...mockInput, endpointDiscoveryEnabled, }, - endpointDiscoveryCommandCtor + { endpointDiscoveryCommandCtor } ); expect(resolvedConfig.endpointDiscoveryEnabled()).resolves.toBe(endpointDiscoveryEnabled); expect(mockInput.endpointDiscoveryEnabledProvider).not.toHaveBeenCalled(); @@ -55,7 +55,7 @@ describe(resolveEndpointDiscoveryConfig.name, () => { }); it(`sets to endpointDiscoveryEnabledProvider if value is not passed`, () => { - const resolvedConfig = resolveEndpointDiscoveryConfig(mockInput, endpointDiscoveryCommandCtor); + const resolvedConfig = resolveEndpointDiscoveryConfig(mockInput, { endpointDiscoveryCommandCtor }); expect(resolvedConfig.endpointDiscoveryEnabled).toBe(mockInput.endpointDiscoveryEnabledProvider); expect(resolvedConfig.isClientEndpointDiscoveryEnabled).toStrictEqual(false); }); diff --git a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts index 6d702544b0d9..2306846170bf 100644 --- a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts +++ b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts @@ -51,9 +51,16 @@ export interface EndpointDiscoveryResolvedConfig { isClientEndpointDiscoveryEnabled: boolean; } +export interface EndpointDiscoveryConfigOptions { + /** + * The constructor of the Command used for discovering endpoints. + */ + endpointDiscoveryCommandCtor: new (comandConfig: any) => any; +} + export const resolveEndpointDiscoveryConfig = ( input: T & PreviouslyResolved & EndpointDiscoveryInputConfig, - endpointDiscoveryCommandCtor: new (comandConfig: any) => any + { endpointDiscoveryCommandCtor }: EndpointDiscoveryConfigOptions ): T & EndpointDiscoveryResolvedConfig => ({ ...input, endpointDiscoveryCommandCtor, diff --git a/packages/middleware-sdk-sts/src/index.ts b/packages/middleware-sdk-sts/src/index.ts index aa11e7dca4ca..01230da21ae6 100644 --- a/packages/middleware-sdk-sts/src/index.ts +++ b/packages/middleware-sdk-sts/src/index.ts @@ -18,6 +18,13 @@ export interface StsAuthResolvedConfig extends AwsAuthResolvedConfig { stsClientCtor: new (clientConfig: any) => Client; } +export interface StsAuthConfigOptions { + /** + * Reference to STSClient class constructor. + */ + stsClientCtor: new (clientConfig: any) => Client; +} + /** * Set STS client constructor to `stsClientCtor` config parameter. It is used * for role assumers for STS client internally. See `clients/client-sts/defaultStsRoleAssumers.ts` @@ -25,10 +32,9 @@ export interface StsAuthResolvedConfig extends AwsAuthResolvedConfig { */ export const resolveStsAuthConfig = ( input: T & PreviouslyResolved & StsAuthInputConfig, - stsClientCtor: new (clientConfig: any) => Client -): T & StsAuthResolvedConfig => { - return resolveAwsAuthConfig({ + { stsClientCtor }: StsAuthConfigOptions +): T & StsAuthResolvedConfig => + resolveAwsAuthConfig({ ...input, stsClientCtor, }); -};