diff --git a/clients/client-dynamodb/DynamoDBClient.ts b/clients/client-dynamodb/DynamoDBClient.ts index fbe09183e539..ffd1feb57429 100644 --- a/clients/client-dynamodb/DynamoDBClient.ts +++ b/clients/client-dynamodb/DynamoDBClient.ts @@ -19,7 +19,11 @@ import { DescribeContributorInsightsCommandInput, DescribeContributorInsightsCommandOutput, } from "./commands/DescribeContributorInsightsCommand"; -import { DescribeEndpointsCommandInput, DescribeEndpointsCommandOutput } from "./commands/DescribeEndpointsCommand"; +import { + DescribeEndpointsCommand, + DescribeEndpointsCommandInput, + DescribeEndpointsCommandOutput, +} from "./commands/DescribeEndpointsCommand"; import { DescribeExportCommandInput, DescribeExportCommandOutput } from "./commands/DescribeExportCommand"; import { DescribeGlobalTableCommandInput, @@ -109,6 +113,11 @@ import { resolveRegionConfig, } from "@aws-sdk/config-resolver"; import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + EndpointDiscoveryInputConfig, + EndpointDiscoveryResolvedConfig, + resolveEndpointDiscoveryConfig, +} from "@aws-sdk/middleware-endpoint-discovery"; import { HostHeaderInputConfig, HostHeaderResolvedConfig, @@ -359,6 +368,13 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ * @internal */ defaultUserAgentProvider?: Provider<__UserAgent>; + + /** + * The provider which populates default for endpointDiscoveryEnabled configuration, if it's + * not passed during client creation. + * @internal + */ + endpointDiscoveryEnabledProvider?: __Provider; } type DynamoDBClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & @@ -368,7 +384,8 @@ type DynamoDBClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptio RetryInputConfig & HostHeaderInputConfig & AwsAuthInputConfig & - UserAgentInputConfig; + UserAgentInputConfig & + EndpointDiscoveryInputConfig; /** * The configuration interface of DynamoDBClient class constructor that set the region, credentials and other options. */ @@ -381,7 +398,8 @@ type DynamoDBClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHand RetryResolvedConfig & HostHeaderResolvedConfig & AwsAuthResolvedConfig & - UserAgentResolvedConfig; + UserAgentResolvedConfig & + EndpointDiscoveryResolvedConfig; /** * The resolved configuration interface of DynamoDBClient class. This is resolved and normalized from the {@link DynamoDBClientConfig | constructor configuration interface}. */ @@ -430,8 +448,9 @@ export class DynamoDBClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + super(_config_7); + this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dynamodb/package.json b/clients/client-dynamodb/package.json index d751831d8f38..cc6c45f2380b 100644 --- a/clients/client-dynamodb/package.json +++ b/clients/client-dynamodb/package.json @@ -34,6 +34,7 @@ "@aws-sdk/hash-node": "3.15.0", "@aws-sdk/invalid-dependency": "3.15.0", "@aws-sdk/middleware-content-length": "3.15.0", + "@aws-sdk/middleware-endpoint-discovery": "3.0.0", "@aws-sdk/middleware-host-header": "3.15.0", "@aws-sdk/middleware-logger": "3.15.0", "@aws-sdk/middleware-retry": "3.15.0", diff --git a/clients/client-dynamodb/runtimeConfig.browser.ts b/clients/client-dynamodb/runtimeConfig.browser.ts index 44bdf9022581..1145c09be4f5 100644 --- a/clients/client-dynamodb/runtimeConfig.browser.ts +++ b/clients/client-dynamodb/runtimeConfig.browser.ts @@ -25,6 +25,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: () => Promise.resolve(undefined), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider("Region is missing"), requestHandler: new FetchHttpHandler(), diff --git a/clients/client-dynamodb/runtimeConfig.ts b/clients/client-dynamodb/runtimeConfig.ts index 64123f8d7b02..c1bf3bbf9e1d 100644 --- a/clients/client-dynamodb/runtimeConfig.ts +++ b/clients/client-dynamodb/runtimeConfig.ts @@ -4,6 +4,7 @@ import { decorateDefaultCredentialProvider } from "@aws-sdk/client-sts"; import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; import { Hash } from "@aws-sdk/hash-node"; +import { NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS } from "@aws-sdk/middleware-endpoint-discovery"; import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; @@ -28,6 +29,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: loadNodeConfig(NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS), maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), requestHandler: new NodeHttpHandler(), diff --git a/clients/client-timestream-query/TimestreamQueryClient.ts b/clients/client-timestream-query/TimestreamQueryClient.ts index 6a08a1156547..373810a5db7b 100644 --- a/clients/client-timestream-query/TimestreamQueryClient.ts +++ b/clients/client-timestream-query/TimestreamQueryClient.ts @@ -1,5 +1,9 @@ import { CancelQueryCommandInput, CancelQueryCommandOutput } from "./commands/CancelQueryCommand"; -import { DescribeEndpointsCommandInput, DescribeEndpointsCommandOutput } from "./commands/DescribeEndpointsCommand"; +import { + DescribeEndpointsCommand, + DescribeEndpointsCommandInput, + DescribeEndpointsCommandOutput, +} from "./commands/DescribeEndpointsCommand"; import { QueryCommandInput, QueryCommandOutput } from "./commands/QueryCommand"; import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; import { @@ -11,6 +15,11 @@ import { resolveRegionConfig, } from "@aws-sdk/config-resolver"; import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + EndpointDiscoveryInputConfig, + EndpointDiscoveryResolvedConfig, + resolveEndpointDiscoveryConfig, +} from "@aws-sdk/middleware-endpoint-discovery"; import { HostHeaderInputConfig, HostHeaderResolvedConfig, @@ -161,6 +170,13 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ * @internal */ defaultUserAgentProvider?: Provider<__UserAgent>; + + /** + * The provider which populates default for endpointDiscoveryEnabled configuration, if it's + * not passed during client creation. + * @internal + */ + endpointDiscoveryEnabledProvider?: __Provider; } type TimestreamQueryClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & @@ -170,7 +186,8 @@ type TimestreamQueryClientConfigType = Partial<__SmithyConfiguration<__HttpHandl RetryInputConfig & HostHeaderInputConfig & AwsAuthInputConfig & - UserAgentInputConfig; + UserAgentInputConfig & + EndpointDiscoveryInputConfig; /** * The configuration interface of TimestreamQueryClient class constructor that set the region, credentials and other options. */ @@ -183,7 +200,8 @@ type TimestreamQueryClientResolvedConfigType = __SmithyResolvedConfiguration<__H RetryResolvedConfig & HostHeaderResolvedConfig & AwsAuthResolvedConfig & - UserAgentResolvedConfig; + UserAgentResolvedConfig & + EndpointDiscoveryResolvedConfig; /** * The resolved configuration interface of TimestreamQueryClient class. This is resolved and normalized from the {@link TimestreamQueryClientConfig | constructor configuration interface}. */ @@ -216,8 +234,9 @@ export class TimestreamQueryClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + super(_config_7); + this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-timestream-query/commands/CancelQueryCommand.ts b/clients/client-timestream-query/commands/CancelQueryCommand.ts index db562730495b..d5ff79819262 100644 --- a/clients/client-timestream-query/commands/CancelQueryCommand.ts +++ b/clients/client-timestream-query/commands/CancelQueryCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0CancelQueryCommand, serializeAws_json1_0CancelQueryCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -64,6 +65,7 @@ export class CancelQueryCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-query/commands/QueryCommand.ts b/clients/client-timestream-query/commands/QueryCommand.ts index 484a5b1e88b9..77fa1f439c01 100644 --- a/clients/client-timestream-query/commands/QueryCommand.ts +++ b/clients/client-timestream-query/commands/QueryCommand.ts @@ -1,6 +1,7 @@ import { ServiceInputTypes, ServiceOutputTypes, TimestreamQueryClientResolvedConfig } from "../TimestreamQueryClient"; import { QueryRequest, QueryResponse } from "../models/models_0"; import { deserializeAws_json1_0QueryCommand, serializeAws_json1_0QueryCommand } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -55,6 +56,7 @@ export class QueryCommand extends $Command { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-query/package.json b/clients/client-timestream-query/package.json index b8affb8d484e..4c3c6fd687b1 100644 --- a/clients/client-timestream-query/package.json +++ b/clients/client-timestream-query/package.json @@ -34,6 +34,7 @@ "@aws-sdk/hash-node": "3.15.0", "@aws-sdk/invalid-dependency": "3.15.0", "@aws-sdk/middleware-content-length": "3.15.0", + "@aws-sdk/middleware-endpoint-discovery": "3.0.0", "@aws-sdk/middleware-host-header": "3.15.0", "@aws-sdk/middleware-logger": "3.15.0", "@aws-sdk/middleware-retry": "3.15.0", diff --git a/clients/client-timestream-query/runtimeConfig.browser.ts b/clients/client-timestream-query/runtimeConfig.browser.ts index 3fe09aa715c6..9206655b88e7 100644 --- a/clients/client-timestream-query/runtimeConfig.browser.ts +++ b/clients/client-timestream-query/runtimeConfig.browser.ts @@ -25,6 +25,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: () => Promise.resolve(undefined), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider("Region is missing"), requestHandler: new FetchHttpHandler(), diff --git a/clients/client-timestream-query/runtimeConfig.ts b/clients/client-timestream-query/runtimeConfig.ts index 877cc2126251..6b8b3fead9a5 100644 --- a/clients/client-timestream-query/runtimeConfig.ts +++ b/clients/client-timestream-query/runtimeConfig.ts @@ -4,6 +4,7 @@ import { decorateDefaultCredentialProvider } from "@aws-sdk/client-sts"; import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; import { Hash } from "@aws-sdk/hash-node"; +import { NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS } from "@aws-sdk/middleware-endpoint-discovery"; import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; @@ -28,6 +29,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: loadNodeConfig(NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS), maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), requestHandler: new NodeHttpHandler(), diff --git a/clients/client-timestream-write/TimestreamWriteClient.ts b/clients/client-timestream-write/TimestreamWriteClient.ts index 2163a906db39..1017dcc1f4a9 100644 --- a/clients/client-timestream-write/TimestreamWriteClient.ts +++ b/clients/client-timestream-write/TimestreamWriteClient.ts @@ -3,7 +3,11 @@ import { CreateTableCommandInput, CreateTableCommandOutput } from "./commands/Cr import { DeleteDatabaseCommandInput, DeleteDatabaseCommandOutput } from "./commands/DeleteDatabaseCommand"; import { DeleteTableCommandInput, DeleteTableCommandOutput } from "./commands/DeleteTableCommand"; import { DescribeDatabaseCommandInput, DescribeDatabaseCommandOutput } from "./commands/DescribeDatabaseCommand"; -import { DescribeEndpointsCommandInput, DescribeEndpointsCommandOutput } from "./commands/DescribeEndpointsCommand"; +import { + DescribeEndpointsCommand, + DescribeEndpointsCommandInput, + DescribeEndpointsCommandOutput, +} from "./commands/DescribeEndpointsCommand"; import { DescribeTableCommandInput, DescribeTableCommandOutput } from "./commands/DescribeTableCommand"; import { ListDatabasesCommandInput, ListDatabasesCommandOutput } from "./commands/ListDatabasesCommand"; import { ListTablesCommandInput, ListTablesCommandOutput } from "./commands/ListTablesCommand"; @@ -26,6 +30,11 @@ import { resolveRegionConfig, } from "@aws-sdk/config-resolver"; import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + EndpointDiscoveryInputConfig, + EndpointDiscoveryResolvedConfig, + resolveEndpointDiscoveryConfig, +} from "@aws-sdk/middleware-endpoint-discovery"; import { HostHeaderInputConfig, HostHeaderResolvedConfig, @@ -206,6 +215,13 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ * @internal */ defaultUserAgentProvider?: Provider<__UserAgent>; + + /** + * The provider which populates default for endpointDiscoveryEnabled configuration, if it's + * not passed during client creation. + * @internal + */ + endpointDiscoveryEnabledProvider?: __Provider; } type TimestreamWriteClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & @@ -215,7 +231,8 @@ type TimestreamWriteClientConfigType = Partial<__SmithyConfiguration<__HttpHandl RetryInputConfig & HostHeaderInputConfig & AwsAuthInputConfig & - UserAgentInputConfig; + UserAgentInputConfig & + EndpointDiscoveryInputConfig; /** * The configuration interface of TimestreamWriteClient class constructor that set the region, credentials and other options. */ @@ -228,7 +245,8 @@ type TimestreamWriteClientResolvedConfigType = __SmithyResolvedConfiguration<__H RetryResolvedConfig & HostHeaderResolvedConfig & AwsAuthResolvedConfig & - UserAgentResolvedConfig; + UserAgentResolvedConfig & + EndpointDiscoveryResolvedConfig; /** * The resolved configuration interface of TimestreamWriteClient class. This is resolved and normalized from the {@link TimestreamWriteClientConfig | constructor configuration interface}. */ @@ -259,8 +277,9 @@ export class TimestreamWriteClient extends __Client< let _config_4 = resolveHostHeaderConfig(_config_3); let _config_5 = resolveAwsAuthConfig(_config_4); let _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + let _config_7 = resolveEndpointDiscoveryConfig(_config_6, DescribeEndpointsCommand); + super(_config_7); + this.config = _config_7; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-timestream-write/commands/CreateDatabaseCommand.ts b/clients/client-timestream-write/commands/CreateDatabaseCommand.ts index a4cec4f02f79..894ce21e3ac5 100644 --- a/clients/client-timestream-write/commands/CreateDatabaseCommand.ts +++ b/clients/client-timestream-write/commands/CreateDatabaseCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0CreateDatabaseCommand, serializeAws_json1_0CreateDatabaseCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -63,6 +64,7 @@ export class CreateDatabaseCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/CreateTableCommand.ts b/clients/client-timestream-write/commands/CreateTableCommand.ts index 0dbb388abfd4..4f64aeea3d39 100644 --- a/clients/client-timestream-write/commands/CreateTableCommand.ts +++ b/clients/client-timestream-write/commands/CreateTableCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0CreateTableCommand, serializeAws_json1_0CreateTableCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -67,6 +68,7 @@ export class CreateTableCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/DeleteDatabaseCommand.ts b/clients/client-timestream-write/commands/DeleteDatabaseCommand.ts index 89ee4b8276e4..0caafabf6bf6 100644 --- a/clients/client-timestream-write/commands/DeleteDatabaseCommand.ts +++ b/clients/client-timestream-write/commands/DeleteDatabaseCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0DeleteDatabaseCommand, serializeAws_json1_0DeleteDatabaseCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -68,6 +69,7 @@ export class DeleteDatabaseCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/DeleteTableCommand.ts b/clients/client-timestream-write/commands/DeleteTableCommand.ts index 5016520cebc3..d2bf1a3ed6b0 100644 --- a/clients/client-timestream-write/commands/DeleteTableCommand.ts +++ b/clients/client-timestream-write/commands/DeleteTableCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0DeleteTableCommand, serializeAws_json1_0DeleteTableCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -65,6 +66,7 @@ export class DeleteTableCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/DescribeDatabaseCommand.ts b/clients/client-timestream-write/commands/DescribeDatabaseCommand.ts index afb5662dd2d3..bb7f592fc190 100644 --- a/clients/client-timestream-write/commands/DescribeDatabaseCommand.ts +++ b/clients/client-timestream-write/commands/DescribeDatabaseCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0DescribeDatabaseCommand, serializeAws_json1_0DescribeDatabaseCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -62,6 +63,7 @@ export class DescribeDatabaseCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/DescribeTableCommand.ts b/clients/client-timestream-write/commands/DescribeTableCommand.ts index 2eaf61601646..b802ddba76a5 100644 --- a/clients/client-timestream-write/commands/DescribeTableCommand.ts +++ b/clients/client-timestream-write/commands/DescribeTableCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0DescribeTableCommand, serializeAws_json1_0DescribeTableCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -63,6 +64,7 @@ export class DescribeTableCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/ListDatabasesCommand.ts b/clients/client-timestream-write/commands/ListDatabasesCommand.ts index 4e66b5f8bb62..01c81d8a07c8 100644 --- a/clients/client-timestream-write/commands/ListDatabasesCommand.ts +++ b/clients/client-timestream-write/commands/ListDatabasesCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0ListDatabasesCommand, serializeAws_json1_0ListDatabasesCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -62,6 +63,7 @@ export class ListDatabasesCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/ListTablesCommand.ts b/clients/client-timestream-write/commands/ListTablesCommand.ts index fa6e2e2e148f..3e30ca501180 100644 --- a/clients/client-timestream-write/commands/ListTablesCommand.ts +++ b/clients/client-timestream-write/commands/ListTablesCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0ListTablesCommand, serializeAws_json1_0ListTablesCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -61,6 +62,7 @@ export class ListTablesCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/ListTagsForResourceCommand.ts b/clients/client-timestream-write/commands/ListTagsForResourceCommand.ts index 96b008f0a671..f8a153de5312 100644 --- a/clients/client-timestream-write/commands/ListTagsForResourceCommand.ts +++ b/clients/client-timestream-write/commands/ListTagsForResourceCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0ListTagsForResourceCommand, serializeAws_json1_0ListTagsForResourceCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -62,6 +63,7 @@ export class ListTagsForResourceCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/TagResourceCommand.ts b/clients/client-timestream-write/commands/TagResourceCommand.ts index d1f825816c4d..8492d03ba1fb 100644 --- a/clients/client-timestream-write/commands/TagResourceCommand.ts +++ b/clients/client-timestream-write/commands/TagResourceCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0TagResourceCommand, serializeAws_json1_0TagResourceCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -64,6 +65,7 @@ export class TagResourceCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/UntagResourceCommand.ts b/clients/client-timestream-write/commands/UntagResourceCommand.ts index 21456aeb3416..a63ca6cf02c0 100644 --- a/clients/client-timestream-write/commands/UntagResourceCommand.ts +++ b/clients/client-timestream-write/commands/UntagResourceCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0UntagResourceCommand, serializeAws_json1_0UntagResourceCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -62,6 +63,7 @@ export class UntagResourceCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/UpdateDatabaseCommand.ts b/clients/client-timestream-write/commands/UpdateDatabaseCommand.ts index 3d3bf19425ba..d426588cc146 100644 --- a/clients/client-timestream-write/commands/UpdateDatabaseCommand.ts +++ b/clients/client-timestream-write/commands/UpdateDatabaseCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0UpdateDatabaseCommand, serializeAws_json1_0UpdateDatabaseCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -64,6 +65,7 @@ export class UpdateDatabaseCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/UpdateTableCommand.ts b/clients/client-timestream-write/commands/UpdateTableCommand.ts index eead49e2b9ef..61e5f0fec030 100644 --- a/clients/client-timestream-write/commands/UpdateTableCommand.ts +++ b/clients/client-timestream-write/commands/UpdateTableCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0UpdateTableCommand, serializeAws_json1_0UpdateTableCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -66,6 +67,7 @@ export class UpdateTableCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/commands/WriteRecordsCommand.ts b/clients/client-timestream-write/commands/WriteRecordsCommand.ts index 5e8a63632ca1..5474ccc8a6d8 100644 --- a/clients/client-timestream-write/commands/WriteRecordsCommand.ts +++ b/clients/client-timestream-write/commands/WriteRecordsCommand.ts @@ -4,6 +4,7 @@ import { deserializeAws_json1_0WriteRecordsCommand, serializeAws_json1_0WriteRecordsCommand, } from "../protocols/Aws_json1_0"; +import { getEndpointDiscoveryRequiredPlugin } from "@aws-sdk/middleware-endpoint-discovery"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -73,6 +74,7 @@ export class WriteRecordsCommand extends $Command< options?: __HttpHandlerOptions ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointDiscoveryRequiredPlugin(configuration, { clientStack, options })); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-timestream-write/package.json b/clients/client-timestream-write/package.json index a904e2355fdf..964050682885 100644 --- a/clients/client-timestream-write/package.json +++ b/clients/client-timestream-write/package.json @@ -34,6 +34,7 @@ "@aws-sdk/hash-node": "3.15.0", "@aws-sdk/invalid-dependency": "3.15.0", "@aws-sdk/middleware-content-length": "3.15.0", + "@aws-sdk/middleware-endpoint-discovery": "3.0.0", "@aws-sdk/middleware-host-header": "3.15.0", "@aws-sdk/middleware-logger": "3.15.0", "@aws-sdk/middleware-retry": "3.15.0", diff --git a/clients/client-timestream-write/runtimeConfig.browser.ts b/clients/client-timestream-write/runtimeConfig.browser.ts index c890b6da7a2c..029e196a5c96 100644 --- a/clients/client-timestream-write/runtimeConfig.browser.ts +++ b/clients/client-timestream-write/runtimeConfig.browser.ts @@ -25,6 +25,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: () => Promise.resolve(undefined), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider("Region is missing"), requestHandler: new FetchHttpHandler(), diff --git a/clients/client-timestream-write/runtimeConfig.ts b/clients/client-timestream-write/runtimeConfig.ts index 21223a2c294d..88d3e1fdb78e 100644 --- a/clients/client-timestream-write/runtimeConfig.ts +++ b/clients/client-timestream-write/runtimeConfig.ts @@ -4,6 +4,7 @@ import { decorateDefaultCredentialProvider } from "@aws-sdk/client-sts"; import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; import { Hash } from "@aws-sdk/hash-node"; +import { NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS } from "@aws-sdk/middleware-endpoint-discovery"; import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; @@ -28,6 +29,7 @@ export const ClientDefaultValues: Required = { serviceId: ClientSharedValues.serviceId, clientVersion: packageInfo.version, }), + endpointDiscoveryEnabledProvider: loadNodeConfig(NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS), maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), requestHandler: new NodeHttpHandler(), 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 new file mode 100644 index 000000000000..508594316260 --- /dev/null +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddEndpointDiscoveryPlugin.java @@ -0,0 +1,161 @@ +/* + * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.smithy.aws.typescript.codegen; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import software.amazon.smithy.aws.traits.clientendpointdiscovery.ClientDiscoveredEndpointTrait; +import software.amazon.smithy.aws.traits.clientendpointdiscovery.ClientEndpointDiscoveryTrait; +import software.amazon.smithy.codegen.core.CodegenException; +import software.amazon.smithy.codegen.core.SymbolProvider; +import software.amazon.smithy.model.Model; +import software.amazon.smithy.model.shapes.OperationShape; +import software.amazon.smithy.model.shapes.ServiceShape; +import software.amazon.smithy.model.shapes.ShapeId; +import software.amazon.smithy.typescript.codegen.LanguageTarget; +import software.amazon.smithy.typescript.codegen.TypeScriptDependency; +import software.amazon.smithy.typescript.codegen.TypeScriptSettings; +import software.amazon.smithy.typescript.codegen.TypeScriptWriter; +import software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin; +import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration; +import software.amazon.smithy.utils.ListUtils; +import software.amazon.smithy.utils.MapUtils; +import software.amazon.smithy.utils.SmithyInternalApi; + +/** + * Adds runtime plugins which handle endpoint discovery logic. + */ +@SmithyInternalApi +public class AddEndpointDiscoveryPlugin implements TypeScriptIntegration { + + @Override + public void addConfigInterfaceFields( + TypeScriptSettings settings, + Model model, + SymbolProvider symbolProvider, + TypeScriptWriter writer + ) { + ServiceShape service = settings.getService(model); + if (hasClientEndpointDiscovery(service)) { + // Add import for endpoint discovery command here, as getClientPlugins doesn't have access to writer. + addEndpointDiscoveryCommandImport(model, symbolProvider, service, writer); + writer.addImport("Provider", "__Provider", TypeScriptDependency.AWS_SDK_TYPES.packageName); + writer.writeDocs("The provider which populates default for endpointDiscoveryEnabled configuration," + + " if it's\nnot passed during client creation.\n@internal") + .write("endpointDiscoveryEnabledProvider?: __Provider;\n"); + } + } + + @Override + public List getClientPlugins() { + return ListUtils.of( + RuntimeClientPlugin.builder() + .withConventions(AwsDependency.MIDDLEWARE_ENDPOINT_DISCOVERY.dependency, + "EndpointDiscovery", RuntimeClientPlugin.Convention.HAS_CONFIG) + // ToDo: The Endpoint Discovery Command Name needs to be read from ClientEndpointDiscoveryTrait. + .additionalResolveFunctionParameters("DescribeEndpointsCommand") + .servicePredicate((m, s) -> hasClientEndpointDiscovery(s)) + .build(), + // ToDo: The value ClientDiscoveredEndpointTrait.isRequired() needs to be passed to Plugin instead + // of creating two functions Required and Optional. The map of identifiers also needs to be passed. + RuntimeClientPlugin.builder() + .withConventions(AwsDependency.MIDDLEWARE_ENDPOINT_DISCOVERY.dependency, + "EndpointDiscoveryRequired", RuntimeClientPlugin.Convention.HAS_MIDDLEWARE) + .additionalPluginFunctionParameters(new String[]{"clientStack", "options"}) + .operationPredicate((m, s, o) -> isClientDiscoveredEndpointRequired(s, o)) + .build(), + RuntimeClientPlugin.builder() + .withConventions(AwsDependency.MIDDLEWARE_ENDPOINT_DISCOVERY.dependency, + "EndpointDiscoveryOptional", RuntimeClientPlugin.Convention.HAS_MIDDLEWARE) + .additionalPluginFunctionParameters(new String[]{"clientStack", "options"}) + .operationPredicate((m, s, o) -> isClientDiscoveredEndpointOptional(s, o)) + .build() + ); + } + + @Override + public Map> getRuntimeConfigWriters( + TypeScriptSettings settings, + Model model, + SymbolProvider symbolProvider, + LanguageTarget target + ) { + ServiceShape service = settings.getService(model); + if (!hasClientEndpointDiscovery(service)) { + return Collections.emptyMap(); + } + switch (target) { + case BROWSER: + return MapUtils.of( + "endpointDiscoveryEnabledProvider", writer -> { + writer.write("endpointDiscoveryEnabledProvider: () => Promise.resolve(undefined),"); + } + ); + case NODE: + return MapUtils.of( + "endpointDiscoveryEnabledProvider", writer -> { + writer.addDependency(AwsDependency.MIDDLEWARE_ENDPOINT_DISCOVERY); + writer.addImport("NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS", + "NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS", + AwsDependency.MIDDLEWARE_ENDPOINT_DISCOVERY.packageName); + writer.write("endpointDiscoveryEnabledProvider: loadNodeConfig(" + + "NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS),"); + } + ); + default: + return Collections.emptyMap(); + } + } + + private void addEndpointDiscoveryCommandImport( + Model model, + SymbolProvider symbolProvider, + ServiceShape service, + TypeScriptWriter writer + ) { + if (!hasClientEndpointDiscovery(service)) { + throw new CodegenException( + "EndpointDiscovery command import called for service without endpoint discovery" + ); + } + ShapeId operationShapeId = service.getTrait(ClientEndpointDiscoveryTrait.class).orElse(null).getOperation(); + OperationShape operation = model.expectShape(operationShapeId, OperationShape.class); + writer.addUseImports(symbolProvider.toSymbol(operation)); + } + + private static boolean hasClientEndpointDiscovery(ServiceShape service) { + if (service.hasTrait(ClientEndpointDiscoveryTrait.class)) { + return true; + } + return false; + } + + private static boolean isClientDiscoveredEndpointRequired(ServiceShape service, OperationShape operation) { + if (hasClientEndpointDiscovery(service) && operation.hasTrait(ClientDiscoveredEndpointTrait.class)) { + return operation.getTrait(ClientDiscoveredEndpointTrait.class).orElse(null).isRequired(); + } + return false; + } + + private static boolean isClientDiscoveredEndpointOptional(ServiceShape service, OperationShape operation) { + if (!hasClientEndpointDiscovery(service) && operation.hasTrait(ClientDiscoveredEndpointTrait.class)) { + return !operation.getTrait(ClientDiscoveredEndpointTrait.class).orElse(null).isRequired(); + } + return false; + } +} diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java index a6b9000bd1d6..d358c4ed01b1 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java @@ -67,7 +67,8 @@ public enum AwsDependency implements SymbolDependencyContainer { MIDDLEWARE_LOGGER(NORMAL_DEPENDENCY, "@aws-sdk/middleware-logger", "3.15.0"), MIDDLEWARE_USER_AGENT("dependencies", "@aws-sdk/middleware-user-agent", "3.15.0"), AWS_SDK_UTIL_USER_AGENT_BROWSER(NORMAL_DEPENDENCY, "@aws-sdk/util-user-agent-browser", "3.15.0"), - AWS_SDK_UTIL_USER_AGENT_NODE(NORMAL_DEPENDENCY, "@aws-sdk/util-user-agent-node", "3.15.0"); + AWS_SDK_UTIL_USER_AGENT_NODE(NORMAL_DEPENDENCY, "@aws-sdk/util-user-agent-node", "3.15.0"), + MIDDLEWARE_ENDPOINT_DISCOVERY(NORMAL_DEPENDENCY, "@aws-sdk/middleware-endpoint-discovery", "3.0.0"); public final String packageName; public final String version; diff --git a/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration b/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration index 697fc3bcf98d..5f007e313a05 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration +++ b/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration @@ -17,4 +17,5 @@ software.amazon.smithy.aws.typescript.codegen.AddUserAgentDependency software.amazon.smithy.aws.typescript.codegen.AddOmitRetryHeadersDependency software.amazon.smithy.aws.typescript.codegen.StripNewEnumNames software.amazon.smithy.aws.typescript.codegen.AddCrossRegionCopyingPlugin -software.amazon.smithy.aws.typescript.codegen.AddDocumentClientPlugin \ No newline at end of file +software.amazon.smithy.aws.typescript.codegen.AddDocumentClientPlugin +software.amazon.smithy.aws.typescript.codegen.AddEndpointDiscoveryPlugin \ No newline at end of file