diff --git a/clients/client-accessanalyzer/src/AccessAnalyzerClient.ts b/clients/client-accessanalyzer/src/AccessAnalyzerClient.ts index 755a6f953527..b11fcf56f1a8 100644 --- a/clients/client-accessanalyzer/src/AccessAnalyzerClient.ts +++ b/clients/client-accessanalyzer/src/AccessAnalyzerClient.ts @@ -109,6 +109,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface AccessAnalyzerClientConfig extends AccessAnalyzerClientConfigTy */ export type AccessAnalyzerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -372,8 +379,9 @@ export class AccessAnalyzerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-accessanalyzer/src/clientConfiguration.ts b/clients/client-accessanalyzer/src/clientConfiguration.ts new file mode 100644 index 000000000000..71e06d832313 --- /dev/null +++ b/clients/client-accessanalyzer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AccessAnalyzerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-accessanalyzer/src/runtimeConfig.shared.ts b/clients/client-accessanalyzer/src/runtimeConfig.shared.ts index ffd4be8c3618..2279b9aac08f 100644 --- a/clients/client-accessanalyzer/src/runtimeConfig.shared.ts +++ b/clients/client-accessanalyzer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AccessAnalyzer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-accessanalyzer/src/runtimeExtensions.ts b/clients/client-accessanalyzer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..207bdd5e7b20 --- /dev/null +++ b/clients/client-accessanalyzer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AccessAnalyzerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AccessAnalyzerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AccessAnalyzerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-account/src/AccountClient.ts b/clients/client-account/src/AccountClient.ts index 70b0efba7b8e..62cfdcc8318a 100644 --- a/clients/client-account/src/AccountClient.ts +++ b/clients/client-account/src/AccountClient.ts @@ -81,6 +81,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface AccountClientConfig extends AccountClientConfigType {} */ export type AccountClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -298,8 +305,9 @@ export class AccountClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-account/src/clientConfiguration.ts b/clients/client-account/src/clientConfiguration.ts new file mode 100644 index 000000000000..e5c201b8be69 --- /dev/null +++ b/clients/client-account/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AccountClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-account/src/runtimeConfig.shared.ts b/clients/client-account/src/runtimeConfig.shared.ts index 91d11800a15d..00b6b892027a 100644 --- a/clients/client-account/src/runtimeConfig.shared.ts +++ b/clients/client-account/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AccountClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Account", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-account/src/runtimeExtensions.ts b/clients/client-account/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1a7610c01f70 --- /dev/null +++ b/clients/client-account/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AccountClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AccountClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AccountClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-acm-pca/src/ACMPCAClient.ts b/clients/client-acm-pca/src/ACMPCAClient.ts index 368607c9edef..8eb0486cea4c 100644 --- a/clients/client-acm-pca/src/ACMPCAClient.ts +++ b/clients/client-acm-pca/src/ACMPCAClient.ts @@ -119,6 +119,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface ACMPCAClientConfig extends ACMPCAClientConfigType {} */ export type ACMPCAClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -379,8 +386,9 @@ export class ACMPCAClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-acm-pca/src/clientConfiguration.ts b/clients/client-acm-pca/src/clientConfiguration.ts new file mode 100644 index 000000000000..6c5b8cbb4087 --- /dev/null +++ b/clients/client-acm-pca/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ACMPCAClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-acm-pca/src/runtimeConfig.shared.ts b/clients/client-acm-pca/src/runtimeConfig.shared.ts index 46c49b7b90ef..3050ead26955 100644 --- a/clients/client-acm-pca/src/runtimeConfig.shared.ts +++ b/clients/client-acm-pca/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ACMPCAClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ACM PCA", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-acm-pca/src/runtimeExtensions.ts b/clients/client-acm-pca/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3dc9fc4b2453 --- /dev/null +++ b/clients/client-acm-pca/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ACMPCAClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ACMPCAClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ACMPCAClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-acm/src/ACMClient.ts b/clients/client-acm/src/ACMClient.ts index 8a26013e4f56..7f6cc91741dc 100644 --- a/clients/client-acm/src/ACMClient.ts +++ b/clients/client-acm/src/ACMClient.ts @@ -96,6 +96,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface ACMClientConfig extends ACMClientConfigType {} */ export type ACMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -327,8 +334,9 @@ export class ACMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-acm/src/clientConfiguration.ts b/clients/client-acm/src/clientConfiguration.ts new file mode 100644 index 000000000000..f9cabef6710d --- /dev/null +++ b/clients/client-acm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ACMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-acm/src/runtimeConfig.shared.ts b/clients/client-acm/src/runtimeConfig.shared.ts index b79373ffbc3f..14a247ba5431 100644 --- a/clients/client-acm/src/runtimeConfig.shared.ts +++ b/clients/client-acm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ACMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ACM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-acm/src/runtimeExtensions.ts b/clients/client-acm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c3767ad07728 --- /dev/null +++ b/clients/client-acm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ACMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ACMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ACMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-alexa-for-business/src/AlexaForBusinessClient.ts b/clients/client-alexa-for-business/src/AlexaForBusinessClient.ts index 960d63967133..009c1732e609 100644 --- a/clients/client-alexa-for-business/src/AlexaForBusinessClient.ts +++ b/clients/client-alexa-for-business/src/AlexaForBusinessClient.ts @@ -267,6 +267,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -584,6 +585,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -614,6 +620,7 @@ export interface AlexaForBusinessClientConfig extends AlexaForBusinessClientConf */ export type AlexaForBusinessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -654,8 +661,9 @@ export class AlexaForBusinessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-alexa-for-business/src/clientConfiguration.ts b/clients/client-alexa-for-business/src/clientConfiguration.ts new file mode 100644 index 000000000000..bfd99c205a59 --- /dev/null +++ b/clients/client-alexa-for-business/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AlexaForBusinessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-alexa-for-business/src/runtimeConfig.shared.ts b/clients/client-alexa-for-business/src/runtimeConfig.shared.ts index 34e921e0b6f7..85ff8ae0f4a6 100644 --- a/clients/client-alexa-for-business/src/runtimeConfig.shared.ts +++ b/clients/client-alexa-for-business/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AlexaForBusinessClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Alexa For Business", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-alexa-for-business/src/runtimeExtensions.ts b/clients/client-alexa-for-business/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3fcdedb10aa2 --- /dev/null +++ b/clients/client-alexa-for-business/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AlexaForBusinessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AlexaForBusinessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AlexaForBusinessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-amp/src/AmpClient.ts b/clients/client-amp/src/AmpClient.ts index bee55742c7a0..df57371ceb22 100644 --- a/clients/client-amp/src/AmpClient.ts +++ b/clients/client-amp/src/AmpClient.ts @@ -123,6 +123,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface AmpClientConfig extends AmpClientConfigType {} */ export type AmpClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -364,8 +371,9 @@ export class AmpClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-amp/src/clientConfiguration.ts b/clients/client-amp/src/clientConfiguration.ts new file mode 100644 index 000000000000..0ef4584058cd --- /dev/null +++ b/clients/client-amp/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AmpClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-amp/src/runtimeConfig.shared.ts b/clients/client-amp/src/runtimeConfig.shared.ts index d69b1f58f523..da6fef01f4eb 100644 --- a/clients/client-amp/src/runtimeConfig.shared.ts +++ b/clients/client-amp/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AmpClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "amp", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-amp/src/runtimeExtensions.ts b/clients/client-amp/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7a3f45f24493 --- /dev/null +++ b/clients/client-amp/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AmpClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AmpClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AmpClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-amplify/src/AmplifyClient.ts b/clients/client-amplify/src/AmplifyClient.ts index 0ad7a145c849..d1587db027e5 100644 --- a/clients/client-amplify/src/AmplifyClient.ts +++ b/clients/client-amplify/src/AmplifyClient.ts @@ -124,6 +124,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -329,6 +330,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -359,6 +365,7 @@ export interface AmplifyClientConfig extends AmplifyClientConfigType {} */ export type AmplifyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -402,8 +409,9 @@ export class AmplifyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-amplify/src/clientConfiguration.ts b/clients/client-amplify/src/clientConfiguration.ts new file mode 100644 index 000000000000..63c835cc6b5c --- /dev/null +++ b/clients/client-amplify/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AmplifyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-amplify/src/runtimeConfig.shared.ts b/clients/client-amplify/src/runtimeConfig.shared.ts index 59fabcb328e2..5c6afce1438b 100644 --- a/clients/client-amplify/src/runtimeConfig.shared.ts +++ b/clients/client-amplify/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AmplifyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Amplify", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-amplify/src/runtimeExtensions.ts b/clients/client-amplify/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3cb00ad4ed45 --- /dev/null +++ b/clients/client-amplify/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AmplifyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AmplifyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AmplifyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-amplifybackend/src/AmplifyBackendClient.ts b/clients/client-amplifybackend/src/AmplifyBackendClient.ts index 46ebc9ef5413..a7d235dca53d 100644 --- a/clients/client-amplifybackend/src/AmplifyBackendClient.ts +++ b/clients/client-amplifybackend/src/AmplifyBackendClient.ts @@ -115,6 +115,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface AmplifyBackendClientConfig extends AmplifyBackendClientConfigTy */ export type AmplifyBackendClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -376,8 +383,9 @@ export class AmplifyBackendClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-amplifybackend/src/clientConfiguration.ts b/clients/client-amplifybackend/src/clientConfiguration.ts new file mode 100644 index 000000000000..745b36459414 --- /dev/null +++ b/clients/client-amplifybackend/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AmplifyBackendClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-amplifybackend/src/runtimeConfig.shared.ts b/clients/client-amplifybackend/src/runtimeConfig.shared.ts index d96b22d24825..31577f88d9d0 100644 --- a/clients/client-amplifybackend/src/runtimeConfig.shared.ts +++ b/clients/client-amplifybackend/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AmplifyBackendClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AmplifyBackend", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-amplifybackend/src/runtimeExtensions.ts b/clients/client-amplifybackend/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fc50535eadcb --- /dev/null +++ b/clients/client-amplifybackend/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AmplifyBackendClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AmplifyBackendClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AmplifyBackendClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts b/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts index 53dc75b96cd9..774e71d95d35 100644 --- a/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts +++ b/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts @@ -85,6 +85,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -266,6 +267,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -296,6 +302,7 @@ export interface AmplifyUIBuilderClientConfig extends AmplifyUIBuilderClientConf */ export type AmplifyUIBuilderClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -342,8 +349,9 @@ export class AmplifyUIBuilderClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-amplifyuibuilder/src/clientConfiguration.ts b/clients/client-amplifyuibuilder/src/clientConfiguration.ts new file mode 100644 index 000000000000..87f4c8549960 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AmplifyUIBuilderClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts b/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts index 62812bb0c679..39a941038c6a 100644 --- a/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts +++ b/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AmplifyUIBuilderClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AmplifyUIBuilder", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-amplifyuibuilder/src/runtimeExtensions.ts b/clients/client-amplifyuibuilder/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4fdf792b8a16 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AmplifyUIBuilderClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AmplifyUIBuilderClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AmplifyUIBuilderClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-api-gateway/src/APIGatewayClient.ts b/clients/client-api-gateway/src/APIGatewayClient.ts index a766bd620f90..4e443f04b9b7 100644 --- a/clients/client-api-gateway/src/APIGatewayClient.ts +++ b/clients/client-api-gateway/src/APIGatewayClient.ts @@ -286,6 +286,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -657,6 +658,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -687,6 +693,7 @@ export interface APIGatewayClientConfig extends APIGatewayClientConfigType {} */ export type APIGatewayClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -726,8 +733,9 @@ export class APIGatewayClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getAcceptHeaderPlugin(this.config)); diff --git a/clients/client-api-gateway/src/clientConfiguration.ts b/clients/client-api-gateway/src/clientConfiguration.ts new file mode 100644 index 000000000000..1a1828422d7c --- /dev/null +++ b/clients/client-api-gateway/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface APIGatewayClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-api-gateway/src/runtimeConfig.shared.ts b/clients/client-api-gateway/src/runtimeConfig.shared.ts index c3153b9fa4a4..b3bd5f0550bb 100644 --- a/clients/client-api-gateway/src/runtimeConfig.shared.ts +++ b/clients/client-api-gateway/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: APIGatewayClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "API Gateway", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-api-gateway/src/runtimeExtensions.ts b/clients/client-api-gateway/src/runtimeExtensions.ts new file mode 100644 index 000000000000..eb0ff04d86ed --- /dev/null +++ b/clients/client-api-gateway/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { APIGatewayClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: APIGatewayClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: APIGatewayClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-apigatewaymanagementapi/src/ApiGatewayManagementApiClient.ts b/clients/client-apigatewaymanagementapi/src/ApiGatewayManagementApiClient.ts index f78001da13f1..904919b315a3 100644 --- a/clients/client-apigatewaymanagementapi/src/ApiGatewayManagementApiClient.ts +++ b/clients/client-apigatewaymanagementapi/src/ApiGatewayManagementApiClient.ts @@ -60,6 +60,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -194,6 +195,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -224,6 +230,7 @@ export interface ApiGatewayManagementApiClientConfig extends ApiGatewayManagemen */ export type ApiGatewayManagementApiClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -262,8 +269,9 @@ export class ApiGatewayManagementApiClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-apigatewaymanagementapi/src/clientConfiguration.ts b/clients/client-apigatewaymanagementapi/src/clientConfiguration.ts new file mode 100644 index 000000000000..7df7cf776ddd --- /dev/null +++ b/clients/client-apigatewaymanagementapi/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApiGatewayManagementApiClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-apigatewaymanagementapi/src/runtimeConfig.shared.ts b/clients/client-apigatewaymanagementapi/src/runtimeConfig.shared.ts index b1b34ef3a1b2..96dfc47ca1b3 100644 --- a/clients/client-apigatewaymanagementapi/src/runtimeConfig.shared.ts +++ b/clients/client-apigatewaymanagementapi/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApiGatewayManagementApiClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ApiGatewayManagementApi", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-apigatewaymanagementapi/src/runtimeExtensions.ts b/clients/client-apigatewaymanagementapi/src/runtimeExtensions.ts new file mode 100644 index 000000000000..cf7abc90fab9 --- /dev/null +++ b/clients/client-apigatewaymanagementapi/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApiGatewayManagementApiClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApiGatewayManagementApiClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApiGatewayManagementApiClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-apigatewayv2/src/ApiGatewayV2Client.ts b/clients/client-apigatewayv2/src/ApiGatewayV2Client.ts index 215aa0344965..0b2ba613df55 100644 --- a/clients/client-apigatewayv2/src/ApiGatewayV2Client.ts +++ b/clients/client-apigatewayv2/src/ApiGatewayV2Client.ts @@ -168,6 +168,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -443,6 +444,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -473,6 +479,7 @@ export interface ApiGatewayV2ClientConfig extends ApiGatewayV2ClientConfigType { */ export type ApiGatewayV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -511,8 +518,9 @@ export class ApiGatewayV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-apigatewayv2/src/clientConfiguration.ts b/clients/client-apigatewayv2/src/clientConfiguration.ts new file mode 100644 index 000000000000..de98ca326d72 --- /dev/null +++ b/clients/client-apigatewayv2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApiGatewayV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-apigatewayv2/src/runtimeConfig.shared.ts b/clients/client-apigatewayv2/src/runtimeConfig.shared.ts index d753fd344bdb..a8fd5309597e 100644 --- a/clients/client-apigatewayv2/src/runtimeConfig.shared.ts +++ b/clients/client-apigatewayv2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApiGatewayV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ApiGatewayV2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-apigatewayv2/src/runtimeExtensions.ts b/clients/client-apigatewayv2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ec42193d3f92 --- /dev/null +++ b/clients/client-apigatewayv2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApiGatewayV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApiGatewayV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApiGatewayV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-app-mesh/src/AppMeshClient.ts b/clients/client-app-mesh/src/AppMeshClient.ts index 3ba99000eb65..e7c60d2f2888 100644 --- a/clients/client-app-mesh/src/AppMeshClient.ts +++ b/clients/client-app-mesh/src/AppMeshClient.ts @@ -146,6 +146,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -353,6 +354,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -383,6 +389,7 @@ export interface AppMeshClientConfig extends AppMeshClientConfigType {} */ export type AppMeshClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -435,8 +442,9 @@ export class AppMeshClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-app-mesh/src/clientConfiguration.ts b/clients/client-app-mesh/src/clientConfiguration.ts new file mode 100644 index 000000000000..4df7b6afb88d --- /dev/null +++ b/clients/client-app-mesh/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppMeshClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-app-mesh/src/runtimeConfig.shared.ts b/clients/client-app-mesh/src/runtimeConfig.shared.ts index 8115f37e7d11..1a4ace3fcc29 100644 --- a/clients/client-app-mesh/src/runtimeConfig.shared.ts +++ b/clients/client-app-mesh/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppMeshClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "App Mesh", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-app-mesh/src/runtimeExtensions.ts b/clients/client-app-mesh/src/runtimeExtensions.ts new file mode 100644 index 000000000000..816150575ceb --- /dev/null +++ b/clients/client-app-mesh/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppMeshClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppMeshClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppMeshClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appconfig/src/AppConfigClient.ts b/clients/client-appconfig/src/AppConfigClient.ts index b828f3147e28..efefb992c29e 100644 --- a/clients/client-appconfig/src/AppConfigClient.ts +++ b/clients/client-appconfig/src/AppConfigClient.ts @@ -163,6 +163,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -380,6 +381,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -410,6 +416,7 @@ export interface AppConfigClientConfig extends AppConfigClientConfigType {} */ export type AppConfigClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -493,8 +500,9 @@ export class AppConfigClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appconfig/src/clientConfiguration.ts b/clients/client-appconfig/src/clientConfiguration.ts new file mode 100644 index 000000000000..9e2609a86588 --- /dev/null +++ b/clients/client-appconfig/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppConfigClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appconfig/src/runtimeConfig.shared.ts b/clients/client-appconfig/src/runtimeConfig.shared.ts index b06bf9befc20..01881aba017b 100644 --- a/clients/client-appconfig/src/runtimeConfig.shared.ts +++ b/clients/client-appconfig/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppConfigClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppConfig", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appconfig/src/runtimeExtensions.ts b/clients/client-appconfig/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1f61dc4b1ef7 --- /dev/null +++ b/clients/client-appconfig/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppConfigClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppConfigClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppConfigClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appconfigdata/src/AppConfigDataClient.ts b/clients/client-appconfigdata/src/AppConfigDataClient.ts index 6967f1d39310..af9364012f21 100644 --- a/clients/client-appconfigdata/src/AppConfigDataClient.ts +++ b/clients/client-appconfigdata/src/AppConfigDataClient.ts @@ -65,6 +65,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -196,6 +197,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -226,6 +232,7 @@ export interface AppConfigDataClientConfig extends AppConfigDataClientConfigType */ export type AppConfigDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -322,8 +329,9 @@ export class AppConfigDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appconfigdata/src/clientConfiguration.ts b/clients/client-appconfigdata/src/clientConfiguration.ts new file mode 100644 index 000000000000..aac38ef5f401 --- /dev/null +++ b/clients/client-appconfigdata/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppConfigDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appconfigdata/src/runtimeConfig.shared.ts b/clients/client-appconfigdata/src/runtimeConfig.shared.ts index df2d26724653..14cef2a3c8f1 100644 --- a/clients/client-appconfigdata/src/runtimeConfig.shared.ts +++ b/clients/client-appconfigdata/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppConfigDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppConfigData", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appconfigdata/src/runtimeExtensions.ts b/clients/client-appconfigdata/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ddd3723e788a --- /dev/null +++ b/clients/client-appconfigdata/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppConfigDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppConfigDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppConfigDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appfabric/src/AppFabricClient.ts b/clients/client-appfabric/src/AppFabricClient.ts index 2a7a7e209711..d3e812d42036 100644 --- a/clients/client-appfabric/src/AppFabricClient.ts +++ b/clients/client-appfabric/src/AppFabricClient.ts @@ -125,6 +125,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface AppFabricClientConfig extends AppFabricClientConfigType {} */ export type AppFabricClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -384,8 +391,9 @@ export class AppFabricClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appfabric/src/clientConfiguration.ts b/clients/client-appfabric/src/clientConfiguration.ts new file mode 100644 index 000000000000..850d69f994ca --- /dev/null +++ b/clients/client-appfabric/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppFabricClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appfabric/src/runtimeConfig.shared.ts b/clients/client-appfabric/src/runtimeConfig.shared.ts index 24bb47558e39..d92ee3fc847e 100644 --- a/clients/client-appfabric/src/runtimeConfig.shared.ts +++ b/clients/client-appfabric/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppFabricClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppFabric", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appfabric/src/runtimeExtensions.ts b/clients/client-appfabric/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3dd36431e134 --- /dev/null +++ b/clients/client-appfabric/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppFabricClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppFabricClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppFabricClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appflow/src/AppflowClient.ts b/clients/client-appflow/src/AppflowClient.ts index 7e678fe185b7..eb60a3558a18 100644 --- a/clients/client-appflow/src/AppflowClient.ts +++ b/clients/client-appflow/src/AppflowClient.ts @@ -118,6 +118,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface AppflowClientConfig extends AppflowClientConfigType {} */ export type AppflowClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -401,8 +408,9 @@ export class AppflowClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appflow/src/clientConfiguration.ts b/clients/client-appflow/src/clientConfiguration.ts new file mode 100644 index 000000000000..a79b38af1ebf --- /dev/null +++ b/clients/client-appflow/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppflowClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appflow/src/runtimeConfig.shared.ts b/clients/client-appflow/src/runtimeConfig.shared.ts index cd4ce51eaf53..4e12d8c0c17b 100644 --- a/clients/client-appflow/src/runtimeConfig.shared.ts +++ b/clients/client-appflow/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppflowClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Appflow", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appflow/src/runtimeExtensions.ts b/clients/client-appflow/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2fa669a7d03d --- /dev/null +++ b/clients/client-appflow/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppflowClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppflowClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppflowClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appintegrations/src/AppIntegrationsClient.ts b/clients/client-appintegrations/src/AppIntegrationsClient.ts index 4478b1ccd681..874138cb4b71 100644 --- a/clients/client-appintegrations/src/AppIntegrationsClient.ts +++ b/clients/client-appintegrations/src/AppIntegrationsClient.ts @@ -108,6 +108,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface AppIntegrationsClientConfig extends AppIntegrationsClientConfig */ export type AppIntegrationsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -343,8 +350,9 @@ export class AppIntegrationsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appintegrations/src/clientConfiguration.ts b/clients/client-appintegrations/src/clientConfiguration.ts new file mode 100644 index 000000000000..4f222fa5ec05 --- /dev/null +++ b/clients/client-appintegrations/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppIntegrationsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appintegrations/src/runtimeConfig.shared.ts b/clients/client-appintegrations/src/runtimeConfig.shared.ts index 4529a59901a3..2de653301f6a 100644 --- a/clients/client-appintegrations/src/runtimeConfig.shared.ts +++ b/clients/client-appintegrations/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppIntegrationsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppIntegrations", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appintegrations/src/runtimeExtensions.ts b/clients/client-appintegrations/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e7176e1479ad --- /dev/null +++ b/clients/client-appintegrations/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppIntegrationsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppIntegrationsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppIntegrationsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-application-auto-scaling/src/ApplicationAutoScalingClient.ts b/clients/client-application-auto-scaling/src/ApplicationAutoScalingClient.ts index e50efd0d870a..0031f0e1941a 100644 --- a/clients/client-application-auto-scaling/src/ApplicationAutoScalingClient.ts +++ b/clients/client-application-auto-scaling/src/ApplicationAutoScalingClient.ts @@ -97,6 +97,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -254,6 +255,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -284,6 +290,7 @@ export interface ApplicationAutoScalingClientConfig extends ApplicationAutoScali */ export type ApplicationAutoScalingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -395,8 +402,9 @@ export class ApplicationAutoScalingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-application-auto-scaling/src/clientConfiguration.ts b/clients/client-application-auto-scaling/src/clientConfiguration.ts new file mode 100644 index 000000000000..17d5aa0a1fe8 --- /dev/null +++ b/clients/client-application-auto-scaling/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApplicationAutoScalingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-application-auto-scaling/src/runtimeConfig.shared.ts b/clients/client-application-auto-scaling/src/runtimeConfig.shared.ts index ea2207cd17cd..b06aa0371a89 100644 --- a/clients/client-application-auto-scaling/src/runtimeConfig.shared.ts +++ b/clients/client-application-auto-scaling/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApplicationAutoScalingClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Application Auto Scaling", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-application-auto-scaling/src/runtimeExtensions.ts b/clients/client-application-auto-scaling/src/runtimeExtensions.ts new file mode 100644 index 000000000000..31988a3c8205 --- /dev/null +++ b/clients/client-application-auto-scaling/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApplicationAutoScalingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApplicationAutoScalingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApplicationAutoScalingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-application-discovery-service/src/ApplicationDiscoveryServiceClient.ts b/clients/client-application-discovery-service/src/ApplicationDiscoveryServiceClient.ts index 6a22039f860c..4be0687c4cf0 100644 --- a/clients/client-application-discovery-service/src/ApplicationDiscoveryServiceClient.ts +++ b/clients/client-application-discovery-service/src/ApplicationDiscoveryServiceClient.ts @@ -127,6 +127,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface ApplicationDiscoveryServiceClientConfig extends ApplicationDisc */ export type ApplicationDiscoveryServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -482,8 +489,9 @@ export class ApplicationDiscoveryServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-application-discovery-service/src/clientConfiguration.ts b/clients/client-application-discovery-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..4aecfe437947 --- /dev/null +++ b/clients/client-application-discovery-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApplicationDiscoveryServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-application-discovery-service/src/runtimeConfig.shared.ts b/clients/client-application-discovery-service/src/runtimeConfig.shared.ts index aff47abc4c87..2de3cc5d4ca2 100644 --- a/clients/client-application-discovery-service/src/runtimeConfig.shared.ts +++ b/clients/client-application-discovery-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApplicationDiscoveryServiceClientConfig base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Application Discovery Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-application-discovery-service/src/runtimeExtensions.ts b/clients/client-application-discovery-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..77d8d70419a0 --- /dev/null +++ b/clients/client-application-discovery-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApplicationDiscoveryServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApplicationDiscoveryServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApplicationDiscoveryServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-application-insights/src/ApplicationInsightsClient.ts b/clients/client-application-insights/src/ApplicationInsightsClient.ts index f7d77d5b2ce5..235d066dbf88 100644 --- a/clients/client-application-insights/src/ApplicationInsightsClient.ts +++ b/clients/client-application-insights/src/ApplicationInsightsClient.ts @@ -114,6 +114,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -311,6 +312,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -341,6 +347,7 @@ export interface ApplicationInsightsClientConfig extends ApplicationInsightsClie */ export type ApplicationInsightsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -390,8 +397,9 @@ export class ApplicationInsightsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-application-insights/src/clientConfiguration.ts b/clients/client-application-insights/src/clientConfiguration.ts new file mode 100644 index 000000000000..5f89b1856c2a --- /dev/null +++ b/clients/client-application-insights/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApplicationInsightsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-application-insights/src/runtimeConfig.shared.ts b/clients/client-application-insights/src/runtimeConfig.shared.ts index 09db6ba5740c..719767428e1f 100644 --- a/clients/client-application-insights/src/runtimeConfig.shared.ts +++ b/clients/client-application-insights/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApplicationInsightsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Application Insights", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-application-insights/src/runtimeExtensions.ts b/clients/client-application-insights/src/runtimeExtensions.ts new file mode 100644 index 000000000000..09da249150a5 --- /dev/null +++ b/clients/client-application-insights/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApplicationInsightsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApplicationInsightsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApplicationInsightsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-applicationcostprofiler/src/ApplicationCostProfilerClient.ts b/clients/client-applicationcostprofiler/src/ApplicationCostProfilerClient.ts index 7f944fded094..703659f2fc54 100644 --- a/clients/client-applicationcostprofiler/src/ApplicationCostProfilerClient.ts +++ b/clients/client-applicationcostprofiler/src/ApplicationCostProfilerClient.ts @@ -81,6 +81,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -224,6 +225,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -254,6 +260,7 @@ export interface ApplicationCostProfilerClientConfig extends ApplicationCostProf */ export type ApplicationCostProfilerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -297,8 +304,9 @@ export class ApplicationCostProfilerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-applicationcostprofiler/src/clientConfiguration.ts b/clients/client-applicationcostprofiler/src/clientConfiguration.ts new file mode 100644 index 000000000000..e2eef8d85c9a --- /dev/null +++ b/clients/client-applicationcostprofiler/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ApplicationCostProfilerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-applicationcostprofiler/src/runtimeConfig.shared.ts b/clients/client-applicationcostprofiler/src/runtimeConfig.shared.ts index 2d0e45f6ed0f..2c093e01af06 100644 --- a/clients/client-applicationcostprofiler/src/runtimeConfig.shared.ts +++ b/clients/client-applicationcostprofiler/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ApplicationCostProfilerClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ApplicationCostProfiler", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-applicationcostprofiler/src/runtimeExtensions.ts b/clients/client-applicationcostprofiler/src/runtimeExtensions.ts new file mode 100644 index 000000000000..df719e5ae3fd --- /dev/null +++ b/clients/client-applicationcostprofiler/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ApplicationCostProfilerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ApplicationCostProfilerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ApplicationCostProfilerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-apprunner/src/AppRunnerClient.ts b/clients/client-apprunner/src/AppRunnerClient.ts index 0e9ddc35a4ce..9c9309680aa9 100644 --- a/clients/client-apprunner/src/AppRunnerClient.ts +++ b/clients/client-apprunner/src/AppRunnerClient.ts @@ -146,6 +146,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -377,6 +383,7 @@ export interface AppRunnerClientConfig extends AppRunnerClientConfigType {} */ export type AppRunnerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -431,8 +438,9 @@ export class AppRunnerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-apprunner/src/clientConfiguration.ts b/clients/client-apprunner/src/clientConfiguration.ts new file mode 100644 index 000000000000..6f3cc4c8c446 --- /dev/null +++ b/clients/client-apprunner/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppRunnerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-apprunner/src/runtimeConfig.shared.ts b/clients/client-apprunner/src/runtimeConfig.shared.ts index 26b8ba37649d..5219d17a2c44 100644 --- a/clients/client-apprunner/src/runtimeConfig.shared.ts +++ b/clients/client-apprunner/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppRunnerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppRunner", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-apprunner/src/runtimeExtensions.ts b/clients/client-apprunner/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a3707cf12f3e --- /dev/null +++ b/clients/client-apprunner/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppRunnerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppRunnerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppRunnerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appstream/src/AppStreamClient.ts b/clients/client-appstream/src/AppStreamClient.ts index 46006fd2c016..b4d6fa3675d6 100644 --- a/clients/client-appstream/src/AppStreamClient.ts +++ b/clients/client-appstream/src/AppStreamClient.ts @@ -240,6 +240,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -521,6 +522,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -551,6 +557,7 @@ export interface AppStreamClientConfig extends AppStreamClientConfigType {} */ export type AppStreamClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -606,8 +613,9 @@ export class AppStreamClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appstream/src/clientConfiguration.ts b/clients/client-appstream/src/clientConfiguration.ts new file mode 100644 index 000000000000..8cff523c3720 --- /dev/null +++ b/clients/client-appstream/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppStreamClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appstream/src/runtimeConfig.shared.ts b/clients/client-appstream/src/runtimeConfig.shared.ts index 7dc090dead0f..469ef4311569 100644 --- a/clients/client-appstream/src/runtimeConfig.shared.ts +++ b/clients/client-appstream/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppStreamClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppStream", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appstream/src/runtimeExtensions.ts b/clients/client-appstream/src/runtimeExtensions.ts new file mode 100644 index 000000000000..234782f33997 --- /dev/null +++ b/clients/client-appstream/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppStreamClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppStreamClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppStreamClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-appsync/src/AppSyncClient.ts b/clients/client-appsync/src/AppSyncClient.ts index e3e0be2063f5..9a104bd5a4dd 100644 --- a/clients/client-appsync/src/AppSyncClient.ts +++ b/clients/client-appsync/src/AppSyncClient.ts @@ -159,6 +159,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -410,6 +411,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -440,6 +446,7 @@ export interface AppSyncClientConfig extends AppSyncClientConfigType {} */ export type AppSyncClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -479,8 +486,9 @@ export class AppSyncClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-appsync/src/clientConfiguration.ts b/clients/client-appsync/src/clientConfiguration.ts new file mode 100644 index 000000000000..9fdcca70286c --- /dev/null +++ b/clients/client-appsync/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AppSyncClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-appsync/src/runtimeConfig.shared.ts b/clients/client-appsync/src/runtimeConfig.shared.ts index 46ec543cf3ca..efa049dea0c8 100644 --- a/clients/client-appsync/src/runtimeConfig.shared.ts +++ b/clients/client-appsync/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AppSyncClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AppSync", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-appsync/src/runtimeExtensions.ts b/clients/client-appsync/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6c9138c21004 --- /dev/null +++ b/clients/client-appsync/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AppSyncClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AppSyncClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AppSyncClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-arc-zonal-shift/src/ARCZonalShiftClient.ts b/clients/client-arc-zonal-shift/src/ARCZonalShiftClient.ts index 889b6e6fc640..56932c2596d4 100644 --- a/clients/client-arc-zonal-shift/src/ARCZonalShiftClient.ts +++ b/clients/client-arc-zonal-shift/src/ARCZonalShiftClient.ts @@ -66,6 +66,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -209,6 +210,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -239,6 +245,7 @@ export interface ARCZonalShiftClientConfig extends ARCZonalShiftClientConfigType */ export type ARCZonalShiftClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -291,8 +298,9 @@ export class ARCZonalShiftClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-arc-zonal-shift/src/clientConfiguration.ts b/clients/client-arc-zonal-shift/src/clientConfiguration.ts new file mode 100644 index 000000000000..3cae3bab0678 --- /dev/null +++ b/clients/client-arc-zonal-shift/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ARCZonalShiftClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-arc-zonal-shift/src/runtimeConfig.shared.ts b/clients/client-arc-zonal-shift/src/runtimeConfig.shared.ts index 8fafec3cd873..fbf1f34449aa 100644 --- a/clients/client-arc-zonal-shift/src/runtimeConfig.shared.ts +++ b/clients/client-arc-zonal-shift/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ARCZonalShiftClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ARC Zonal Shift", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-arc-zonal-shift/src/runtimeExtensions.ts b/clients/client-arc-zonal-shift/src/runtimeExtensions.ts new file mode 100644 index 000000000000..acbb474be9f7 --- /dev/null +++ b/clients/client-arc-zonal-shift/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ARCZonalShiftClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ARCZonalShiftClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ARCZonalShiftClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-athena/src/AthenaClient.ts b/clients/client-athena/src/AthenaClient.ts index ffa28ce174bf..7db18eb65abc 100644 --- a/clients/client-athena/src/AthenaClient.ts +++ b/clients/client-athena/src/AthenaClient.ts @@ -218,6 +218,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -485,6 +486,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -515,6 +521,7 @@ export interface AthenaClientConfig extends AthenaClientConfigType {} */ export type AthenaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -566,8 +573,9 @@ export class AthenaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-athena/src/clientConfiguration.ts b/clients/client-athena/src/clientConfiguration.ts new file mode 100644 index 000000000000..859bd41c97f0 --- /dev/null +++ b/clients/client-athena/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AthenaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-athena/src/runtimeConfig.shared.ts b/clients/client-athena/src/runtimeConfig.shared.ts index 8b30ae75ba99..0f523a0b9691 100644 --- a/clients/client-athena/src/runtimeConfig.shared.ts +++ b/clients/client-athena/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AthenaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Athena", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-athena/src/runtimeExtensions.ts b/clients/client-athena/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dfc95991a2ac --- /dev/null +++ b/clients/client-athena/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AthenaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AthenaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AthenaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-auditmanager/src/AuditManagerClient.ts b/clients/client-auditmanager/src/AuditManagerClient.ts index cd093a6a034e..6ca3efc17415 100644 --- a/clients/client-auditmanager/src/AuditManagerClient.ts +++ b/clients/client-auditmanager/src/AuditManagerClient.ts @@ -233,6 +233,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -488,6 +489,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -518,6 +524,7 @@ export interface AuditManagerClientConfig extends AuditManagerClientConfigType { */ export type AuditManagerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -591,8 +598,9 @@ export class AuditManagerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-auditmanager/src/clientConfiguration.ts b/clients/client-auditmanager/src/clientConfiguration.ts new file mode 100644 index 000000000000..b06059b0b7ee --- /dev/null +++ b/clients/client-auditmanager/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AuditManagerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-auditmanager/src/runtimeConfig.shared.ts b/clients/client-auditmanager/src/runtimeConfig.shared.ts index 3c46659b3db3..1f14672acbce 100644 --- a/clients/client-auditmanager/src/runtimeConfig.shared.ts +++ b/clients/client-auditmanager/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AuditManagerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "AuditManager", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-auditmanager/src/runtimeExtensions.ts b/clients/client-auditmanager/src/runtimeExtensions.ts new file mode 100644 index 000000000000..eb8a041aeb59 --- /dev/null +++ b/clients/client-auditmanager/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AuditManagerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AuditManagerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AuditManagerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-auto-scaling-plans/src/AutoScalingPlansClient.ts b/clients/client-auto-scaling-plans/src/AutoScalingPlansClient.ts index b74bc15778e1..8ce2491f30c7 100644 --- a/clients/client-auto-scaling-plans/src/AutoScalingPlansClient.ts +++ b/clients/client-auto-scaling-plans/src/AutoScalingPlansClient.ts @@ -72,6 +72,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -215,6 +216,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -245,6 +251,7 @@ export interface AutoScalingPlansClientConfig extends AutoScalingPlansClientConf */ export type AutoScalingPlansClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -317,8 +324,9 @@ export class AutoScalingPlansClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-auto-scaling-plans/src/clientConfiguration.ts b/clients/client-auto-scaling-plans/src/clientConfiguration.ts new file mode 100644 index 000000000000..27114d099664 --- /dev/null +++ b/clients/client-auto-scaling-plans/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AutoScalingPlansClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-auto-scaling-plans/src/runtimeConfig.shared.ts b/clients/client-auto-scaling-plans/src/runtimeConfig.shared.ts index 642ef538194a..9cd301b7836b 100644 --- a/clients/client-auto-scaling-plans/src/runtimeConfig.shared.ts +++ b/clients/client-auto-scaling-plans/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AutoScalingPlansClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Auto Scaling Plans", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-auto-scaling-plans/src/runtimeExtensions.ts b/clients/client-auto-scaling-plans/src/runtimeExtensions.ts new file mode 100644 index 000000000000..45e7c2be7536 --- /dev/null +++ b/clients/client-auto-scaling-plans/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AutoScalingPlansClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AutoScalingPlansClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AutoScalingPlansClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-auto-scaling/src/AutoScalingClient.ts b/clients/client-auto-scaling/src/AutoScalingClient.ts index 80a28bdf50c9..7d73458584f1 100644 --- a/clients/client-auto-scaling/src/AutoScalingClient.ts +++ b/clients/client-auto-scaling/src/AutoScalingClient.ts @@ -260,6 +260,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -521,6 +522,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -551,6 +557,7 @@ export interface AutoScalingClientConfig extends AutoScalingClientConfigType {} */ export type AutoScalingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -592,8 +599,9 @@ export class AutoScalingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-auto-scaling/src/clientConfiguration.ts b/clients/client-auto-scaling/src/clientConfiguration.ts new file mode 100644 index 000000000000..a342921a761c --- /dev/null +++ b/clients/client-auto-scaling/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface AutoScalingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts b/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts index 4da6691917e6..cbc87d7ecfc4 100644 --- a/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts +++ b/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts @@ -329,49 +329,6 @@ export interface CreateAutoScalingGroupCommandOutput extends __MetadataBearer {} * }; * const command = new CreateAutoScalingGroupCommand(input); * await client.send(command); - * // example id: to-create-an-auto-scaling-group-with-a-mixed-instances-policy-1617815269039 - * ``` - * - * @example To create an Auto Scaling group with a mixed instances policy - * ```javascript - * // This example creates an Auto Scaling group with a mixed instances policy. It specifies the c5.large, c5a.large, and c6g.large instance types and defines a different launch template for the c6g.large instance type. - * const input = { - * "AutoScalingGroupName": "my-asg", - * "DesiredCapacity": 3, - * "MaxSize": 5, - * "MinSize": 1, - * "MixedInstancesPolicy": { - * "InstancesDistribution": { - * "OnDemandBaseCapacity": 1, - * "OnDemandPercentageAboveBaseCapacity": 50, - * "SpotAllocationStrategy": "price-capacity-optimized" - * }, - * "LaunchTemplate": { - * "LaunchTemplateSpecification": { - * "LaunchTemplateName": "my-launch-template-for-x86", - * "Version": "$Default" - * }, - * "Overrides": [ - * { - * "InstanceType": "c6g.large", - * "LaunchTemplateSpecification": { - * "LaunchTemplateName": "my-launch-template-for-arm", - * "Version": "$Default" - * } - * }, - * { - * "InstanceType": "c5.large" - * }, - * { - * "InstanceType": "c5a.large" - * } - * ] - * } - * }, - * "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE" - * }; - * const command = new CreateAutoScalingGroupCommand(input); - * await client.send(command); * // example id: autoscaling-create-auto-scaling-group-3 * ``` * diff --git a/clients/client-auto-scaling/src/runtimeConfig.shared.ts b/clients/client-auto-scaling/src/runtimeConfig.shared.ts index 8a355b48588e..ae7aaf7312f9 100644 --- a/clients/client-auto-scaling/src/runtimeConfig.shared.ts +++ b/clients/client-auto-scaling/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: AutoScalingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Auto Scaling", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-auto-scaling/src/runtimeExtensions.ts b/clients/client-auto-scaling/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dcfbb6a2a072 --- /dev/null +++ b/clients/client-auto-scaling/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { AutoScalingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: AutoScalingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: AutoScalingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-backup-gateway/src/BackupGatewayClient.ts b/clients/client-backup-gateway/src/BackupGatewayClient.ts index a64aa08b9494..89cd35330235 100644 --- a/clients/client-backup-gateway/src/BackupGatewayClient.ts +++ b/clients/client-backup-gateway/src/BackupGatewayClient.ts @@ -124,6 +124,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -305,6 +306,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -335,6 +341,7 @@ export interface BackupGatewayClientConfig extends BackupGatewayClientConfigType */ export type BackupGatewayClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -381,8 +388,9 @@ export class BackupGatewayClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-backup-gateway/src/clientConfiguration.ts b/clients/client-backup-gateway/src/clientConfiguration.ts new file mode 100644 index 000000000000..32401324caa6 --- /dev/null +++ b/clients/client-backup-gateway/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BackupGatewayClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-backup-gateway/src/runtimeConfig.shared.ts b/clients/client-backup-gateway/src/runtimeConfig.shared.ts index e839c3467f5b..2e8a0634541c 100644 --- a/clients/client-backup-gateway/src/runtimeConfig.shared.ts +++ b/clients/client-backup-gateway/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BackupGatewayClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Backup Gateway", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-backup-gateway/src/runtimeExtensions.ts b/clients/client-backup-gateway/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b2c1ec68ccef --- /dev/null +++ b/clients/client-backup-gateway/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BackupGatewayClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BackupGatewayClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BackupGatewayClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-backup/src/BackupClient.ts b/clients/client-backup/src/BackupClient.ts index 5f3d08e14a03..f78313e733e9 100644 --- a/clients/client-backup/src/BackupClient.ts +++ b/clients/client-backup/src/BackupClient.ts @@ -236,6 +236,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -515,6 +516,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -545,6 +551,7 @@ export interface BackupClientConfig extends BackupClientConfigType {} */ export type BackupClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -587,8 +594,9 @@ export class BackupClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-backup/src/clientConfiguration.ts b/clients/client-backup/src/clientConfiguration.ts new file mode 100644 index 000000000000..0300a7ca23e8 --- /dev/null +++ b/clients/client-backup/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BackupClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-backup/src/runtimeConfig.shared.ts b/clients/client-backup/src/runtimeConfig.shared.ts index 8abe07a9df6e..c5311cd4df9b 100644 --- a/clients/client-backup/src/runtimeConfig.shared.ts +++ b/clients/client-backup/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BackupClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Backup", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-backup/src/runtimeExtensions.ts b/clients/client-backup/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9edab22b3d9c --- /dev/null +++ b/clients/client-backup/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BackupClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BackupClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BackupClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-backupstorage/src/BackupStorageClient.ts b/clients/client-backupstorage/src/BackupStorageClient.ts index 09bee1340572..588f17558c82 100644 --- a/clients/client-backupstorage/src/BackupStorageClient.ts +++ b/clients/client-backupstorage/src/BackupStorageClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -219,6 +220,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -255,6 +261,7 @@ export interface BackupStorageClientConfig extends BackupStorageClientConfigType */ export type BackupStorageClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -293,8 +300,9 @@ export class BackupStorageClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-backupstorage/src/clientConfiguration.ts b/clients/client-backupstorage/src/clientConfiguration.ts new file mode 100644 index 000000000000..4171523fc4ba --- /dev/null +++ b/clients/client-backupstorage/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BackupStorageClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-backupstorage/src/runtimeConfig.shared.ts b/clients/client-backupstorage/src/runtimeConfig.shared.ts index 78f0639d7d75..1334a28d8761 100644 --- a/clients/client-backupstorage/src/runtimeConfig.shared.ts +++ b/clients/client-backupstorage/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: BackupStorageClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "BackupStorage", diff --git a/clients/client-backupstorage/src/runtimeExtensions.ts b/clients/client-backupstorage/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d6155c6b6fcf --- /dev/null +++ b/clients/client-backupstorage/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BackupStorageClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BackupStorageClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BackupStorageClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-batch/src/BatchClient.ts b/clients/client-batch/src/BatchClient.ts index a7b71c837989..7d92c46d7f4c 100644 --- a/clients/client-batch/src/BatchClient.ts +++ b/clients/client-batch/src/BatchClient.ts @@ -120,6 +120,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface BatchClientConfig extends BatchClientConfigType {} */ export type BatchClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -377,8 +384,9 @@ export class BatchClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-batch/src/clientConfiguration.ts b/clients/client-batch/src/clientConfiguration.ts new file mode 100644 index 000000000000..60909f911dd0 --- /dev/null +++ b/clients/client-batch/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BatchClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-batch/src/runtimeConfig.shared.ts b/clients/client-batch/src/runtimeConfig.shared.ts index 417deec3d2ea..8ebd66d22abd 100644 --- a/clients/client-batch/src/runtimeConfig.shared.ts +++ b/clients/client-batch/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BatchClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Batch", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-batch/src/runtimeExtensions.ts b/clients/client-batch/src/runtimeExtensions.ts new file mode 100644 index 000000000000..92b9da4e7209 --- /dev/null +++ b/clients/client-batch/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BatchClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BatchClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BatchClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-billingconductor/src/BillingconductorClient.ts b/clients/client-billingconductor/src/BillingconductorClient.ts index f90e5c77847e..ffcb72445e11 100644 --- a/clients/client-billingconductor/src/BillingconductorClient.ts +++ b/clients/client-billingconductor/src/BillingconductorClient.ts @@ -136,6 +136,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -329,6 +330,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -359,6 +365,7 @@ export interface BillingconductorClientConfig extends BillingconductorClientConf */ export type BillingconductorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -408,8 +415,9 @@ export class BillingconductorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-billingconductor/src/clientConfiguration.ts b/clients/client-billingconductor/src/clientConfiguration.ts new file mode 100644 index 000000000000..ac769621ccab --- /dev/null +++ b/clients/client-billingconductor/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BillingconductorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-billingconductor/src/runtimeConfig.shared.ts b/clients/client-billingconductor/src/runtimeConfig.shared.ts index 96836d80fed3..7eb6bf3cfdf4 100644 --- a/clients/client-billingconductor/src/runtimeConfig.shared.ts +++ b/clients/client-billingconductor/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BillingconductorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "billingconductor", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-billingconductor/src/runtimeExtensions.ts b/clients/client-billingconductor/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9fffa5b4836e --- /dev/null +++ b/clients/client-billingconductor/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BillingconductorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BillingconductorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BillingconductorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-braket/src/BraketClient.ts b/clients/client-braket/src/BraketClient.ts index c9b9cdf0d078..3e01efe5005d 100644 --- a/clients/client-braket/src/BraketClient.ts +++ b/clients/client-braket/src/BraketClient.ts @@ -73,6 +73,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface BraketClientConfig extends BraketClientConfigType {} */ export type BraketClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -307,8 +314,9 @@ export class BraketClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-braket/src/clientConfiguration.ts b/clients/client-braket/src/clientConfiguration.ts new file mode 100644 index 000000000000..7c89c7dd14d9 --- /dev/null +++ b/clients/client-braket/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BraketClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-braket/src/runtimeConfig.shared.ts b/clients/client-braket/src/runtimeConfig.shared.ts index e110383e641b..47f192d25d9a 100644 --- a/clients/client-braket/src/runtimeConfig.shared.ts +++ b/clients/client-braket/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BraketClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Braket", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-braket/src/runtimeExtensions.ts b/clients/client-braket/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8c3174cdf868 --- /dev/null +++ b/clients/client-braket/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BraketClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BraketClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BraketClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-budgets/src/BudgetsClient.ts b/clients/client-budgets/src/BudgetsClient.ts index 492c47eef471..9a5e45bca2c8 100644 --- a/clients/client-budgets/src/BudgetsClient.ts +++ b/clients/client-budgets/src/BudgetsClient.ts @@ -107,6 +107,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -284,6 +285,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -314,6 +320,7 @@ export interface BudgetsClientConfig extends BudgetsClientConfigType {} */ export type BudgetsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -394,8 +401,9 @@ export class BudgetsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-budgets/src/clientConfiguration.ts b/clients/client-budgets/src/clientConfiguration.ts new file mode 100644 index 000000000000..2026ddf2d071 --- /dev/null +++ b/clients/client-budgets/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface BudgetsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-budgets/src/runtimeConfig.shared.ts b/clients/client-budgets/src/runtimeConfig.shared.ts index 6a30cd38cfb5..630bdbb84f99 100644 --- a/clients/client-budgets/src/runtimeConfig.shared.ts +++ b/clients/client-budgets/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: BudgetsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Budgets", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-budgets/src/runtimeExtensions.ts b/clients/client-budgets/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7f0ff866cf29 --- /dev/null +++ b/clients/client-budgets/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { BudgetsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: BudgetsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: BudgetsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime-sdk-identity/src/ChimeSDKIdentityClient.ts b/clients/client-chime-sdk-identity/src/ChimeSDKIdentityClient.ts index 55196be64016..6cf875d87964 100644 --- a/clients/client-chime-sdk-identity/src/ChimeSDKIdentityClient.ts +++ b/clients/client-chime-sdk-identity/src/ChimeSDKIdentityClient.ts @@ -159,6 +159,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -350,6 +351,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -380,6 +386,7 @@ export interface ChimeSDKIdentityClientConfig extends ChimeSDKIdentityClientConf */ export type ChimeSDKIdentityClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -421,8 +428,9 @@ export class ChimeSDKIdentityClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime-sdk-identity/src/clientConfiguration.ts b/clients/client-chime-sdk-identity/src/clientConfiguration.ts new file mode 100644 index 000000000000..10a708b752e9 --- /dev/null +++ b/clients/client-chime-sdk-identity/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeSDKIdentityClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime-sdk-identity/src/runtimeConfig.shared.ts b/clients/client-chime-sdk-identity/src/runtimeConfig.shared.ts index 7d92e4ec1a5e..acabf46eaa56 100644 --- a/clients/client-chime-sdk-identity/src/runtimeConfig.shared.ts +++ b/clients/client-chime-sdk-identity/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeSDKIdentityClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime SDK Identity", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime-sdk-identity/src/runtimeExtensions.ts b/clients/client-chime-sdk-identity/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9dbb8bea8b26 --- /dev/null +++ b/clients/client-chime-sdk-identity/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeSDKIdentityClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeSDKIdentityClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeSDKIdentityClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime-sdk-media-pipelines/src/ChimeSDKMediaPipelinesClient.ts b/clients/client-chime-sdk-media-pipelines/src/ChimeSDKMediaPipelinesClient.ts index 7f18cb5e34b3..f1311e4d2cf0 100644 --- a/clients/client-chime-sdk-media-pipelines/src/ChimeSDKMediaPipelinesClient.ts +++ b/clients/client-chime-sdk-media-pipelines/src/ChimeSDKMediaPipelinesClient.ts @@ -121,6 +121,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -290,6 +291,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -320,6 +326,7 @@ export interface ChimeSDKMediaPipelinesClientConfig extends ChimeSDKMediaPipelin */ export type ChimeSDKMediaPipelinesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -359,8 +366,9 @@ export class ChimeSDKMediaPipelinesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime-sdk-media-pipelines/src/clientConfiguration.ts b/clients/client-chime-sdk-media-pipelines/src/clientConfiguration.ts new file mode 100644 index 000000000000..93dc3c6b18a1 --- /dev/null +++ b/clients/client-chime-sdk-media-pipelines/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeSDKMediaPipelinesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime-sdk-media-pipelines/src/runtimeConfig.shared.ts b/clients/client-chime-sdk-media-pipelines/src/runtimeConfig.shared.ts index 181efb313fc9..8e476ed3c892 100644 --- a/clients/client-chime-sdk-media-pipelines/src/runtimeConfig.shared.ts +++ b/clients/client-chime-sdk-media-pipelines/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeSDKMediaPipelinesClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime SDK Media Pipelines", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime-sdk-media-pipelines/src/runtimeExtensions.ts b/clients/client-chime-sdk-media-pipelines/src/runtimeExtensions.ts new file mode 100644 index 000000000000..af2445f610f7 --- /dev/null +++ b/clients/client-chime-sdk-media-pipelines/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeSDKMediaPipelinesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeSDKMediaPipelinesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeSDKMediaPipelinesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime-sdk-meetings/src/ChimeSDKMeetingsClient.ts b/clients/client-chime-sdk-meetings/src/ChimeSDKMeetingsClient.ts index e95d6f135f96..688f1c6561fd 100644 --- a/clients/client-chime-sdk-meetings/src/ChimeSDKMeetingsClient.ts +++ b/clients/client-chime-sdk-meetings/src/ChimeSDKMeetingsClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface ChimeSDKMeetingsClientConfig extends ChimeSDKMeetingsClientConf */ export type ChimeSDKMeetingsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -327,8 +334,9 @@ export class ChimeSDKMeetingsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime-sdk-meetings/src/clientConfiguration.ts b/clients/client-chime-sdk-meetings/src/clientConfiguration.ts new file mode 100644 index 000000000000..d652e6fa2800 --- /dev/null +++ b/clients/client-chime-sdk-meetings/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeSDKMeetingsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime-sdk-meetings/src/runtimeConfig.shared.ts b/clients/client-chime-sdk-meetings/src/runtimeConfig.shared.ts index 706f5ee207d6..d7ef0f82b45c 100644 --- a/clients/client-chime-sdk-meetings/src/runtimeConfig.shared.ts +++ b/clients/client-chime-sdk-meetings/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeSDKMeetingsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime SDK Meetings", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime-sdk-meetings/src/runtimeExtensions.ts b/clients/client-chime-sdk-meetings/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2a49814b390d --- /dev/null +++ b/clients/client-chime-sdk-meetings/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeSDKMeetingsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeSDKMeetingsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeSDKMeetingsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime-sdk-messaging/src/ChimeSDKMessagingClient.ts b/clients/client-chime-sdk-messaging/src/ChimeSDKMessagingClient.ts index 1fabc241ca7a..e8f68f1199d0 100644 --- a/clients/client-chime-sdk-messaging/src/ChimeSDKMessagingClient.ts +++ b/clients/client-chime-sdk-messaging/src/ChimeSDKMessagingClient.ts @@ -204,6 +204,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -437,6 +438,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -467,6 +473,7 @@ export interface ChimeSDKMessagingClientConfig extends ChimeSDKMessagingClientCo */ export type ChimeSDKMessagingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -508,8 +515,9 @@ export class ChimeSDKMessagingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime-sdk-messaging/src/clientConfiguration.ts b/clients/client-chime-sdk-messaging/src/clientConfiguration.ts new file mode 100644 index 000000000000..790779df68b6 --- /dev/null +++ b/clients/client-chime-sdk-messaging/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeSDKMessagingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime-sdk-messaging/src/runtimeConfig.shared.ts b/clients/client-chime-sdk-messaging/src/runtimeConfig.shared.ts index 308d4e7f3c8d..53d5b63f8e19 100644 --- a/clients/client-chime-sdk-messaging/src/runtimeConfig.shared.ts +++ b/clients/client-chime-sdk-messaging/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeSDKMessagingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime SDK Messaging", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime-sdk-messaging/src/runtimeExtensions.ts b/clients/client-chime-sdk-messaging/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b7d1c9adebde --- /dev/null +++ b/clients/client-chime-sdk-messaging/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeSDKMessagingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeSDKMessagingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeSDKMessagingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime-sdk-voice/src/ChimeSDKVoiceClient.ts b/clients/client-chime-sdk-voice/src/ChimeSDKVoiceClient.ts index a45912cf296a..0c69c1e3c45a 100644 --- a/clients/client-chime-sdk-voice/src/ChimeSDKVoiceClient.ts +++ b/clients/client-chime-sdk-voice/src/ChimeSDKVoiceClient.ts @@ -357,6 +357,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -674,6 +675,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -704,6 +710,7 @@ export interface ChimeSDKVoiceClientConfig extends ChimeSDKVoiceClientConfigType */ export type ChimeSDKVoiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -743,8 +750,9 @@ export class ChimeSDKVoiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime-sdk-voice/src/clientConfiguration.ts b/clients/client-chime-sdk-voice/src/clientConfiguration.ts new file mode 100644 index 000000000000..63e3d1ff2c4e --- /dev/null +++ b/clients/client-chime-sdk-voice/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeSDKVoiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime-sdk-voice/src/runtimeConfig.shared.ts b/clients/client-chime-sdk-voice/src/runtimeConfig.shared.ts index a0974377a4df..99bd0b6e4619 100644 --- a/clients/client-chime-sdk-voice/src/runtimeConfig.shared.ts +++ b/clients/client-chime-sdk-voice/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeSDKVoiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime SDK Voice", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime-sdk-voice/src/runtimeExtensions.ts b/clients/client-chime-sdk-voice/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b9f71040e27b --- /dev/null +++ b/clients/client-chime-sdk-voice/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeSDKVoiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeSDKVoiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeSDKVoiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-chime/src/ChimeClient.ts b/clients/client-chime/src/ChimeClient.ts index 049a684c5276..feb8b7a5a6e7 100644 --- a/clients/client-chime/src/ChimeClient.ts +++ b/clients/client-chime/src/ChimeClient.ts @@ -593,6 +593,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -1106,6 +1107,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -1136,6 +1142,7 @@ export interface ChimeClientConfig extends ChimeClientConfigType {} */ export type ChimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1218,8 +1225,9 @@ export class ChimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-chime/src/clientConfiguration.ts b/clients/client-chime/src/clientConfiguration.ts new file mode 100644 index 000000000000..3fb81e1d0520 --- /dev/null +++ b/clients/client-chime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ChimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-chime/src/runtimeConfig.shared.ts b/clients/client-chime/src/runtimeConfig.shared.ts index 6d4ba251e2eb..d5b76887cd19 100644 --- a/clients/client-chime/src/runtimeConfig.shared.ts +++ b/clients/client-chime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ChimeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Chime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-chime/src/runtimeExtensions.ts b/clients/client-chime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..23954ebf279f --- /dev/null +++ b/clients/client-chime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ChimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ChimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ChimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cleanrooms/src/CleanRoomsClient.ts b/clients/client-cleanrooms/src/CleanRoomsClient.ts index a36a22232d59..ef9279e12e0c 100644 --- a/clients/client-cleanrooms/src/CleanRoomsClient.ts +++ b/clients/client-cleanrooms/src/CleanRoomsClient.ts @@ -189,6 +189,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -410,6 +411,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -440,6 +446,7 @@ export interface CleanRoomsClientConfig extends CleanRoomsClientConfigType {} */ export type CleanRoomsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -484,8 +491,9 @@ export class CleanRoomsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cleanrooms/src/clientConfiguration.ts b/clients/client-cleanrooms/src/clientConfiguration.ts new file mode 100644 index 000000000000..1d1dafca7cfe --- /dev/null +++ b/clients/client-cleanrooms/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CleanRoomsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cleanrooms/src/runtimeConfig.shared.ts b/clients/client-cleanrooms/src/runtimeConfig.shared.ts index ddda52f40304..61c5a997c4f0 100644 --- a/clients/client-cleanrooms/src/runtimeConfig.shared.ts +++ b/clients/client-cleanrooms/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CleanRoomsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CleanRooms", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cleanrooms/src/runtimeExtensions.ts b/clients/client-cleanrooms/src/runtimeExtensions.ts new file mode 100644 index 000000000000..526597cf088e --- /dev/null +++ b/clients/client-cleanrooms/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CleanRoomsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CleanRoomsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CleanRoomsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloud9/src/Cloud9Client.ts b/clients/client-cloud9/src/Cloud9Client.ts index 8ce5582e6315..fc5d0fcad759 100644 --- a/clients/client-cloud9/src/Cloud9Client.ts +++ b/clients/client-cloud9/src/Cloud9Client.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -251,6 +252,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -281,6 +287,7 @@ export interface Cloud9ClientConfig extends Cloud9ClientConfigType {} */ export type Cloud9ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -385,8 +392,9 @@ export class Cloud9Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloud9/src/clientConfiguration.ts b/clients/client-cloud9/src/clientConfiguration.ts new file mode 100644 index 000000000000..f9e2b4ead8e4 --- /dev/null +++ b/clients/client-cloud9/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Cloud9ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloud9/src/runtimeConfig.shared.ts b/clients/client-cloud9/src/runtimeConfig.shared.ts index a42f403de193..5abefaa14a66 100644 --- a/clients/client-cloud9/src/runtimeConfig.shared.ts +++ b/clients/client-cloud9/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Cloud9ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cloud9", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloud9/src/runtimeExtensions.ts b/clients/client-cloud9/src/runtimeExtensions.ts new file mode 100644 index 000000000000..611275cd53ed --- /dev/null +++ b/clients/client-cloud9/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Cloud9ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Cloud9ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Cloud9ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudcontrol/src/CloudControlClient.ts b/clients/client-cloudcontrol/src/CloudControlClient.ts index a5b0c4c30cfc..7ac503ac78c7 100644 --- a/clients/client-cloudcontrol/src/CloudControlClient.ts +++ b/clients/client-cloudcontrol/src/CloudControlClient.ts @@ -74,6 +74,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface CloudControlClientConfig extends CloudControlClientConfigType { */ export type CloudControlClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -290,8 +297,9 @@ export class CloudControlClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudcontrol/src/clientConfiguration.ts b/clients/client-cloudcontrol/src/clientConfiguration.ts new file mode 100644 index 000000000000..9ea459562593 --- /dev/null +++ b/clients/client-cloudcontrol/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudControlClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudcontrol/src/runtimeConfig.shared.ts b/clients/client-cloudcontrol/src/runtimeConfig.shared.ts index 3dd46e434b10..32d5419ab3d2 100644 --- a/clients/client-cloudcontrol/src/runtimeConfig.shared.ts +++ b/clients/client-cloudcontrol/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudControlClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudControl", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudcontrol/src/runtimeExtensions.ts b/clients/client-cloudcontrol/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f35c3a05d3ec --- /dev/null +++ b/clients/client-cloudcontrol/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudControlClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudControlClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudControlClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-clouddirectory/src/CloudDirectoryClient.ts b/clients/client-clouddirectory/src/CloudDirectoryClient.ts index 641899f46b0b..4769eb89338b 100644 --- a/clients/client-clouddirectory/src/CloudDirectoryClient.ts +++ b/clients/client-clouddirectory/src/CloudDirectoryClient.ts @@ -201,6 +201,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -464,6 +465,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -494,6 +500,7 @@ export interface CloudDirectoryClientConfig extends CloudDirectoryClientConfigTy */ export type CloudDirectoryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -537,8 +544,9 @@ export class CloudDirectoryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-clouddirectory/src/clientConfiguration.ts b/clients/client-clouddirectory/src/clientConfiguration.ts new file mode 100644 index 000000000000..e34c6966b38c --- /dev/null +++ b/clients/client-clouddirectory/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudDirectoryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-clouddirectory/src/runtimeConfig.shared.ts b/clients/client-clouddirectory/src/runtimeConfig.shared.ts index a7a61fa5eb1c..100f8a781bb8 100644 --- a/clients/client-clouddirectory/src/runtimeConfig.shared.ts +++ b/clients/client-clouddirectory/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudDirectoryClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudDirectory", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-clouddirectory/src/runtimeExtensions.ts b/clients/client-clouddirectory/src/runtimeExtensions.ts new file mode 100644 index 000000000000..556ee87678d6 --- /dev/null +++ b/clients/client-clouddirectory/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudDirectoryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudDirectoryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudDirectoryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudformation/src/CloudFormationClient.ts b/clients/client-cloudformation/src/CloudFormationClient.ts index 7302f95cd66f..cc55b604acd3 100644 --- a/clients/client-cloudformation/src/CloudFormationClient.ts +++ b/clients/client-cloudformation/src/CloudFormationClient.ts @@ -220,6 +220,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -491,6 +492,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -521,6 +527,7 @@ export interface CloudFormationClientConfig extends CloudFormationClientConfigTy */ export type CloudFormationClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -568,8 +575,9 @@ export class CloudFormationClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudformation/src/clientConfiguration.ts b/clients/client-cloudformation/src/clientConfiguration.ts new file mode 100644 index 000000000000..666f88108da0 --- /dev/null +++ b/clients/client-cloudformation/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudFormationClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudformation/src/runtimeConfig.shared.ts b/clients/client-cloudformation/src/runtimeConfig.shared.ts index 02425ce94fc8..7d2e94418997 100644 --- a/clients/client-cloudformation/src/runtimeConfig.shared.ts +++ b/clients/client-cloudformation/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudFormationClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudFormation", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudformation/src/runtimeExtensions.ts b/clients/client-cloudformation/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5e748d4a8f71 --- /dev/null +++ b/clients/client-cloudformation/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudFormationClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudFormationClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudFormationClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudfront/src/CloudFrontClient.ts b/clients/client-cloudfront/src/CloudFrontClient.ts index 238b3fa66214..5fac4294713c 100644 --- a/clients/client-cloudfront/src/CloudFrontClient.ts +++ b/clients/client-cloudfront/src/CloudFrontClient.ts @@ -370,6 +370,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -713,6 +714,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -743,6 +749,7 @@ export interface CloudFrontClientConfig extends CloudFrontClientConfigType {} */ export type CloudFrontClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -785,8 +792,9 @@ export class CloudFrontClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudfront/src/clientConfiguration.ts b/clients/client-cloudfront/src/clientConfiguration.ts new file mode 100644 index 000000000000..b187afbd9f2d --- /dev/null +++ b/clients/client-cloudfront/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudFrontClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudfront/src/runtimeConfig.shared.ts b/clients/client-cloudfront/src/runtimeConfig.shared.ts index b371285b64a0..27aa25f14c92 100644 --- a/clients/client-cloudfront/src/runtimeConfig.shared.ts +++ b/clients/client-cloudfront/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudFrontClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudFront", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudfront/src/runtimeExtensions.ts b/clients/client-cloudfront/src/runtimeExtensions.ts new file mode 100644 index 000000000000..396760a3032e --- /dev/null +++ b/clients/client-cloudfront/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudFrontClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudFrontClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudFrontClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudhsm-v2/src/CloudHSMV2Client.ts b/clients/client-cloudhsm-v2/src/CloudHSMV2Client.ts index 195a0f3c7c6d..2bc4fab7fdbb 100644 --- a/clients/client-cloudhsm-v2/src/CloudHSMV2Client.ts +++ b/clients/client-cloudhsm-v2/src/CloudHSMV2Client.ts @@ -75,6 +75,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -236,6 +237,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -266,6 +272,7 @@ export interface CloudHSMV2ClientConfig extends CloudHSMV2ClientConfigType {} */ export type CloudHSMV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -305,8 +312,9 @@ export class CloudHSMV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudhsm-v2/src/clientConfiguration.ts b/clients/client-cloudhsm-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..45d32a77618f --- /dev/null +++ b/clients/client-cloudhsm-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudHSMV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudhsm-v2/src/runtimeConfig.shared.ts b/clients/client-cloudhsm-v2/src/runtimeConfig.shared.ts index cc6b109152a6..58ce6e17839d 100644 --- a/clients/client-cloudhsm-v2/src/runtimeConfig.shared.ts +++ b/clients/client-cloudhsm-v2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudHSMV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudHSM V2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudhsm-v2/src/runtimeExtensions.ts b/clients/client-cloudhsm-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3291929a8198 --- /dev/null +++ b/clients/client-cloudhsm-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudHSMV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudHSMV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudHSMV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudhsm/src/CloudHSMClient.ts b/clients/client-cloudhsm/src/CloudHSMClient.ts index 71fcac990299..77d83aaa7a29 100644 --- a/clients/client-cloudhsm/src/CloudHSMClient.ts +++ b/clients/client-cloudhsm/src/CloudHSMClient.ts @@ -83,6 +83,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -254,6 +255,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -284,6 +290,7 @@ export interface CloudHSMClientConfig extends CloudHSMClientConfigType {} */ export type CloudHSMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -332,8 +339,9 @@ export class CloudHSMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudhsm/src/clientConfiguration.ts b/clients/client-cloudhsm/src/clientConfiguration.ts new file mode 100644 index 000000000000..781a0f7ed1ef --- /dev/null +++ b/clients/client-cloudhsm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudHSMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudhsm/src/runtimeConfig.shared.ts b/clients/client-cloudhsm/src/runtimeConfig.shared.ts index 616788202a22..df428ba446fb 100644 --- a/clients/client-cloudhsm/src/runtimeConfig.shared.ts +++ b/clients/client-cloudhsm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudHSMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudHSM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudhsm/src/runtimeExtensions.ts b/clients/client-cloudhsm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..74f62529f097 --- /dev/null +++ b/clients/client-cloudhsm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudHSMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudHSMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudHSMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudsearch-domain/src/CloudSearchDomainClient.ts b/clients/client-cloudsearch-domain/src/CloudSearchDomainClient.ts index 37b641c15595..673758173e28 100644 --- a/clients/client-cloudsearch-domain/src/CloudSearchDomainClient.ts +++ b/clients/client-cloudsearch-domain/src/CloudSearchDomainClient.ts @@ -60,6 +60,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -191,6 +192,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -221,6 +227,7 @@ export interface CloudSearchDomainClientConfig extends CloudSearchDomainClientCo */ export type CloudSearchDomainClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -262,8 +269,9 @@ export class CloudSearchDomainClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudsearch-domain/src/clientConfiguration.ts b/clients/client-cloudsearch-domain/src/clientConfiguration.ts new file mode 100644 index 000000000000..bc8ded4e6c20 --- /dev/null +++ b/clients/client-cloudsearch-domain/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudSearchDomainClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudsearch-domain/src/runtimeConfig.shared.ts b/clients/client-cloudsearch-domain/src/runtimeConfig.shared.ts index 3c37538b60c8..fe798bbb3aeb 100644 --- a/clients/client-cloudsearch-domain/src/runtimeConfig.shared.ts +++ b/clients/client-cloudsearch-domain/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudSearchDomainClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudSearch Domain", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudsearch-domain/src/runtimeExtensions.ts b/clients/client-cloudsearch-domain/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c847ca348fcf --- /dev/null +++ b/clients/client-cloudsearch-domain/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudSearchDomainClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudSearchDomainClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudSearchDomainClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudsearch/src/CloudSearchClient.ts b/clients/client-cloudsearch/src/CloudSearchClient.ts index 68e0b300764e..c1f413f7e90f 100644 --- a/clients/client-cloudsearch/src/CloudSearchClient.ts +++ b/clients/client-cloudsearch/src/CloudSearchClient.ts @@ -122,6 +122,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -305,6 +306,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -335,6 +341,7 @@ export interface CloudSearchClientConfig extends CloudSearchClientConfigType {} */ export type CloudSearchClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -379,8 +386,9 @@ export class CloudSearchClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudsearch/src/clientConfiguration.ts b/clients/client-cloudsearch/src/clientConfiguration.ts new file mode 100644 index 000000000000..a60241840868 --- /dev/null +++ b/clients/client-cloudsearch/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudSearchClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudsearch/src/runtimeConfig.shared.ts b/clients/client-cloudsearch/src/runtimeConfig.shared.ts index a36929c4d945..65da0c583af3 100644 --- a/clients/client-cloudsearch/src/runtimeConfig.shared.ts +++ b/clients/client-cloudsearch/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudSearchClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudSearch", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudsearch/src/runtimeExtensions.ts b/clients/client-cloudsearch/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4681eedc7bbf --- /dev/null +++ b/clients/client-cloudsearch/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudSearchClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudSearchClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudSearchClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudtrail-data/src/CloudTrailDataClient.ts b/clients/client-cloudtrail-data/src/CloudTrailDataClient.ts index 6d764036bc94..7725e395a831 100644 --- a/clients/client-cloudtrail-data/src/CloudTrailDataClient.ts +++ b/clients/client-cloudtrail-data/src/CloudTrailDataClient.ts @@ -58,6 +58,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -189,6 +190,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -219,6 +225,7 @@ export interface CloudTrailDataClientConfig extends CloudTrailDataClientConfigTy */ export type CloudTrailDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -262,8 +269,9 @@ export class CloudTrailDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudtrail-data/src/clientConfiguration.ts b/clients/client-cloudtrail-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..28b84665afb6 --- /dev/null +++ b/clients/client-cloudtrail-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudTrailDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudtrail-data/src/runtimeConfig.shared.ts b/clients/client-cloudtrail-data/src/runtimeConfig.shared.ts index 50ee308c96ef..6a320293380f 100644 --- a/clients/client-cloudtrail-data/src/runtimeConfig.shared.ts +++ b/clients/client-cloudtrail-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudTrailDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudTrail Data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudtrail-data/src/runtimeExtensions.ts b/clients/client-cloudtrail-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8e41baad547a --- /dev/null +++ b/clients/client-cloudtrail-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudTrailDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudTrailDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudTrailDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudtrail/src/CloudTrailClient.ts b/clients/client-cloudtrail/src/CloudTrailClient.ts index e30d3cf879cd..8ed73db207a9 100644 --- a/clients/client-cloudtrail/src/CloudTrailClient.ts +++ b/clients/client-cloudtrail/src/CloudTrailClient.ts @@ -139,6 +139,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -362,6 +363,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -392,6 +398,7 @@ export interface CloudTrailClientConfig extends CloudTrailClientConfigType {} */ export type CloudTrailClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -445,8 +452,9 @@ export class CloudTrailClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudtrail/src/clientConfiguration.ts b/clients/client-cloudtrail/src/clientConfiguration.ts new file mode 100644 index 000000000000..1f4c5c8b5a6b --- /dev/null +++ b/clients/client-cloudtrail/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudTrailClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudtrail/src/runtimeConfig.shared.ts b/clients/client-cloudtrail/src/runtimeConfig.shared.ts index a6182e2c8253..35193a1f28a0 100644 --- a/clients/client-cloudtrail/src/runtimeConfig.shared.ts +++ b/clients/client-cloudtrail/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudTrailClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudTrail", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudtrail/src/runtimeExtensions.ts b/clients/client-cloudtrail/src/runtimeExtensions.ts new file mode 100644 index 000000000000..542f9ce86787 --- /dev/null +++ b/clients/client-cloudtrail/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudTrailClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudTrailClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudTrailClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudwatch-events/src/CloudWatchEventsClient.ts b/clients/client-cloudwatch-events/src/CloudWatchEventsClient.ts index a8e80b4bc550..7b94a48ab6e3 100644 --- a/clients/client-cloudwatch-events/src/CloudWatchEventsClient.ts +++ b/clients/client-cloudwatch-events/src/CloudWatchEventsClient.ts @@ -156,6 +156,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -389,6 +390,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -419,6 +425,7 @@ export interface CloudWatchEventsClientConfig extends CloudWatchEventsClientConf */ export type CloudWatchEventsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -477,8 +484,9 @@ export class CloudWatchEventsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudwatch-events/src/clientConfiguration.ts b/clients/client-cloudwatch-events/src/clientConfiguration.ts new file mode 100644 index 000000000000..8117c22679cf --- /dev/null +++ b/clients/client-cloudwatch-events/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudWatchEventsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudwatch-events/src/runtimeConfig.shared.ts b/clients/client-cloudwatch-events/src/runtimeConfig.shared.ts index adc5c20d9d7f..c260219ed54e 100644 --- a/clients/client-cloudwatch-events/src/runtimeConfig.shared.ts +++ b/clients/client-cloudwatch-events/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudWatchEventsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudWatch Events", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudwatch-events/src/runtimeExtensions.ts b/clients/client-cloudwatch-events/src/runtimeExtensions.ts new file mode 100644 index 000000000000..16973fb4103f --- /dev/null +++ b/clients/client-cloudwatch-events/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudWatchEventsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudWatchEventsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudWatchEventsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudwatch-logs/src/CloudWatchLogsClient.ts b/clients/client-cloudwatch-logs/src/CloudWatchLogsClient.ts index ee57a8d6c835..39bac3536aff 100644 --- a/clients/client-cloudwatch-logs/src/CloudWatchLogsClient.ts +++ b/clients/client-cloudwatch-logs/src/CloudWatchLogsClient.ts @@ -162,6 +162,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -395,6 +396,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -425,6 +431,7 @@ export interface CloudWatchLogsClientConfig extends CloudWatchLogsClientConfigTy */ export type CloudWatchLogsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -497,8 +504,9 @@ export class CloudWatchLogsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudwatch-logs/src/clientConfiguration.ts b/clients/client-cloudwatch-logs/src/clientConfiguration.ts new file mode 100644 index 000000000000..d1c77dfec321 --- /dev/null +++ b/clients/client-cloudwatch-logs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudWatchLogsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudwatch-logs/src/runtimeConfig.shared.ts b/clients/client-cloudwatch-logs/src/runtimeConfig.shared.ts index ffbf13e0f301..33a49f4e6cae 100644 --- a/clients/client-cloudwatch-logs/src/runtimeConfig.shared.ts +++ b/clients/client-cloudwatch-logs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudWatchLogsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudWatch Logs", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudwatch-logs/src/runtimeExtensions.ts b/clients/client-cloudwatch-logs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..42dd5f32a5c1 --- /dev/null +++ b/clients/client-cloudwatch-logs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudWatchLogsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudWatchLogsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudWatchLogsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cloudwatch/src/CloudWatchClient.ts b/clients/client-cloudwatch/src/CloudWatchClient.ts index 7eefaf96cdbb..3a9a3c3e0928 100644 --- a/clients/client-cloudwatch/src/CloudWatchClient.ts +++ b/clients/client-cloudwatch/src/CloudWatchClient.ts @@ -134,6 +134,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -341,6 +342,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -371,6 +377,7 @@ export interface CloudWatchClientConfig extends CloudWatchClientConfigType {} */ export type CloudWatchClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -421,8 +428,9 @@ export class CloudWatchClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cloudwatch/src/clientConfiguration.ts b/clients/client-cloudwatch/src/clientConfiguration.ts new file mode 100644 index 000000000000..3f50c52c3920 --- /dev/null +++ b/clients/client-cloudwatch/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CloudWatchClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cloudwatch/src/runtimeConfig.shared.ts b/clients/client-cloudwatch/src/runtimeConfig.shared.ts index 22c3441430a3..189faf3f4191 100644 --- a/clients/client-cloudwatch/src/runtimeConfig.shared.ts +++ b/clients/client-cloudwatch/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CloudWatchClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CloudWatch", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cloudwatch/src/runtimeExtensions.ts b/clients/client-cloudwatch/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fa51217f97c4 --- /dev/null +++ b/clients/client-cloudwatch/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CloudWatchClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CloudWatchClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CloudWatchClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codeartifact/src/CodeartifactClient.ts b/clients/client-codeartifact/src/CodeartifactClient.ts index 0067d369f278..c78256c75281 100644 --- a/clients/client-codeartifact/src/CodeartifactClient.ts +++ b/clients/client-codeartifact/src/CodeartifactClient.ts @@ -168,6 +168,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -375,6 +376,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -411,6 +417,7 @@ export interface CodeartifactClientConfig extends CodeartifactClientConfigType { */ export type CodeartifactClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -722,8 +729,9 @@ export class CodeartifactClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codeartifact/src/clientConfiguration.ts b/clients/client-codeartifact/src/clientConfiguration.ts new file mode 100644 index 000000000000..f9c1b5aefd3e --- /dev/null +++ b/clients/client-codeartifact/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeartifactClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codeartifact/src/runtimeConfig.shared.ts b/clients/client-codeartifact/src/runtimeConfig.shared.ts index 8e12ff82b5fc..c3af80eea5b6 100644 --- a/clients/client-codeartifact/src/runtimeConfig.shared.ts +++ b/clients/client-codeartifact/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: CodeartifactClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "codeartifact", diff --git a/clients/client-codeartifact/src/runtimeExtensions.ts b/clients/client-codeartifact/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d37ee7de3457 --- /dev/null +++ b/clients/client-codeartifact/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeartifactClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeartifactClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeartifactClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codebuild/src/CodeBuildClient.ts b/clients/client-codebuild/src/CodeBuildClient.ts index 64d08275666e..6d48f5e29284 100644 --- a/clients/client-codebuild/src/CodeBuildClient.ts +++ b/clients/client-codebuild/src/CodeBuildClient.ts @@ -147,6 +147,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -368,6 +369,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -398,6 +404,7 @@ export interface CodeBuildClientConfig extends CodeBuildClientConfigType {} */ export type CodeBuildClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -446,8 +453,9 @@ export class CodeBuildClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codebuild/src/clientConfiguration.ts b/clients/client-codebuild/src/clientConfiguration.ts new file mode 100644 index 000000000000..3b4af19bf601 --- /dev/null +++ b/clients/client-codebuild/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeBuildClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codebuild/src/runtimeConfig.shared.ts b/clients/client-codebuild/src/runtimeConfig.shared.ts index 9ccaee6aa95f..4f9f781b2d61 100644 --- a/clients/client-codebuild/src/runtimeConfig.shared.ts +++ b/clients/client-codebuild/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeBuildClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeBuild", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codebuild/src/runtimeExtensions.ts b/clients/client-codebuild/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e2ec6c9ecabd --- /dev/null +++ b/clients/client-codebuild/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeBuildClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeBuildClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeBuildClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codecatalyst/src/CodeCatalystClient.ts b/clients/client-codecatalyst/src/CodeCatalystClient.ts index 7b20f5c3a5e7..b3ede9b3fe64 100644 --- a/clients/client-codecatalyst/src/CodeCatalystClient.ts +++ b/clients/client-codecatalyst/src/CodeCatalystClient.ts @@ -129,6 +129,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -315,6 +316,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -345,6 +351,7 @@ export interface CodeCatalystClientConfig extends CodeCatalystClientConfigType { */ export type CodeCatalystClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -534,8 +541,9 @@ export class CodeCatalystClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveTokenConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codecatalyst/src/clientConfiguration.ts b/clients/client-codecatalyst/src/clientConfiguration.ts new file mode 100644 index 000000000000..ddfb27ce7425 --- /dev/null +++ b/clients/client-codecatalyst/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeCatalystClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codecatalyst/src/runtimeConfig.shared.ts b/clients/client-codecatalyst/src/runtimeConfig.shared.ts index d1ebb28a7de7..fad72b875560 100644 --- a/clients/client-codecatalyst/src/runtimeConfig.shared.ts +++ b/clients/client-codecatalyst/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeCatalystClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeCatalyst", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codecatalyst/src/runtimeExtensions.ts b/clients/client-codecatalyst/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d53ffb45b03e --- /dev/null +++ b/clients/client-codecatalyst/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeCatalystClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeCatalystClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeCatalystClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codecommit/src/CodeCommitClient.ts b/clients/client-codecommit/src/CodeCommitClient.ts index 788e7d58359f..c6d27c415cda 100644 --- a/clients/client-codecommit/src/CodeCommitClient.ts +++ b/clients/client-codecommit/src/CodeCommitClient.ts @@ -278,6 +278,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -563,6 +564,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -593,6 +599,7 @@ export interface CodeCommitClientConfig extends CodeCommitClientConfigType {} */ export type CodeCommitClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1027,8 +1034,9 @@ export class CodeCommitClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codecommit/src/clientConfiguration.ts b/clients/client-codecommit/src/clientConfiguration.ts new file mode 100644 index 000000000000..f2a6df389c90 --- /dev/null +++ b/clients/client-codecommit/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeCommitClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codecommit/src/runtimeConfig.shared.ts b/clients/client-codecommit/src/runtimeConfig.shared.ts index e2ca55b86a80..0d69afcf74ee 100644 --- a/clients/client-codecommit/src/runtimeConfig.shared.ts +++ b/clients/client-codecommit/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeCommitClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeCommit", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codecommit/src/runtimeExtensions.ts b/clients/client-codecommit/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b6cc7b46af11 --- /dev/null +++ b/clients/client-codecommit/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeCommitClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeCommitClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeCommitClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codedeploy/src/CodeDeployClient.ts b/clients/client-codedeploy/src/CodeDeployClient.ts index 74cd742dd1d7..fcbc1a35eac2 100644 --- a/clients/client-codedeploy/src/CodeDeployClient.ts +++ b/clients/client-codedeploy/src/CodeDeployClient.ts @@ -206,6 +206,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -431,6 +432,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -461,6 +467,7 @@ export interface CodeDeployClientConfig extends CodeDeployClientConfigType {} */ export type CodeDeployClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -591,8 +598,9 @@ export class CodeDeployClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codedeploy/src/clientConfiguration.ts b/clients/client-codedeploy/src/clientConfiguration.ts new file mode 100644 index 000000000000..25ca6a7906de --- /dev/null +++ b/clients/client-codedeploy/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeDeployClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codedeploy/src/runtimeConfig.shared.ts b/clients/client-codedeploy/src/runtimeConfig.shared.ts index 40e85dff9a90..bed0641b50da 100644 --- a/clients/client-codedeploy/src/runtimeConfig.shared.ts +++ b/clients/client-codedeploy/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeDeployClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeDeploy", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codedeploy/src/runtimeExtensions.ts b/clients/client-codedeploy/src/runtimeExtensions.ts new file mode 100644 index 000000000000..585463674377 --- /dev/null +++ b/clients/client-codedeploy/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeDeployClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeDeployClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeDeployClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codeguru-reviewer/src/CodeGuruReviewerClient.ts b/clients/client-codeguru-reviewer/src/CodeGuruReviewerClient.ts index 8ebbec6bdd79..a8b921b133c1 100644 --- a/clients/client-codeguru-reviewer/src/CodeGuruReviewerClient.ts +++ b/clients/client-codeguru-reviewer/src/CodeGuruReviewerClient.ts @@ -98,6 +98,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface CodeGuruReviewerClientConfig extends CodeGuruReviewerClientConf */ export type CodeGuruReviewerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -341,8 +348,9 @@ export class CodeGuruReviewerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codeguru-reviewer/src/clientConfiguration.ts b/clients/client-codeguru-reviewer/src/clientConfiguration.ts new file mode 100644 index 000000000000..ce0602db8b0b --- /dev/null +++ b/clients/client-codeguru-reviewer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeGuruReviewerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codeguru-reviewer/src/runtimeConfig.shared.ts b/clients/client-codeguru-reviewer/src/runtimeConfig.shared.ts index 7580103d7714..0dedb16151b6 100644 --- a/clients/client-codeguru-reviewer/src/runtimeConfig.shared.ts +++ b/clients/client-codeguru-reviewer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeGuruReviewerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeGuru Reviewer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codeguru-reviewer/src/runtimeExtensions.ts b/clients/client-codeguru-reviewer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5d291d0b3b91 --- /dev/null +++ b/clients/client-codeguru-reviewer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeGuruReviewerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeGuruReviewerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeGuruReviewerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codeguru-security/src/CodeGuruSecurityClient.ts b/clients/client-codeguru-security/src/CodeGuruSecurityClient.ts index 73d47350a2b1..94562f570787 100644 --- a/clients/client-codeguru-security/src/CodeGuruSecurityClient.ts +++ b/clients/client-codeguru-security/src/CodeGuruSecurityClient.ts @@ -82,6 +82,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -239,6 +240,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -269,6 +275,7 @@ export interface CodeGuruSecurityClientConfig extends CodeGuruSecurityClientConf */ export type CodeGuruSecurityClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -318,8 +325,9 @@ export class CodeGuruSecurityClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codeguru-security/src/clientConfiguration.ts b/clients/client-codeguru-security/src/clientConfiguration.ts new file mode 100644 index 000000000000..56bb39f45072 --- /dev/null +++ b/clients/client-codeguru-security/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeGuruSecurityClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codeguru-security/src/runtimeConfig.shared.ts b/clients/client-codeguru-security/src/runtimeConfig.shared.ts index 76d6a137b3f6..a9b1900b216b 100644 --- a/clients/client-codeguru-security/src/runtimeConfig.shared.ts +++ b/clients/client-codeguru-security/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeGuruSecurityClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeGuru Security", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codeguru-security/src/runtimeExtensions.ts b/clients/client-codeguru-security/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fbdae606f50a --- /dev/null +++ b/clients/client-codeguru-security/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeGuruSecurityClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeGuruSecurityClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeGuruSecurityClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codeguruprofiler/src/CodeGuruProfilerClient.ts b/clients/client-codeguruprofiler/src/CodeGuruProfilerClient.ts index 29dcc9d596e8..baab5687d656 100644 --- a/clients/client-codeguruprofiler/src/CodeGuruProfilerClient.ts +++ b/clients/client-codeguruprofiler/src/CodeGuruProfilerClient.ts @@ -116,6 +116,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -293,6 +294,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -323,6 +329,7 @@ export interface CodeGuruProfilerClientConfig extends CodeGuruProfilerClientConf */ export type CodeGuruProfilerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -383,8 +390,9 @@ export class CodeGuruProfilerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codeguruprofiler/src/clientConfiguration.ts b/clients/client-codeguruprofiler/src/clientConfiguration.ts new file mode 100644 index 000000000000..32f735a7cffd --- /dev/null +++ b/clients/client-codeguruprofiler/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeGuruProfilerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codeguruprofiler/src/runtimeConfig.shared.ts b/clients/client-codeguruprofiler/src/runtimeConfig.shared.ts index 530885b15929..766243cb9293 100644 --- a/clients/client-codeguruprofiler/src/runtimeConfig.shared.ts +++ b/clients/client-codeguruprofiler/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeGuruProfilerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeGuruProfiler", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codeguruprofiler/src/runtimeExtensions.ts b/clients/client-codeguruprofiler/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6a704eb3890f --- /dev/null +++ b/clients/client-codeguruprofiler/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeGuruProfilerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeGuruProfilerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeGuruProfilerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codepipeline/src/CodePipelineClient.ts b/clients/client-codepipeline/src/CodePipelineClient.ts index 069b1f0d56db..3b8afd624cdd 100644 --- a/clients/client-codepipeline/src/CodePipelineClient.ts +++ b/clients/client-codepipeline/src/CodePipelineClient.ts @@ -156,6 +156,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -365,6 +366,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -395,6 +401,7 @@ export interface CodePipelineClientConfig extends CodePipelineClientConfigType { */ export type CodePipelineClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -626,8 +633,9 @@ export class CodePipelineClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codepipeline/src/clientConfiguration.ts b/clients/client-codepipeline/src/clientConfiguration.ts new file mode 100644 index 000000000000..ce3cbb4ba98e --- /dev/null +++ b/clients/client-codepipeline/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodePipelineClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codepipeline/src/runtimeConfig.shared.ts b/clients/client-codepipeline/src/runtimeConfig.shared.ts index 8f6c05c68942..ccc93cb0ca82 100644 --- a/clients/client-codepipeline/src/runtimeConfig.shared.ts +++ b/clients/client-codepipeline/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodePipelineClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodePipeline", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codepipeline/src/runtimeExtensions.ts b/clients/client-codepipeline/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4248cf46e503 --- /dev/null +++ b/clients/client-codepipeline/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodePipelineClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodePipelineClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodePipelineClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codestar-connections/src/CodeStarConnectionsClient.ts b/clients/client-codestar-connections/src/CodeStarConnectionsClient.ts index bd526ddbbf12..87cab4c0830e 100644 --- a/clients/client-codestar-connections/src/CodeStarConnectionsClient.ts +++ b/clients/client-codestar-connections/src/CodeStarConnectionsClient.ts @@ -72,6 +72,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -227,6 +228,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -257,6 +263,7 @@ export interface CodeStarConnectionsClientConfig extends CodeStarConnectionsClie */ export type CodeStarConnectionsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -374,8 +381,9 @@ export class CodeStarConnectionsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codestar-connections/src/clientConfiguration.ts b/clients/client-codestar-connections/src/clientConfiguration.ts new file mode 100644 index 000000000000..65ebd519daac --- /dev/null +++ b/clients/client-codestar-connections/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeStarConnectionsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codestar-connections/src/runtimeConfig.shared.ts b/clients/client-codestar-connections/src/runtimeConfig.shared.ts index 2f489a55a3a4..f9ad14ed79d3 100644 --- a/clients/client-codestar-connections/src/runtimeConfig.shared.ts +++ b/clients/client-codestar-connections/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeStarConnectionsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeStar connections", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codestar-connections/src/runtimeExtensions.ts b/clients/client-codestar-connections/src/runtimeExtensions.ts new file mode 100644 index 000000000000..56b8cd698f12 --- /dev/null +++ b/clients/client-codestar-connections/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeStarConnectionsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeStarConnectionsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeStarConnectionsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codestar-notifications/src/CodestarNotificationsClient.ts b/clients/client-codestar-notifications/src/CodestarNotificationsClient.ts index 309954dc9a72..fe68910bc84a 100644 --- a/clients/client-codestar-notifications/src/CodestarNotificationsClient.ts +++ b/clients/client-codestar-notifications/src/CodestarNotificationsClient.ts @@ -88,6 +88,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -275,6 +281,7 @@ export interface CodestarNotificationsClientConfig extends CodestarNotifications */ export type CodestarNotificationsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -396,8 +403,9 @@ export class CodestarNotificationsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codestar-notifications/src/clientConfiguration.ts b/clients/client-codestar-notifications/src/clientConfiguration.ts new file mode 100644 index 000000000000..a8daefbc2e2b --- /dev/null +++ b/clients/client-codestar-notifications/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodestarNotificationsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codestar-notifications/src/runtimeConfig.shared.ts b/clients/client-codestar-notifications/src/runtimeConfig.shared.ts index f0ba268e030d..82ba9616272b 100644 --- a/clients/client-codestar-notifications/src/runtimeConfig.shared.ts +++ b/clients/client-codestar-notifications/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodestarNotificationsClientConfig) => ( base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "codestar notifications", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codestar-notifications/src/runtimeExtensions.ts b/clients/client-codestar-notifications/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5814a36b99ce --- /dev/null +++ b/clients/client-codestar-notifications/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodestarNotificationsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodestarNotificationsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodestarNotificationsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-codestar/src/CodeStarClient.ts b/clients/client-codestar/src/CodeStarClient.ts index 977aa0670665..01d44d9086b9 100644 --- a/clients/client-codestar/src/CodeStarClient.ts +++ b/clients/client-codestar/src/CodeStarClient.ts @@ -84,6 +84,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -251,6 +252,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -281,6 +287,7 @@ export interface CodeStarClientConfig extends CodeStarClientConfigType {} */ export type CodeStarClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -408,8 +415,9 @@ export class CodeStarClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-codestar/src/clientConfiguration.ts b/clients/client-codestar/src/clientConfiguration.ts new file mode 100644 index 000000000000..819670b035a7 --- /dev/null +++ b/clients/client-codestar/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CodeStarClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-codestar/src/runtimeConfig.shared.ts b/clients/client-codestar/src/runtimeConfig.shared.ts index e3e5221219b3..d06a1e0d748a 100644 --- a/clients/client-codestar/src/runtimeConfig.shared.ts +++ b/clients/client-codestar/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CodeStarClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "CodeStar", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-codestar/src/runtimeExtensions.ts b/clients/client-codestar/src/runtimeExtensions.ts new file mode 100644 index 000000000000..18799220d1df --- /dev/null +++ b/clients/client-codestar/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CodeStarClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CodeStarClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CodeStarClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cognito-identity-provider/src/CognitoIdentityProviderClient.ts b/clients/client-cognito-identity-provider/src/CognitoIdentityProviderClient.ts index 5c81b95fcc25..c4051bb54165 100644 --- a/clients/client-cognito-identity-provider/src/CognitoIdentityProviderClient.ts +++ b/clients/client-cognito-identity-provider/src/CognitoIdentityProviderClient.ts @@ -329,6 +329,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -666,6 +667,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -696,6 +702,7 @@ export interface CognitoIdentityProviderClientConfig extends CognitoIdentityProv */ export type CognitoIdentityProviderClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -800,8 +807,9 @@ export class CognitoIdentityProviderClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cognito-identity-provider/src/clientConfiguration.ts b/clients/client-cognito-identity-provider/src/clientConfiguration.ts new file mode 100644 index 000000000000..01db24dd3923 --- /dev/null +++ b/clients/client-cognito-identity-provider/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CognitoIdentityProviderClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cognito-identity-provider/src/runtimeConfig.shared.ts b/clients/client-cognito-identity-provider/src/runtimeConfig.shared.ts index 8b5497243310..fc453628aa8e 100644 --- a/clients/client-cognito-identity-provider/src/runtimeConfig.shared.ts +++ b/clients/client-cognito-identity-provider/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CognitoIdentityProviderClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cognito Identity Provider", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cognito-identity-provider/src/runtimeExtensions.ts b/clients/client-cognito-identity-provider/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2170fc6ded60 --- /dev/null +++ b/clients/client-cognito-identity-provider/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CognitoIdentityProviderClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CognitoIdentityProviderClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CognitoIdentityProviderClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cognito-identity/src/CognitoIdentityClient.ts b/clients/client-cognito-identity/src/CognitoIdentityClient.ts index a5facf08a281..e07ba73038a5 100644 --- a/clients/client-cognito-identity/src/CognitoIdentityClient.ts +++ b/clients/client-cognito-identity/src/CognitoIdentityClient.ts @@ -108,6 +108,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -285,6 +286,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -315,6 +321,7 @@ export interface CognitoIdentityClientConfig extends CognitoIdentityClientConfig */ export type CognitoIdentityClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -366,8 +373,9 @@ export class CognitoIdentityClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cognito-identity/src/clientConfiguration.ts b/clients/client-cognito-identity/src/clientConfiguration.ts new file mode 100644 index 000000000000..8e3001dae8f3 --- /dev/null +++ b/clients/client-cognito-identity/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CognitoIdentityClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cognito-identity/src/runtimeConfig.shared.ts b/clients/client-cognito-identity/src/runtimeConfig.shared.ts index c76764f42b26..49853ae3743e 100644 --- a/clients/client-cognito-identity/src/runtimeConfig.shared.ts +++ b/clients/client-cognito-identity/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CognitoIdentityClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cognito Identity", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cognito-identity/src/runtimeExtensions.ts b/clients/client-cognito-identity/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6ff2f23ef38b --- /dev/null +++ b/clients/client-cognito-identity/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CognitoIdentityClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CognitoIdentityClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CognitoIdentityClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cognito-sync/src/CognitoSyncClient.ts b/clients/client-cognito-sync/src/CognitoSyncClient.ts index 999c91d4819d..790288ec71c7 100644 --- a/clients/client-cognito-sync/src/CognitoSyncClient.ts +++ b/clients/client-cognito-sync/src/CognitoSyncClient.ts @@ -95,6 +95,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface CognitoSyncClientConfig extends CognitoSyncClientConfigType {} */ export type CognitoSyncClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -340,8 +347,9 @@ export class CognitoSyncClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cognito-sync/src/clientConfiguration.ts b/clients/client-cognito-sync/src/clientConfiguration.ts new file mode 100644 index 000000000000..60498866a3a5 --- /dev/null +++ b/clients/client-cognito-sync/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CognitoSyncClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cognito-sync/src/runtimeConfig.shared.ts b/clients/client-cognito-sync/src/runtimeConfig.shared.ts index 45beb08dbd32..a32eca242ad3 100644 --- a/clients/client-cognito-sync/src/runtimeConfig.shared.ts +++ b/clients/client-cognito-sync/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CognitoSyncClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cognito Sync", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cognito-sync/src/runtimeExtensions.ts b/clients/client-cognito-sync/src/runtimeExtensions.ts new file mode 100644 index 000000000000..012185327cb8 --- /dev/null +++ b/clients/client-cognito-sync/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CognitoSyncClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CognitoSyncClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CognitoSyncClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-comprehend/src/ComprehendClient.ts b/clients/client-comprehend/src/ComprehendClient.ts index 1f9af2e4699f..788c0f9556d5 100644 --- a/clients/client-comprehend/src/ComprehendClient.ts +++ b/clients/client-comprehend/src/ComprehendClient.ts @@ -321,6 +321,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -620,6 +621,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -650,6 +656,7 @@ export interface ComprehendClientConfig extends ComprehendClientConfigType {} */ export type ComprehendClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -691,8 +698,9 @@ export class ComprehendClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-comprehend/src/clientConfiguration.ts b/clients/client-comprehend/src/clientConfiguration.ts new file mode 100644 index 000000000000..39c3ed188ec4 --- /dev/null +++ b/clients/client-comprehend/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ComprehendClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-comprehend/src/runtimeConfig.shared.ts b/clients/client-comprehend/src/runtimeConfig.shared.ts index 9bd1455b878c..11949b5f864e 100644 --- a/clients/client-comprehend/src/runtimeConfig.shared.ts +++ b/clients/client-comprehend/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ComprehendClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Comprehend", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-comprehend/src/runtimeExtensions.ts b/clients/client-comprehend/src/runtimeExtensions.ts new file mode 100644 index 000000000000..60d9821b48e4 --- /dev/null +++ b/clients/client-comprehend/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ComprehendClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ComprehendClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ComprehendClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts b/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts index 6e0ccaf60132..a20d1fc4264c 100644 --- a/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts +++ b/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts @@ -143,6 +143,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -326,6 +327,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -356,6 +362,7 @@ export interface ComprehendMedicalClientConfig extends ComprehendMedicalClientCo */ export type ComprehendMedicalClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -394,8 +401,9 @@ export class ComprehendMedicalClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-comprehendmedical/src/clientConfiguration.ts b/clients/client-comprehendmedical/src/clientConfiguration.ts new file mode 100644 index 000000000000..25f7888e9b34 --- /dev/null +++ b/clients/client-comprehendmedical/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ComprehendMedicalClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-comprehendmedical/src/runtimeConfig.shared.ts b/clients/client-comprehendmedical/src/runtimeConfig.shared.ts index eb4f0a65fec6..43e5d0d9fadf 100644 --- a/clients/client-comprehendmedical/src/runtimeConfig.shared.ts +++ b/clients/client-comprehendmedical/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ComprehendMedicalClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ComprehendMedical", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-comprehendmedical/src/runtimeExtensions.ts b/clients/client-comprehendmedical/src/runtimeExtensions.ts new file mode 100644 index 000000000000..134163bbcb1f --- /dev/null +++ b/clients/client-comprehendmedical/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ComprehendMedicalClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ComprehendMedicalClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ComprehendMedicalClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-compute-optimizer/src/ComputeOptimizerClient.ts b/clients/client-compute-optimizer/src/ComputeOptimizerClient.ts index 38ce491a8edb..ac402df44099 100644 --- a/clients/client-compute-optimizer/src/ComputeOptimizerClient.ts +++ b/clients/client-compute-optimizer/src/ComputeOptimizerClient.ts @@ -141,6 +141,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -314,6 +315,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -344,6 +350,7 @@ export interface ComputeOptimizerClientConfig extends ComputeOptimizerClientConf */ export type ComputeOptimizerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -393,8 +400,9 @@ export class ComputeOptimizerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-compute-optimizer/src/clientConfiguration.ts b/clients/client-compute-optimizer/src/clientConfiguration.ts new file mode 100644 index 000000000000..5d9d24fb2364 --- /dev/null +++ b/clients/client-compute-optimizer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ComputeOptimizerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-compute-optimizer/src/runtimeConfig.shared.ts b/clients/client-compute-optimizer/src/runtimeConfig.shared.ts index 507f40fbd878..e3629349f947 100644 --- a/clients/client-compute-optimizer/src/runtimeConfig.shared.ts +++ b/clients/client-compute-optimizer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ComputeOptimizerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Compute Optimizer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-compute-optimizer/src/runtimeExtensions.ts b/clients/client-compute-optimizer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b1939afba50d --- /dev/null +++ b/clients/client-compute-optimizer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ComputeOptimizerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ComputeOptimizerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ComputeOptimizerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-config-service/src/ConfigServiceClient.ts b/clients/client-config-service/src/ConfigServiceClient.ts index 3e4dfd799df1..c3d08cf89514 100644 --- a/clients/client-config-service/src/ConfigServiceClient.ts +++ b/clients/client-config-service/src/ConfigServiceClient.ts @@ -389,6 +389,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -704,6 +705,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -734,6 +740,7 @@ export interface ConfigServiceClientConfig extends ConfigServiceClientConfigType */ export type ConfigServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -792,8 +799,9 @@ export class ConfigServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-config-service/src/clientConfiguration.ts b/clients/client-config-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..6ff0ccde8a06 --- /dev/null +++ b/clients/client-config-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConfigServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-config-service/src/runtimeConfig.shared.ts b/clients/client-config-service/src/runtimeConfig.shared.ts index 93703f5662c6..908625cb225e 100644 --- a/clients/client-config-service/src/runtimeConfig.shared.ts +++ b/clients/client-config-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConfigServiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Config Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-config-service/src/runtimeExtensions.ts b/clients/client-config-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ad245a2d0c3b --- /dev/null +++ b/clients/client-config-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConfigServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConfigServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConfigServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-connect-contact-lens/src/ConnectContactLensClient.ts b/clients/client-connect-contact-lens/src/ConnectContactLensClient.ts index 74edfc80b5ee..b8e00d5f3aec 100644 --- a/clients/client-connect-contact-lens/src/ConnectContactLensClient.ts +++ b/clients/client-connect-contact-lens/src/ConnectContactLensClient.ts @@ -61,6 +61,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -192,6 +193,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -222,6 +228,7 @@ export interface ConnectContactLensClientConfig extends ConnectContactLensClient */ export type ConnectContactLensClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -266,8 +273,9 @@ export class ConnectContactLensClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-connect-contact-lens/src/clientConfiguration.ts b/clients/client-connect-contact-lens/src/clientConfiguration.ts new file mode 100644 index 000000000000..a3459fad2c64 --- /dev/null +++ b/clients/client-connect-contact-lens/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConnectContactLensClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-connect-contact-lens/src/runtimeConfig.shared.ts b/clients/client-connect-contact-lens/src/runtimeConfig.shared.ts index 6bc80977f9a5..47f2eb2b89fd 100644 --- a/clients/client-connect-contact-lens/src/runtimeConfig.shared.ts +++ b/clients/client-connect-contact-lens/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConnectContactLensClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Connect Contact Lens", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-connect-contact-lens/src/runtimeExtensions.ts b/clients/client-connect-contact-lens/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f3ba1518c3b5 --- /dev/null +++ b/clients/client-connect-contact-lens/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConnectContactLensClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConnectContactLensClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConnectContactLensClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-connect/src/ConnectClient.ts b/clients/client-connect/src/ConnectClient.ts index e381f2d1272e..2095d79a8e64 100644 --- a/clients/client-connect/src/ConnectClient.ts +++ b/clients/client-connect/src/ConnectClient.ts @@ -620,6 +620,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -1151,6 +1152,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -1181,6 +1187,7 @@ export interface ConnectClientConfig extends ConnectClientConfigType {} */ export type ConnectClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1229,8 +1236,9 @@ export class ConnectClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-connect/src/clientConfiguration.ts b/clients/client-connect/src/clientConfiguration.ts new file mode 100644 index 000000000000..c0fb0e0d3373 --- /dev/null +++ b/clients/client-connect/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConnectClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-connect/src/runtimeConfig.shared.ts b/clients/client-connect/src/runtimeConfig.shared.ts index 908af37f3e3d..6924e857bb85 100644 --- a/clients/client-connect/src/runtimeConfig.shared.ts +++ b/clients/client-connect/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConnectClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Connect", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-connect/src/runtimeExtensions.ts b/clients/client-connect/src/runtimeExtensions.ts new file mode 100644 index 000000000000..44105512b1fa --- /dev/null +++ b/clients/client-connect/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConnectClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConnectClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConnectClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-connectcampaigns/src/ConnectCampaignsClient.ts b/clients/client-connectcampaigns/src/ConnectCampaignsClient.ts index 250ef88b43b2..26a5a2e61800 100644 --- a/clients/client-connectcampaigns/src/ConnectCampaignsClient.ts +++ b/clients/client-connectcampaigns/src/ConnectCampaignsClient.ts @@ -109,6 +109,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -284,6 +285,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -314,6 +320,7 @@ export interface ConnectCampaignsClientConfig extends ConnectCampaignsClientConf */ export type ConnectCampaignsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -352,8 +359,9 @@ export class ConnectCampaignsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-connectcampaigns/src/clientConfiguration.ts b/clients/client-connectcampaigns/src/clientConfiguration.ts new file mode 100644 index 000000000000..d70084d0bf6c --- /dev/null +++ b/clients/client-connectcampaigns/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConnectCampaignsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-connectcampaigns/src/runtimeConfig.shared.ts b/clients/client-connectcampaigns/src/runtimeConfig.shared.ts index d0dd2b326ae5..4187aa237956 100644 --- a/clients/client-connectcampaigns/src/runtimeConfig.shared.ts +++ b/clients/client-connectcampaigns/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConnectCampaignsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ConnectCampaigns", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-connectcampaigns/src/runtimeExtensions.ts b/clients/client-connectcampaigns/src/runtimeExtensions.ts new file mode 100644 index 000000000000..bd84f9f39cab --- /dev/null +++ b/clients/client-connectcampaigns/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConnectCampaignsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConnectCampaignsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConnectCampaignsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-connectcases/src/ConnectCasesClient.ts b/clients/client-connectcases/src/ConnectCasesClient.ts index 1b266f1969a0..e7d48d427c91 100644 --- a/clients/client-connectcases/src/ConnectCasesClient.ts +++ b/clients/client-connectcases/src/ConnectCasesClient.ts @@ -102,6 +102,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -293,6 +294,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -323,6 +329,7 @@ export interface ConnectCasesClientConfig extends ConnectCasesClientConfigType { */ export type ConnectCasesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -365,8 +372,9 @@ export class ConnectCasesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-connectcases/src/clientConfiguration.ts b/clients/client-connectcases/src/clientConfiguration.ts new file mode 100644 index 000000000000..9171f4c95d00 --- /dev/null +++ b/clients/client-connectcases/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConnectCasesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-connectcases/src/runtimeConfig.shared.ts b/clients/client-connectcases/src/runtimeConfig.shared.ts index 90df6e682ad3..bcbca53f6c87 100644 --- a/clients/client-connectcases/src/runtimeConfig.shared.ts +++ b/clients/client-connectcases/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConnectCasesClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ConnectCases", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-connectcases/src/runtimeExtensions.ts b/clients/client-connectcases/src/runtimeExtensions.ts new file mode 100644 index 000000000000..999cf6d6314e --- /dev/null +++ b/clients/client-connectcases/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConnectCasesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConnectCasesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConnectCasesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-connectparticipant/src/ConnectParticipantClient.ts b/clients/client-connectparticipant/src/ConnectParticipantClient.ts index 4be3ef1a6898..3518b181e956 100644 --- a/clients/client-connectparticipant/src/ConnectParticipantClient.ts +++ b/clients/client-connectparticipant/src/ConnectParticipantClient.ts @@ -83,6 +83,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface ConnectParticipantClientConfig extends ConnectParticipantClient */ export type ConnectParticipantClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -306,8 +313,9 @@ export class ConnectParticipantClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-connectparticipant/src/clientConfiguration.ts b/clients/client-connectparticipant/src/clientConfiguration.ts new file mode 100644 index 000000000000..ad3877f5108d --- /dev/null +++ b/clients/client-connectparticipant/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ConnectParticipantClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-connectparticipant/src/runtimeConfig.shared.ts b/clients/client-connectparticipant/src/runtimeConfig.shared.ts index 40a390e70415..7b9625320dc4 100644 --- a/clients/client-connectparticipant/src/runtimeConfig.shared.ts +++ b/clients/client-connectparticipant/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ConnectParticipantClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ConnectParticipant", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-connectparticipant/src/runtimeExtensions.ts b/clients/client-connectparticipant/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ebeb0bc063c7 --- /dev/null +++ b/clients/client-connectparticipant/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ConnectParticipantClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ConnectParticipantClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ConnectParticipantClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-controltower/src/ControlTowerClient.ts b/clients/client-controltower/src/ControlTowerClient.ts index 972aca7434d3..4860f4186f7a 100644 --- a/clients/client-controltower/src/ControlTowerClient.ts +++ b/clients/client-controltower/src/ControlTowerClient.ts @@ -67,6 +67,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -206,6 +207,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -236,6 +242,7 @@ export interface ControlTowerClientConfig extends ControlTowerClientConfigType { */ export type ControlTowerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -344,8 +351,9 @@ export class ControlTowerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-controltower/src/clientConfiguration.ts b/clients/client-controltower/src/clientConfiguration.ts new file mode 100644 index 000000000000..8af0eb8108de --- /dev/null +++ b/clients/client-controltower/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ControlTowerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-controltower/src/runtimeConfig.shared.ts b/clients/client-controltower/src/runtimeConfig.shared.ts index 4a7b937a83a8..81278e965894 100644 --- a/clients/client-controltower/src/runtimeConfig.shared.ts +++ b/clients/client-controltower/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ControlTowerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ControlTower", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-controltower/src/runtimeExtensions.ts b/clients/client-controltower/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f0feb31ad43f --- /dev/null +++ b/clients/client-controltower/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ControlTowerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ControlTowerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ControlTowerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cost-and-usage-report-service/src/CostAndUsageReportServiceClient.ts b/clients/client-cost-and-usage-report-service/src/CostAndUsageReportServiceClient.ts index 13c6166ab843..438000febb0f 100644 --- a/clients/client-cost-and-usage-report-service/src/CostAndUsageReportServiceClient.ts +++ b/clients/client-cost-and-usage-report-service/src/CostAndUsageReportServiceClient.ts @@ -73,6 +73,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -212,6 +213,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -242,6 +248,7 @@ export interface CostAndUsageReportServiceClientConfig extends CostAndUsageRepor */ export type CostAndUsageReportServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -298,8 +305,9 @@ export class CostAndUsageReportServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cost-and-usage-report-service/src/clientConfiguration.ts b/clients/client-cost-and-usage-report-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..40a8b0bc8841 --- /dev/null +++ b/clients/client-cost-and-usage-report-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CostAndUsageReportServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cost-and-usage-report-service/src/runtimeConfig.shared.ts b/clients/client-cost-and-usage-report-service/src/runtimeConfig.shared.ts index 3f70ee6d8376..0a27852cee9c 100644 --- a/clients/client-cost-and-usage-report-service/src/runtimeConfig.shared.ts +++ b/clients/client-cost-and-usage-report-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CostAndUsageReportServiceClientConfig) base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cost and Usage Report Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cost-and-usage-report-service/src/runtimeExtensions.ts b/clients/client-cost-and-usage-report-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..01af5610e552 --- /dev/null +++ b/clients/client-cost-and-usage-report-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CostAndUsageReportServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CostAndUsageReportServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CostAndUsageReportServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-cost-explorer/src/CostExplorerClient.ts b/clients/client-cost-explorer/src/CostExplorerClient.ts index 4ee09c0e1f01..248ddd20923a 100644 --- a/clients/client-cost-explorer/src/CostExplorerClient.ts +++ b/clients/client-cost-explorer/src/CostExplorerClient.ts @@ -179,6 +179,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -386,6 +387,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -416,6 +422,7 @@ export interface CostExplorerClientConfig extends CostExplorerClientConfigType { */ export type CostExplorerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -469,8 +476,9 @@ export class CostExplorerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-cost-explorer/src/clientConfiguration.ts b/clients/client-cost-explorer/src/clientConfiguration.ts new file mode 100644 index 000000000000..64d98f565452 --- /dev/null +++ b/clients/client-cost-explorer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CostExplorerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-cost-explorer/src/runtimeConfig.shared.ts b/clients/client-cost-explorer/src/runtimeConfig.shared.ts index 86ba9aa429d9..cc03786870a4 100644 --- a/clients/client-cost-explorer/src/runtimeConfig.shared.ts +++ b/clients/client-cost-explorer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CostExplorerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Cost Explorer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-cost-explorer/src/runtimeExtensions.ts b/clients/client-cost-explorer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6e8a2d58125a --- /dev/null +++ b/clients/client-cost-explorer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CostExplorerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CostExplorerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CostExplorerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-customer-profiles/src/CustomerProfilesClient.ts b/clients/client-customer-profiles/src/CustomerProfilesClient.ts index 6e1397c387af..1af09ab5c36e 100644 --- a/clients/client-customer-profiles/src/CustomerProfilesClient.ts +++ b/clients/client-customer-profiles/src/CustomerProfilesClient.ts @@ -171,6 +171,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -404,6 +405,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -434,6 +440,7 @@ export interface CustomerProfilesClientConfig extends CustomerProfilesClientConf */ export type CustomerProfilesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -477,8 +484,9 @@ export class CustomerProfilesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-customer-profiles/src/clientConfiguration.ts b/clients/client-customer-profiles/src/clientConfiguration.ts new file mode 100644 index 000000000000..ef356088d45a --- /dev/null +++ b/clients/client-customer-profiles/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface CustomerProfilesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-customer-profiles/src/runtimeConfig.shared.ts b/clients/client-customer-profiles/src/runtimeConfig.shared.ts index 78795a8db687..ab2c1be8f221 100644 --- a/clients/client-customer-profiles/src/runtimeConfig.shared.ts +++ b/clients/client-customer-profiles/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: CustomerProfilesClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Customer Profiles", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-customer-profiles/src/runtimeExtensions.ts b/clients/client-customer-profiles/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1b986574dd27 --- /dev/null +++ b/clients/client-customer-profiles/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { CustomerProfilesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: CustomerProfilesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: CustomerProfilesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-data-pipeline/src/DataPipelineClient.ts b/clients/client-data-pipeline/src/DataPipelineClient.ts index c539aab644a7..edbfcc792b25 100644 --- a/clients/client-data-pipeline/src/DataPipelineClient.ts +++ b/clients/client-data-pipeline/src/DataPipelineClient.ts @@ -88,6 +88,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface DataPipelineClientConfig extends DataPipelineClientConfigType { */ export type DataPipelineClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -341,8 +348,9 @@ export class DataPipelineClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-data-pipeline/src/clientConfiguration.ts b/clients/client-data-pipeline/src/clientConfiguration.ts new file mode 100644 index 000000000000..084375643c32 --- /dev/null +++ b/clients/client-data-pipeline/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DataPipelineClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-data-pipeline/src/runtimeConfig.shared.ts b/clients/client-data-pipeline/src/runtimeConfig.shared.ts index 767fa44324de..9886de07e548 100644 --- a/clients/client-data-pipeline/src/runtimeConfig.shared.ts +++ b/clients/client-data-pipeline/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DataPipelineClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Data Pipeline", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-data-pipeline/src/runtimeExtensions.ts b/clients/client-data-pipeline/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6786bd1b8f12 --- /dev/null +++ b/clients/client-data-pipeline/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DataPipelineClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DataPipelineClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DataPipelineClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-database-migration-service/src/DatabaseMigrationServiceClient.ts b/clients/client-database-migration-service/src/DatabaseMigrationServiceClient.ts index 0c097167f6fe..a07a2bbbc516 100644 --- a/clients/client-database-migration-service/src/DatabaseMigrationServiceClient.ts +++ b/clients/client-database-migration-service/src/DatabaseMigrationServiceClient.ts @@ -427,6 +427,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -770,6 +771,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -800,6 +806,7 @@ export interface DatabaseMigrationServiceClientConfig extends DatabaseMigrationS */ export type DatabaseMigrationServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -848,8 +855,9 @@ export class DatabaseMigrationServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-database-migration-service/src/clientConfiguration.ts b/clients/client-database-migration-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..943cea5713d7 --- /dev/null +++ b/clients/client-database-migration-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DatabaseMigrationServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-database-migration-service/src/runtimeConfig.shared.ts b/clients/client-database-migration-service/src/runtimeConfig.shared.ts index 7c2c54cbc3bc..a05d9e29018e 100644 --- a/clients/client-database-migration-service/src/runtimeConfig.shared.ts +++ b/clients/client-database-migration-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DatabaseMigrationServiceClientConfig) = base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Database Migration Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-database-migration-service/src/runtimeExtensions.ts b/clients/client-database-migration-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7da7bf98ebf6 --- /dev/null +++ b/clients/client-database-migration-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DatabaseMigrationServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DatabaseMigrationServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DatabaseMigrationServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-databrew/src/DataBrewClient.ts b/clients/client-databrew/src/DataBrewClient.ts index bd29dbc43b59..1a69f36d249c 100644 --- a/clients/client-databrew/src/DataBrewClient.ts +++ b/clients/client-databrew/src/DataBrewClient.ts @@ -122,6 +122,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -341,6 +342,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -371,6 +377,7 @@ export interface DataBrewClientConfig extends DataBrewClientConfigType {} */ export type DataBrewClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -412,8 +419,9 @@ export class DataBrewClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-databrew/src/clientConfiguration.ts b/clients/client-databrew/src/clientConfiguration.ts new file mode 100644 index 000000000000..cba44c25d640 --- /dev/null +++ b/clients/client-databrew/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DataBrewClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-databrew/src/runtimeConfig.shared.ts b/clients/client-databrew/src/runtimeConfig.shared.ts index 4b02ea7e3331..661d77d29885 100644 --- a/clients/client-databrew/src/runtimeConfig.shared.ts +++ b/clients/client-databrew/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DataBrewClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DataBrew", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-databrew/src/runtimeExtensions.ts b/clients/client-databrew/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dee39759ff11 --- /dev/null +++ b/clients/client-databrew/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DataBrewClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DataBrewClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DataBrewClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-dataexchange/src/DataExchangeClient.ts b/clients/client-dataexchange/src/DataExchangeClient.ts index e9da26834877..21b049c32e72 100644 --- a/clients/client-dataexchange/src/DataExchangeClient.ts +++ b/clients/client-dataexchange/src/DataExchangeClient.ts @@ -92,6 +92,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -281,6 +282,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -311,6 +317,7 @@ export interface DataExchangeClientConfig extends DataExchangeClientConfigType { */ export type DataExchangeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -364,8 +371,9 @@ export class DataExchangeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dataexchange/src/clientConfiguration.ts b/clients/client-dataexchange/src/clientConfiguration.ts new file mode 100644 index 000000000000..5233336a1ff2 --- /dev/null +++ b/clients/client-dataexchange/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DataExchangeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-dataexchange/src/runtimeConfig.shared.ts b/clients/client-dataexchange/src/runtimeConfig.shared.ts index b50dea6baef1..36aa2a2cdd56 100644 --- a/clients/client-dataexchange/src/runtimeConfig.shared.ts +++ b/clients/client-dataexchange/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DataExchangeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DataExchange", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-dataexchange/src/runtimeExtensions.ts b/clients/client-dataexchange/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d141056084b7 --- /dev/null +++ b/clients/client-dataexchange/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DataExchangeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DataExchangeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DataExchangeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-datasync/src/DataSyncClient.ts b/clients/client-datasync/src/DataSyncClient.ts index 5ae04a88d737..378e077064ad 100644 --- a/clients/client-datasync/src/DataSyncClient.ts +++ b/clients/client-datasync/src/DataSyncClient.ts @@ -204,6 +204,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -455,6 +456,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -485,6 +491,7 @@ export interface DataSyncClientConfig extends DataSyncClientConfigType {} */ export type DataSyncClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -531,8 +538,9 @@ export class DataSyncClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-datasync/src/clientConfiguration.ts b/clients/client-datasync/src/clientConfiguration.ts new file mode 100644 index 000000000000..3068e711b115 --- /dev/null +++ b/clients/client-datasync/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DataSyncClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-datasync/src/runtimeConfig.shared.ts b/clients/client-datasync/src/runtimeConfig.shared.ts index 49f340eb47eb..07479652a45c 100644 --- a/clients/client-datasync/src/runtimeConfig.shared.ts +++ b/clients/client-datasync/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DataSyncClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DataSync", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-datasync/src/runtimeExtensions.ts b/clients/client-datasync/src/runtimeExtensions.ts new file mode 100644 index 000000000000..becaca16a3ea --- /dev/null +++ b/clients/client-datasync/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DataSyncClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DataSyncClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DataSyncClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-dax/src/DAXClient.ts b/clients/client-dax/src/DAXClient.ts index 519b7fe60cb2..9dc568a39b19 100644 --- a/clients/client-dax/src/DAXClient.ts +++ b/clients/client-dax/src/DAXClient.ts @@ -102,6 +102,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -275,6 +276,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -305,6 +311,7 @@ export interface DAXClientConfig extends DAXClientConfigType {} */ export type DAXClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -348,8 +355,9 @@ export class DAXClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dax/src/clientConfiguration.ts b/clients/client-dax/src/clientConfiguration.ts new file mode 100644 index 000000000000..9204e9e8cf59 --- /dev/null +++ b/clients/client-dax/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DAXClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-dax/src/runtimeConfig.shared.ts b/clients/client-dax/src/runtimeConfig.shared.ts index 365ca04c2891..c4641d2b1830 100644 --- a/clients/client-dax/src/runtimeConfig.shared.ts +++ b/clients/client-dax/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DAXClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DAX", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-dax/src/runtimeExtensions.ts b/clients/client-dax/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9769f02b384d --- /dev/null +++ b/clients/client-dax/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DAXClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DAXClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DAXClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-detective/src/DetectiveClient.ts b/clients/client-detective/src/DetectiveClient.ts index 44272272f3eb..683138429d63 100644 --- a/clients/client-detective/src/DetectiveClient.ts +++ b/clients/client-detective/src/DetectiveClient.ts @@ -117,6 +117,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface DetectiveClientConfig extends DetectiveClientConfigType {} */ export type DetectiveClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -439,8 +446,9 @@ export class DetectiveClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-detective/src/clientConfiguration.ts b/clients/client-detective/src/clientConfiguration.ts new file mode 100644 index 000000000000..6320573750c9 --- /dev/null +++ b/clients/client-detective/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DetectiveClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-detective/src/runtimeConfig.shared.ts b/clients/client-detective/src/runtimeConfig.shared.ts index 43407f8c9ac5..3f698979c5aa 100644 --- a/clients/client-detective/src/runtimeConfig.shared.ts +++ b/clients/client-detective/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DetectiveClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Detective", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-detective/src/runtimeExtensions.ts b/clients/client-detective/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b960e2e5bd45 --- /dev/null +++ b/clients/client-detective/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DetectiveClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DetectiveClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DetectiveClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-device-farm/src/DeviceFarmClient.ts b/clients/client-device-farm/src/DeviceFarmClient.ts index 45c6ed617d42..0aca1df50fd1 100644 --- a/clients/client-device-farm/src/DeviceFarmClient.ts +++ b/clients/client-device-farm/src/DeviceFarmClient.ts @@ -230,6 +230,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -515,6 +516,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -545,6 +551,7 @@ export interface DeviceFarmClientConfig extends DeviceFarmClientConfigType {} */ export type DeviceFarmClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -597,8 +604,9 @@ export class DeviceFarmClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-device-farm/src/clientConfiguration.ts b/clients/client-device-farm/src/clientConfiguration.ts new file mode 100644 index 000000000000..8416713a9194 --- /dev/null +++ b/clients/client-device-farm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DeviceFarmClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-device-farm/src/runtimeConfig.shared.ts b/clients/client-device-farm/src/runtimeConfig.shared.ts index 77277b007255..8c445c940453 100644 --- a/clients/client-device-farm/src/runtimeConfig.shared.ts +++ b/clients/client-device-farm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DeviceFarmClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Device Farm", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-device-farm/src/runtimeExtensions.ts b/clients/client-device-farm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e5e33aa16cd1 --- /dev/null +++ b/clients/client-device-farm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DeviceFarmClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DeviceFarmClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DeviceFarmClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-devops-guru/src/DevOpsGuruClient.ts b/clients/client-devops-guru/src/DevOpsGuruClient.ts index cfd8c90ce0f6..23c76313db86 100644 --- a/clients/client-devops-guru/src/DevOpsGuruClient.ts +++ b/clients/client-devops-guru/src/DevOpsGuruClient.ts @@ -154,6 +154,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -377,6 +383,7 @@ export interface DevOpsGuruClientConfig extends DevOpsGuruClientConfigType {} */ export type DevOpsGuruClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -426,8 +433,9 @@ export class DevOpsGuruClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-devops-guru/src/clientConfiguration.ts b/clients/client-devops-guru/src/clientConfiguration.ts new file mode 100644 index 000000000000..65b7c534e630 --- /dev/null +++ b/clients/client-devops-guru/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DevOpsGuruClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-devops-guru/src/runtimeConfig.shared.ts b/clients/client-devops-guru/src/runtimeConfig.shared.ts index 0639d503f9f7..4ad435eb38e1 100644 --- a/clients/client-devops-guru/src/runtimeConfig.shared.ts +++ b/clients/client-devops-guru/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DevOpsGuruClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DevOps Guru", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-devops-guru/src/runtimeExtensions.ts b/clients/client-devops-guru/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f3c8102b6445 --- /dev/null +++ b/clients/client-devops-guru/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DevOpsGuruClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DevOpsGuruClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DevOpsGuruClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-direct-connect/src/DirectConnectClient.ts b/clients/client-direct-connect/src/DirectConnectClient.ts index c0198a718d56..bd10a1832a53 100644 --- a/clients/client-direct-connect/src/DirectConnectClient.ts +++ b/clients/client-direct-connect/src/DirectConnectClient.ts @@ -255,6 +255,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -512,6 +513,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -542,6 +548,7 @@ export interface DirectConnectClientConfig extends DirectConnectClientConfigType */ export type DirectConnectClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -585,8 +592,9 @@ export class DirectConnectClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-direct-connect/src/clientConfiguration.ts b/clients/client-direct-connect/src/clientConfiguration.ts new file mode 100644 index 000000000000..07f812cf68ec --- /dev/null +++ b/clients/client-direct-connect/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DirectConnectClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-direct-connect/src/runtimeConfig.shared.ts b/clients/client-direct-connect/src/runtimeConfig.shared.ts index fe8d8d31cc4d..f3735f133fd1 100644 --- a/clients/client-direct-connect/src/runtimeConfig.shared.ts +++ b/clients/client-direct-connect/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DirectConnectClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Direct Connect", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-direct-connect/src/runtimeExtensions.ts b/clients/client-direct-connect/src/runtimeExtensions.ts new file mode 100644 index 000000000000..40c87e10e99d --- /dev/null +++ b/clients/client-direct-connect/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DirectConnectClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DirectConnectClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DirectConnectClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-directory-service/src/DirectoryServiceClient.ts b/clients/client-directory-service/src/DirectoryServiceClient.ts index d04de0ed1672..27dd1ef94a5b 100644 --- a/clients/client-directory-service/src/DirectoryServiceClient.ts +++ b/clients/client-directory-service/src/DirectoryServiceClient.ts @@ -214,6 +214,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -479,6 +480,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -509,6 +515,7 @@ export interface DirectoryServiceClientConfig extends DirectoryServiceClientConf */ export type DirectoryServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -560,8 +567,9 @@ export class DirectoryServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-directory-service/src/clientConfiguration.ts b/clients/client-directory-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..bd8b21e550f8 --- /dev/null +++ b/clients/client-directory-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DirectoryServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-directory-service/src/runtimeConfig.shared.ts b/clients/client-directory-service/src/runtimeConfig.shared.ts index 0d3daa627221..07bc83c86743 100644 --- a/clients/client-directory-service/src/runtimeConfig.shared.ts +++ b/clients/client-directory-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DirectoryServiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Directory Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-directory-service/src/runtimeExtensions.ts b/clients/client-directory-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..64147ee3a62e --- /dev/null +++ b/clients/client-directory-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DirectoryServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DirectoryServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DirectoryServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-dlm/src/DLMClient.ts b/clients/client-dlm/src/DLMClient.ts index 69094292550b..609329739ad1 100644 --- a/clients/client-dlm/src/DLMClient.ts +++ b/clients/client-dlm/src/DLMClient.ts @@ -80,6 +80,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -227,6 +228,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -257,6 +263,7 @@ export interface DLMClientConfig extends DLMClientConfigType {} */ export type DLMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -301,8 +308,9 @@ export class DLMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dlm/src/clientConfiguration.ts b/clients/client-dlm/src/clientConfiguration.ts new file mode 100644 index 000000000000..454773985b29 --- /dev/null +++ b/clients/client-dlm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DLMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-dlm/src/runtimeConfig.shared.ts b/clients/client-dlm/src/runtimeConfig.shared.ts index 38df357d607a..1aa19addda2e 100644 --- a/clients/client-dlm/src/runtimeConfig.shared.ts +++ b/clients/client-dlm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DLMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DLM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-dlm/src/runtimeExtensions.ts b/clients/client-dlm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f783f075dbd7 --- /dev/null +++ b/clients/client-dlm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DLMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DLMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DLMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-docdb-elastic/src/DocDBElasticClient.ts b/clients/client-docdb-elastic/src/DocDBElasticClient.ts index 22ef5bd9dd67..b3bf58af7005 100644 --- a/clients/client-docdb-elastic/src/DocDBElasticClient.ts +++ b/clients/client-docdb-elastic/src/DocDBElasticClient.ts @@ -85,6 +85,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -242,6 +243,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -272,6 +278,7 @@ export interface DocDBElasticClientConfig extends DocDBElasticClientConfigType { */ export type DocDBElasticClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -310,8 +317,9 @@ export class DocDBElasticClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-docdb-elastic/src/clientConfiguration.ts b/clients/client-docdb-elastic/src/clientConfiguration.ts new file mode 100644 index 000000000000..871af998fe05 --- /dev/null +++ b/clients/client-docdb-elastic/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DocDBElasticClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-docdb-elastic/src/runtimeConfig.shared.ts b/clients/client-docdb-elastic/src/runtimeConfig.shared.ts index 4c77c9406cfd..bcbfbad383f8 100644 --- a/clients/client-docdb-elastic/src/runtimeConfig.shared.ts +++ b/clients/client-docdb-elastic/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DocDBElasticClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DocDB Elastic", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-docdb-elastic/src/runtimeExtensions.ts b/clients/client-docdb-elastic/src/runtimeExtensions.ts new file mode 100644 index 000000000000..cfe2dcc71471 --- /dev/null +++ b/clients/client-docdb-elastic/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DocDBElasticClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DocDBElasticClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DocDBElasticClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-docdb/src/DocDBClient.ts b/clients/client-docdb/src/DocDBClient.ts index f8a8d928801d..933c0d0dab11 100644 --- a/clients/client-docdb/src/DocDBClient.ts +++ b/clients/client-docdb/src/DocDBClient.ts @@ -230,6 +230,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -467,6 +468,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -497,6 +503,7 @@ export interface DocDBClientConfig extends DocDBClientConfigType {} */ export type DocDBClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -537,8 +544,9 @@ export class DocDBClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-docdb/src/clientConfiguration.ts b/clients/client-docdb/src/clientConfiguration.ts new file mode 100644 index 000000000000..1734e34e773a --- /dev/null +++ b/clients/client-docdb/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DocDBClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-docdb/src/runtimeConfig.shared.ts b/clients/client-docdb/src/runtimeConfig.shared.ts index 2579d923b097..896561d5dc45 100644 --- a/clients/client-docdb/src/runtimeConfig.shared.ts +++ b/clients/client-docdb/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DocDBClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DocDB", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-docdb/src/runtimeExtensions.ts b/clients/client-docdb/src/runtimeExtensions.ts new file mode 100644 index 000000000000..359065bbee60 --- /dev/null +++ b/clients/client-docdb/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DocDBClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DocDBClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DocDBClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-drs/src/DrsClient.ts b/clients/client-drs/src/DrsClient.ts index ba018e6e51dd..82f6191dae1c 100644 --- a/clients/client-drs/src/DrsClient.ts +++ b/clients/client-drs/src/DrsClient.ts @@ -212,6 +212,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -437,6 +438,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -467,6 +473,7 @@ export interface DrsClientConfig extends DrsClientConfigType {} */ export type DrsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -505,8 +512,9 @@ export class DrsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-drs/src/clientConfiguration.ts b/clients/client-drs/src/clientConfiguration.ts new file mode 100644 index 000000000000..5441646c1806 --- /dev/null +++ b/clients/client-drs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DrsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-drs/src/runtimeConfig.shared.ts b/clients/client-drs/src/runtimeConfig.shared.ts index 749f6f270855..bd6f1a1932ff 100644 --- a/clients/client-drs/src/runtimeConfig.shared.ts +++ b/clients/client-drs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DrsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "drs", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-drs/src/runtimeExtensions.ts b/clients/client-drs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..78afc02475e0 --- /dev/null +++ b/clients/client-drs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DrsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DrsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DrsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-dynamodb-streams/src/DynamoDBStreamsClient.ts b/clients/client-dynamodb-streams/src/DynamoDBStreamsClient.ts index 99363d9b2877..cd409909dbda 100644 --- a/clients/client-dynamodb-streams/src/DynamoDBStreamsClient.ts +++ b/clients/client-dynamodb-streams/src/DynamoDBStreamsClient.ts @@ -61,6 +61,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -200,6 +201,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -230,6 +236,7 @@ export interface DynamoDBStreamsClientConfig extends DynamoDBStreamsClientConfig */ export type DynamoDBStreamsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -272,8 +279,9 @@ export class DynamoDBStreamsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dynamodb-streams/src/clientConfiguration.ts b/clients/client-dynamodb-streams/src/clientConfiguration.ts new file mode 100644 index 000000000000..e6b8bb48dbe9 --- /dev/null +++ b/clients/client-dynamodb-streams/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DynamoDBStreamsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-dynamodb-streams/src/runtimeConfig.shared.ts b/clients/client-dynamodb-streams/src/runtimeConfig.shared.ts index 0598fee73378..bc56b04e4952 100644 --- a/clients/client-dynamodb-streams/src/runtimeConfig.shared.ts +++ b/clients/client-dynamodb-streams/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DynamoDBStreamsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DynamoDB Streams", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-dynamodb-streams/src/runtimeExtensions.ts b/clients/client-dynamodb-streams/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e1bd6692679d --- /dev/null +++ b/clients/client-dynamodb-streams/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DynamoDBStreamsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DynamoDBStreamsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DynamoDBStreamsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-dynamodb/src/DynamoDBClient.ts b/clients/client-dynamodb/src/DynamoDBClient.ts index 389cd7979e8b..88742dfdc20b 100644 --- a/clients/client-dynamodb/src/DynamoDBClient.ts +++ b/clients/client-dynamodb/src/DynamoDBClient.ts @@ -170,6 +170,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -414,6 +415,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -445,6 +451,7 @@ export interface DynamoDBClientConfig extends DynamoDBClientConfigType {} */ export type DynamoDBClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -503,8 +510,9 @@ export class DynamoDBClient extends __Client< const _config_8 = resolveEndpointDiscoveryConfig(_config_7, { endpointDiscoveryCommandCtor: DescribeEndpointsCommand, }); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-dynamodb/src/clientConfiguration.ts b/clients/client-dynamodb/src/clientConfiguration.ts new file mode 100644 index 000000000000..72f7e0817676 --- /dev/null +++ b/clients/client-dynamodb/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface DynamoDBClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-dynamodb/src/runtimeConfig.shared.ts b/clients/client-dynamodb/src/runtimeConfig.shared.ts index acb6cc5c37a4..271c34c5b457 100644 --- a/clients/client-dynamodb/src/runtimeConfig.shared.ts +++ b/clients/client-dynamodb/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: DynamoDBClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "DynamoDB", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-dynamodb/src/runtimeExtensions.ts b/clients/client-dynamodb/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c4431555ab2a --- /dev/null +++ b/clients/client-dynamodb/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { DynamoDBClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: DynamoDBClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: DynamoDBClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ebs/src/EBSClient.ts b/clients/client-ebs/src/EBSClient.ts index 5c1e638f4d3c..0109aedc2b0d 100644 --- a/clients/client-ebs/src/EBSClient.ts +++ b/clients/client-ebs/src/EBSClient.ts @@ -64,6 +64,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -207,6 +208,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -243,6 +249,7 @@ export interface EBSClientConfig extends EBSClientConfigType {} */ export type EBSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -297,8 +304,9 @@ export class EBSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ebs/src/clientConfiguration.ts b/clients/client-ebs/src/clientConfiguration.ts new file mode 100644 index 000000000000..c5aa5bf7190b --- /dev/null +++ b/clients/client-ebs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EBSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ebs/src/runtimeConfig.shared.ts b/clients/client-ebs/src/runtimeConfig.shared.ts index 8c2ecbf8e9b6..1257068d8360 100644 --- a/clients/client-ebs/src/runtimeConfig.shared.ts +++ b/clients/client-ebs/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: EBSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "EBS", diff --git a/clients/client-ebs/src/runtimeExtensions.ts b/clients/client-ebs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1a81cc6d0698 --- /dev/null +++ b/clients/client-ebs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EBSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EBSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EBSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ec2-instance-connect/src/EC2InstanceConnectClient.ts b/clients/client-ec2-instance-connect/src/EC2InstanceConnectClient.ts index a3c1aacdf792..efcf14682572 100644 --- a/clients/client-ec2-instance-connect/src/EC2InstanceConnectClient.ts +++ b/clients/client-ec2-instance-connect/src/EC2InstanceConnectClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -193,6 +194,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -223,6 +229,7 @@ export interface EC2InstanceConnectClientConfig extends EC2InstanceConnectClient */ export type EC2InstanceConnectClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -263,8 +270,9 @@ export class EC2InstanceConnectClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ec2-instance-connect/src/clientConfiguration.ts b/clients/client-ec2-instance-connect/src/clientConfiguration.ts new file mode 100644 index 000000000000..0b119e9e3ac1 --- /dev/null +++ b/clients/client-ec2-instance-connect/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EC2InstanceConnectClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ec2-instance-connect/src/runtimeConfig.shared.ts b/clients/client-ec2-instance-connect/src/runtimeConfig.shared.ts index 53d855c1a3e2..3b46fe959b79 100644 --- a/clients/client-ec2-instance-connect/src/runtimeConfig.shared.ts +++ b/clients/client-ec2-instance-connect/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EC2InstanceConnectClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EC2 Instance Connect", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ec2-instance-connect/src/runtimeExtensions.ts b/clients/client-ec2-instance-connect/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6ddbd2989a1a --- /dev/null +++ b/clients/client-ec2-instance-connect/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EC2InstanceConnectClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EC2InstanceConnectClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EC2InstanceConnectClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ecr-public/src/ECRPUBLICClient.ts b/clients/client-ecr-public/src/ECRPUBLICClient.ts index 1208ec2f1d03..ca71750baa9d 100644 --- a/clients/client-ecr-public/src/ECRPUBLICClient.ts +++ b/clients/client-ecr-public/src/ECRPUBLICClient.ts @@ -119,6 +119,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface ECRPUBLICClientConfig extends ECRPUBLICClientConfigType {} */ export type ECRPUBLICClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -370,8 +377,9 @@ export class ECRPUBLICClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ecr-public/src/clientConfiguration.ts b/clients/client-ecr-public/src/clientConfiguration.ts new file mode 100644 index 000000000000..d6416220e846 --- /dev/null +++ b/clients/client-ecr-public/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ECRPUBLICClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ecr-public/src/runtimeConfig.shared.ts b/clients/client-ecr-public/src/runtimeConfig.shared.ts index 78c0dc162391..eb636ab2876b 100644 --- a/clients/client-ecr-public/src/runtimeConfig.shared.ts +++ b/clients/client-ecr-public/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ECRPUBLICClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ECR PUBLIC", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ecr-public/src/runtimeExtensions.ts b/clients/client-ecr-public/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e14e4584b338 --- /dev/null +++ b/clients/client-ecr-public/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ECRPUBLICClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ECRPUBLICClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ECRPUBLICClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ecr/src/ECRClient.ts b/clients/client-ecr/src/ECRClient.ts index 6b824af23ebc..81dc78a5b55c 100644 --- a/clients/client-ecr/src/ECRClient.ts +++ b/clients/client-ecr/src/ECRClient.ts @@ -173,6 +173,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -386,6 +387,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -416,6 +422,7 @@ export interface ECRClientConfig extends ECRClientConfigType {} */ export type ECRClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -462,8 +469,9 @@ export class ECRClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ecr/src/clientConfiguration.ts b/clients/client-ecr/src/clientConfiguration.ts new file mode 100644 index 000000000000..d0dbbcac5602 --- /dev/null +++ b/clients/client-ecr/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ECRClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ecr/src/runtimeConfig.shared.ts b/clients/client-ecr/src/runtimeConfig.shared.ts index e36dd488dde4..5e4a48de6f9c 100644 --- a/clients/client-ecr/src/runtimeConfig.shared.ts +++ b/clients/client-ecr/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ECRClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ECR", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ecr/src/runtimeExtensions.ts b/clients/client-ecr/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7ce757764eb1 --- /dev/null +++ b/clients/client-ecr/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ECRClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ECRClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ECRClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ecs/src/ECSClient.ts b/clients/client-ecs/src/ECSClient.ts index 60be4fc85839..dffd9d98ec72 100644 --- a/clients/client-ecs/src/ECSClient.ts +++ b/clients/client-ecs/src/ECSClient.ts @@ -200,6 +200,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -443,6 +444,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -473,6 +479,7 @@ export interface ECSClientConfig extends ECSClientConfigType {} */ export type ECSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -523,8 +530,9 @@ export class ECSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ecs/src/clientConfiguration.ts b/clients/client-ecs/src/clientConfiguration.ts new file mode 100644 index 000000000000..401e869c842e --- /dev/null +++ b/clients/client-ecs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ECSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ecs/src/runtimeConfig.shared.ts b/clients/client-ecs/src/runtimeConfig.shared.ts index eb53f99f84b9..439a27671f7c 100644 --- a/clients/client-ecs/src/runtimeConfig.shared.ts +++ b/clients/client-ecs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ECSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ECS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ecs/src/runtimeExtensions.ts b/clients/client-ecs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e3d8e993e164 --- /dev/null +++ b/clients/client-ecs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ECSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ECSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ECSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-efs/src/EFSClient.ts b/clients/client-efs/src/EFSClient.ts index bc4a7952040a..dc6126908f0f 100644 --- a/clients/client-efs/src/EFSClient.ts +++ b/clients/client-efs/src/EFSClient.ts @@ -138,6 +138,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -329,6 +330,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -359,6 +365,7 @@ export interface EFSClientConfig extends EFSClientConfigType {} */ export type EFSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -401,8 +408,9 @@ export class EFSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-efs/src/clientConfiguration.ts b/clients/client-efs/src/clientConfiguration.ts new file mode 100644 index 000000000000..fdd3ce6cb7a9 --- /dev/null +++ b/clients/client-efs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EFSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-efs/src/runtimeConfig.shared.ts b/clients/client-efs/src/runtimeConfig.shared.ts index 2614b0a80af8..b2beb3ae4401 100644 --- a/clients/client-efs/src/runtimeConfig.shared.ts +++ b/clients/client-efs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EFSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EFS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-efs/src/runtimeExtensions.ts b/clients/client-efs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..362fdf707e8a --- /dev/null +++ b/clients/client-efs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EFSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EFSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EFSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-eks/src/EKSClient.ts b/clients/client-eks/src/EKSClient.ts index aaad568e0d5f..be8eb0e29557 100644 --- a/clients/client-eks/src/EKSClient.ts +++ b/clients/client-eks/src/EKSClient.ts @@ -140,6 +140,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -341,6 +342,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -371,6 +377,7 @@ export interface EKSClientConfig extends EKSClientConfigType {} */ export type EKSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -418,8 +425,9 @@ export class EKSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-eks/src/clientConfiguration.ts b/clients/client-eks/src/clientConfiguration.ts new file mode 100644 index 000000000000..f1e7276ea30b --- /dev/null +++ b/clients/client-eks/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EKSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-eks/src/runtimeConfig.shared.ts b/clients/client-eks/src/runtimeConfig.shared.ts index d7717cc97b2d..de770709a664 100644 --- a/clients/client-eks/src/runtimeConfig.shared.ts +++ b/clients/client-eks/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EKSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EKS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-eks/src/runtimeExtensions.ts b/clients/client-eks/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b4db055a9c7e --- /dev/null +++ b/clients/client-eks/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EKSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EKSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EKSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elastic-beanstalk/src/ElasticBeanstalkClient.ts b/clients/client-elastic-beanstalk/src/ElasticBeanstalkClient.ts index 5fd25bcd281e..8fc7f6b17277 100644 --- a/clients/client-elastic-beanstalk/src/ElasticBeanstalkClient.ts +++ b/clients/client-elastic-beanstalk/src/ElasticBeanstalkClient.ts @@ -221,6 +221,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -446,6 +447,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -476,6 +482,7 @@ export interface ElasticBeanstalkClientConfig extends ElasticBeanstalkClientConf */ export type ElasticBeanstalkClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -526,8 +533,9 @@ export class ElasticBeanstalkClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elastic-beanstalk/src/clientConfiguration.ts b/clients/client-elastic-beanstalk/src/clientConfiguration.ts new file mode 100644 index 000000000000..620325c4f317 --- /dev/null +++ b/clients/client-elastic-beanstalk/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticBeanstalkClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elastic-beanstalk/src/runtimeConfig.shared.ts b/clients/client-elastic-beanstalk/src/runtimeConfig.shared.ts index dd6197b491bc..4e1cba7ff05e 100644 --- a/clients/client-elastic-beanstalk/src/runtimeConfig.shared.ts +++ b/clients/client-elastic-beanstalk/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticBeanstalkClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elastic Beanstalk", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elastic-beanstalk/src/runtimeExtensions.ts b/clients/client-elastic-beanstalk/src/runtimeExtensions.ts new file mode 100644 index 000000000000..50bce33e5d08 --- /dev/null +++ b/clients/client-elastic-beanstalk/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticBeanstalkClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticBeanstalkClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticBeanstalkClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elastic-inference/src/ElasticInferenceClient.ts b/clients/client-elastic-inference/src/ElasticInferenceClient.ts index df80664cff64..a42edd1e3100 100644 --- a/clients/client-elastic-inference/src/ElasticInferenceClient.ts +++ b/clients/client-elastic-inference/src/ElasticInferenceClient.ts @@ -75,6 +75,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -218,6 +219,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -248,6 +254,7 @@ export interface ElasticInferenceClientConfig extends ElasticInferenceClientConf */ export type ElasticInferenceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -293,8 +300,9 @@ export class ElasticInferenceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elastic-inference/src/clientConfiguration.ts b/clients/client-elastic-inference/src/clientConfiguration.ts new file mode 100644 index 000000000000..b91472797d30 --- /dev/null +++ b/clients/client-elastic-inference/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticInferenceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elastic-inference/src/runtimeConfig.shared.ts b/clients/client-elastic-inference/src/runtimeConfig.shared.ts index e25b2022f5ef..a874c32463f4 100644 --- a/clients/client-elastic-inference/src/runtimeConfig.shared.ts +++ b/clients/client-elastic-inference/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticInferenceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elastic Inference", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elastic-inference/src/runtimeExtensions.ts b/clients/client-elastic-inference/src/runtimeExtensions.ts new file mode 100644 index 000000000000..850a264fc493 --- /dev/null +++ b/clients/client-elastic-inference/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticInferenceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticInferenceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticInferenceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts index f7fdd111a3b3..091d93a563df 100644 --- a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts +++ b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts @@ -127,6 +127,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -326,6 +327,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -356,6 +362,7 @@ export interface ElasticLoadBalancingV2ClientConfig extends ElasticLoadBalancing */ export type ElasticLoadBalancingV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -422,8 +429,9 @@ export class ElasticLoadBalancingV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elastic-load-balancing-v2/src/clientConfiguration.ts b/clients/client-elastic-load-balancing-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..840cf120b4e1 --- /dev/null +++ b/clients/client-elastic-load-balancing-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticLoadBalancingV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elastic-load-balancing-v2/src/runtimeConfig.shared.ts b/clients/client-elastic-load-balancing-v2/src/runtimeConfig.shared.ts index d1db8bc0a229..080e72a66a4e 100644 --- a/clients/client-elastic-load-balancing-v2/src/runtimeConfig.shared.ts +++ b/clients/client-elastic-load-balancing-v2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticLoadBalancingV2ClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elastic Load Balancing v2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elastic-load-balancing-v2/src/runtimeExtensions.ts b/clients/client-elastic-load-balancing-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..cbd4e6c89f87 --- /dev/null +++ b/clients/client-elastic-load-balancing-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticLoadBalancingV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticLoadBalancingV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticLoadBalancingV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elastic-load-balancing/src/ElasticLoadBalancingClient.ts b/clients/client-elastic-load-balancing/src/ElasticLoadBalancingClient.ts index 054ce98a045b..a76e45fd3ab0 100644 --- a/clients/client-elastic-load-balancing/src/ElasticLoadBalancingClient.ts +++ b/clients/client-elastic-load-balancing/src/ElasticLoadBalancingClient.ts @@ -158,6 +158,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -377,6 +383,7 @@ export interface ElasticLoadBalancingClientConfig extends ElasticLoadBalancingCl */ export type ElasticLoadBalancingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -435,8 +442,9 @@ export class ElasticLoadBalancingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elastic-load-balancing/src/clientConfiguration.ts b/clients/client-elastic-load-balancing/src/clientConfiguration.ts new file mode 100644 index 000000000000..3580fcf6ca3a --- /dev/null +++ b/clients/client-elastic-load-balancing/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticLoadBalancingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elastic-load-balancing/src/runtimeConfig.shared.ts b/clients/client-elastic-load-balancing/src/runtimeConfig.shared.ts index 72bc79479990..0e0b56deced8 100644 --- a/clients/client-elastic-load-balancing/src/runtimeConfig.shared.ts +++ b/clients/client-elastic-load-balancing/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticLoadBalancingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elastic Load Balancing", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elastic-load-balancing/src/runtimeExtensions.ts b/clients/client-elastic-load-balancing/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d3be47a2528a --- /dev/null +++ b/clients/client-elastic-load-balancing/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticLoadBalancingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticLoadBalancingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticLoadBalancingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elastic-transcoder/src/ElasticTranscoderClient.ts b/clients/client-elastic-transcoder/src/ElasticTranscoderClient.ts index ad7b898034df..641dc7210192 100644 --- a/clients/client-elastic-transcoder/src/ElasticTranscoderClient.ts +++ b/clients/client-elastic-transcoder/src/ElasticTranscoderClient.ts @@ -80,6 +80,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -275,6 +281,7 @@ export interface ElasticTranscoderClientConfig extends ElasticTranscoderClientCo */ export type ElasticTranscoderClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -314,8 +321,9 @@ export class ElasticTranscoderClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elastic-transcoder/src/clientConfiguration.ts b/clients/client-elastic-transcoder/src/clientConfiguration.ts new file mode 100644 index 000000000000..e6cf56e572f9 --- /dev/null +++ b/clients/client-elastic-transcoder/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticTranscoderClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elastic-transcoder/src/runtimeConfig.shared.ts b/clients/client-elastic-transcoder/src/runtimeConfig.shared.ts index c8f5b7e91e1f..a71ccf9ebd31 100644 --- a/clients/client-elastic-transcoder/src/runtimeConfig.shared.ts +++ b/clients/client-elastic-transcoder/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticTranscoderClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elastic Transcoder", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elastic-transcoder/src/runtimeExtensions.ts b/clients/client-elastic-transcoder/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6c6acbad3801 --- /dev/null +++ b/clients/client-elastic-transcoder/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticTranscoderClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticTranscoderClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticTranscoderClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elasticache/src/ElastiCacheClient.ts b/clients/client-elasticache/src/ElastiCacheClient.ts index 9f473e4e02df..0180d7f37cc8 100644 --- a/clients/client-elasticache/src/ElastiCacheClient.ts +++ b/clients/client-elasticache/src/ElastiCacheClient.ts @@ -255,6 +255,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -518,6 +519,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -548,6 +554,7 @@ export interface ElastiCacheClientConfig extends ElastiCacheClientConfigType {} */ export type ElastiCacheClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -595,8 +602,9 @@ export class ElastiCacheClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elasticache/src/clientConfiguration.ts b/clients/client-elasticache/src/clientConfiguration.ts new file mode 100644 index 000000000000..55d06594bfbf --- /dev/null +++ b/clients/client-elasticache/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElastiCacheClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elasticache/src/runtimeConfig.shared.ts b/clients/client-elasticache/src/runtimeConfig.shared.ts index 84acfe0f2e48..fe95bd084184 100644 --- a/clients/client-elasticache/src/runtimeConfig.shared.ts +++ b/clients/client-elasticache/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElastiCacheClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ElastiCache", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elasticache/src/runtimeExtensions.ts b/clients/client-elasticache/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ce8cc5cc15b9 --- /dev/null +++ b/clients/client-elasticache/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElastiCacheClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElastiCacheClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElastiCacheClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-elasticsearch-service/src/ElasticsearchServiceClient.ts b/clients/client-elasticsearch-service/src/ElasticsearchServiceClient.ts index 8d11d604161f..fd0b33a19ca4 100644 --- a/clients/client-elasticsearch-service/src/ElasticsearchServiceClient.ts +++ b/clients/client-elasticsearch-service/src/ElasticsearchServiceClient.ts @@ -209,6 +209,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -440,6 +441,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -470,6 +476,7 @@ export interface ElasticsearchServiceClientConfig extends ElasticsearchServiceCl */ export type ElasticsearchServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -514,8 +521,9 @@ export class ElasticsearchServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-elasticsearch-service/src/clientConfiguration.ts b/clients/client-elasticsearch-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..b3e2ee5162f0 --- /dev/null +++ b/clients/client-elasticsearch-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ElasticsearchServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-elasticsearch-service/src/runtimeConfig.shared.ts b/clients/client-elasticsearch-service/src/runtimeConfig.shared.ts index 35f3d82c3df7..406e0176158c 100644 --- a/clients/client-elasticsearch-service/src/runtimeConfig.shared.ts +++ b/clients/client-elasticsearch-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ElasticsearchServiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Elasticsearch Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-elasticsearch-service/src/runtimeExtensions.ts b/clients/client-elasticsearch-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4e6629da15f9 --- /dev/null +++ b/clients/client-elasticsearch-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ElasticsearchServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ElasticsearchServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ElasticsearchServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-emr-containers/src/EMRContainersClient.ts b/clients/client-emr-containers/src/EMRContainersClient.ts index 41c8f588a61a..13eb525583c6 100644 --- a/clients/client-emr-containers/src/EMRContainersClient.ts +++ b/clients/client-emr-containers/src/EMRContainersClient.ts @@ -110,6 +110,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -281,6 +282,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -311,6 +317,7 @@ export interface EMRContainersClientConfig extends EMRContainersClientConfigType */ export type EMRContainersClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -372,8 +379,9 @@ export class EMRContainersClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-emr-containers/src/clientConfiguration.ts b/clients/client-emr-containers/src/clientConfiguration.ts new file mode 100644 index 000000000000..370937cb41fc --- /dev/null +++ b/clients/client-emr-containers/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EMRContainersClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-emr-containers/src/runtimeConfig.shared.ts b/clients/client-emr-containers/src/runtimeConfig.shared.ts index bd0a0d614464..ac7337c9b205 100644 --- a/clients/client-emr-containers/src/runtimeConfig.shared.ts +++ b/clients/client-emr-containers/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EMRContainersClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EMR containers", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-emr-containers/src/runtimeExtensions.ts b/clients/client-emr-containers/src/runtimeExtensions.ts new file mode 100644 index 000000000000..53cb8fda167a --- /dev/null +++ b/clients/client-emr-containers/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EMRContainersClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EMRContainersClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EMRContainersClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-emr-serverless/src/EMRServerlessClient.ts b/clients/client-emr-serverless/src/EMRServerlessClient.ts index f44099bed2b2..238740906a71 100644 --- a/clients/client-emr-serverless/src/EMRServerlessClient.ts +++ b/clients/client-emr-serverless/src/EMRServerlessClient.ts @@ -78,6 +78,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -239,6 +240,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -269,6 +275,7 @@ export interface EMRServerlessClientConfig extends EMRServerlessClientConfigType */ export type EMRServerlessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -327,8 +334,9 @@ export class EMRServerlessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-emr-serverless/src/clientConfiguration.ts b/clients/client-emr-serverless/src/clientConfiguration.ts new file mode 100644 index 000000000000..60c759591b6d --- /dev/null +++ b/clients/client-emr-serverless/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EMRServerlessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-emr-serverless/src/runtimeConfig.shared.ts b/clients/client-emr-serverless/src/runtimeConfig.shared.ts index f6516bbf299e..58ed7c33a086 100644 --- a/clients/client-emr-serverless/src/runtimeConfig.shared.ts +++ b/clients/client-emr-serverless/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EMRServerlessClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EMR Serverless", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-emr-serverless/src/runtimeExtensions.ts b/clients/client-emr-serverless/src/runtimeExtensions.ts new file mode 100644 index 000000000000..01e5293f41f5 --- /dev/null +++ b/clients/client-emr-serverless/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EMRServerlessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EMRServerlessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EMRServerlessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-emr/src/EMRClient.ts b/clients/client-emr/src/EMRClient.ts index 24484e415b1e..50dd47336a6a 100644 --- a/clients/client-emr/src/EMRClient.ts +++ b/clients/client-emr/src/EMRClient.ts @@ -204,6 +204,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -443,6 +444,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -473,6 +479,7 @@ export interface EMRClientConfig extends EMRClientConfigType {} */ export type EMRClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -513,8 +520,9 @@ export class EMRClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-emr/src/clientConfiguration.ts b/clients/client-emr/src/clientConfiguration.ts new file mode 100644 index 000000000000..39a4bd4fbde3 --- /dev/null +++ b/clients/client-emr/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EMRClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-emr/src/runtimeConfig.shared.ts b/clients/client-emr/src/runtimeConfig.shared.ts index 515a35e35bcd..53a99e321570 100644 --- a/clients/client-emr/src/runtimeConfig.shared.ts +++ b/clients/client-emr/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EMRClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EMR", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-emr/src/runtimeExtensions.ts b/clients/client-emr/src/runtimeExtensions.ts new file mode 100644 index 000000000000..91d2a0adfd6d --- /dev/null +++ b/clients/client-emr/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EMRClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EMRClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EMRClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-entityresolution/src/EntityResolutionClient.ts b/clients/client-entityresolution/src/EntityResolutionClient.ts index 9e438abdcd4b..b85c77ca2d1d 100644 --- a/clients/client-entityresolution/src/EntityResolutionClient.ts +++ b/clients/client-entityresolution/src/EntityResolutionClient.ts @@ -97,6 +97,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface EntityResolutionClientConfig extends EntityResolutionClientConf */ export type EntityResolutionClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -341,8 +348,9 @@ export class EntityResolutionClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-entityresolution/src/clientConfiguration.ts b/clients/client-entityresolution/src/clientConfiguration.ts new file mode 100644 index 000000000000..fc92c0b266a9 --- /dev/null +++ b/clients/client-entityresolution/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EntityResolutionClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-entityresolution/src/runtimeConfig.shared.ts b/clients/client-entityresolution/src/runtimeConfig.shared.ts index dd988b5a61a7..40a0b0bd93c3 100644 --- a/clients/client-entityresolution/src/runtimeConfig.shared.ts +++ b/clients/client-entityresolution/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EntityResolutionClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EntityResolution", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-entityresolution/src/runtimeExtensions.ts b/clients/client-entityresolution/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f7c1d87f489a --- /dev/null +++ b/clients/client-entityresolution/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EntityResolutionClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EntityResolutionClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EntityResolutionClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-eventbridge/src/EventBridgeClient.ts b/clients/client-eventbridge/src/EventBridgeClient.ts index f5ed4a4e81d8..2a6043f59939 100644 --- a/clients/client-eventbridge/src/EventBridgeClient.ts +++ b/clients/client-eventbridge/src/EventBridgeClient.ts @@ -161,6 +161,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -404,6 +405,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -434,6 +440,7 @@ export interface EventBridgeClientConfig extends EventBridgeClientConfigType {} */ export type EventBridgeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -492,8 +499,9 @@ export class EventBridgeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-eventbridge/src/clientConfiguration.ts b/clients/client-eventbridge/src/clientConfiguration.ts new file mode 100644 index 000000000000..3f7ecb7f3891 --- /dev/null +++ b/clients/client-eventbridge/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EventBridgeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-eventbridge/src/runtimeConfig.shared.ts b/clients/client-eventbridge/src/runtimeConfig.shared.ts index dcb1b43b9d65..7eb5a3b6e9e6 100644 --- a/clients/client-eventbridge/src/runtimeConfig.shared.ts +++ b/clients/client-eventbridge/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: EventBridgeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "EventBridge", signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion, diff --git a/clients/client-eventbridge/src/runtimeExtensions.ts b/clients/client-eventbridge/src/runtimeExtensions.ts new file mode 100644 index 000000000000..92ef1cd23290 --- /dev/null +++ b/clients/client-eventbridge/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EventBridgeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EventBridgeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EventBridgeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-evidently/src/EvidentlyClient.ts b/clients/client-evidently/src/EvidentlyClient.ts index 937654d2b136..a06f40ee6a48 100644 --- a/clients/client-evidently/src/EvidentlyClient.ts +++ b/clients/client-evidently/src/EvidentlyClient.ts @@ -110,6 +110,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -317,6 +318,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -347,6 +353,7 @@ export interface EvidentlyClientConfig extends EvidentlyClientConfigType {} */ export type EvidentlyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -394,8 +401,9 @@ export class EvidentlyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-evidently/src/clientConfiguration.ts b/clients/client-evidently/src/clientConfiguration.ts new file mode 100644 index 000000000000..57e98675f763 --- /dev/null +++ b/clients/client-evidently/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EvidentlyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-evidently/src/runtimeConfig.shared.ts b/clients/client-evidently/src/runtimeConfig.shared.ts index 146ac0b47715..5c9ba3154c71 100644 --- a/clients/client-evidently/src/runtimeConfig.shared.ts +++ b/clients/client-evidently/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: EvidentlyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Evidently", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-evidently/src/runtimeExtensions.ts b/clients/client-evidently/src/runtimeExtensions.ts new file mode 100644 index 000000000000..596f399b26d7 --- /dev/null +++ b/clients/client-evidently/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EvidentlyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EvidentlyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EvidentlyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-finspace-data/src/FinspaceDataClient.ts b/clients/client-finspace-data/src/FinspaceDataClient.ts index 8a7a7f012aae..da2845a10106 100644 --- a/clients/client-finspace-data/src/FinspaceDataClient.ts +++ b/clients/client-finspace-data/src/FinspaceDataClient.ts @@ -118,6 +118,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -311,6 +312,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -341,6 +347,7 @@ export interface FinspaceDataClientConfig extends FinspaceDataClientConfigType { */ export type FinspaceDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -379,8 +386,9 @@ export class FinspaceDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-finspace-data/src/clientConfiguration.ts b/clients/client-finspace-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..c38df789c1af --- /dev/null +++ b/clients/client-finspace-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FinspaceDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-finspace-data/src/runtimeConfig.shared.ts b/clients/client-finspace-data/src/runtimeConfig.shared.ts index f0b56600ea00..1311c4649580 100644 --- a/clients/client-finspace-data/src/runtimeConfig.shared.ts +++ b/clients/client-finspace-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FinspaceDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "finspace data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-finspace-data/src/runtimeExtensions.ts b/clients/client-finspace-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fa5d0a705024 --- /dev/null +++ b/clients/client-finspace-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FinspaceDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FinspaceDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FinspaceDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-finspace/src/FinspaceClient.ts b/clients/client-finspace/src/FinspaceClient.ts index 7d29f551df9b..fb1e095f1f67 100644 --- a/clients/client-finspace/src/FinspaceClient.ts +++ b/clients/client-finspace/src/FinspaceClient.ts @@ -112,6 +112,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -311,6 +312,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -341,6 +347,7 @@ export interface FinspaceClientConfig extends FinspaceClientConfigType {} */ export type FinspaceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -379,8 +386,9 @@ export class FinspaceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-finspace/src/clientConfiguration.ts b/clients/client-finspace/src/clientConfiguration.ts new file mode 100644 index 000000000000..4bb927785e99 --- /dev/null +++ b/clients/client-finspace/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FinspaceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-finspace/src/runtimeConfig.shared.ts b/clients/client-finspace/src/runtimeConfig.shared.ts index aa38a7556987..7768bc0fd9d4 100644 --- a/clients/client-finspace/src/runtimeConfig.shared.ts +++ b/clients/client-finspace/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FinspaceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "finspace", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-finspace/src/runtimeExtensions.ts b/clients/client-finspace/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b1c8922e5b7a --- /dev/null +++ b/clients/client-finspace/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FinspaceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FinspaceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FinspaceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-firehose/src/FirehoseClient.ts b/clients/client-firehose/src/FirehoseClient.ts index 574aef833efa..01df17b0bd59 100644 --- a/clients/client-firehose/src/FirehoseClient.ts +++ b/clients/client-firehose/src/FirehoseClient.ts @@ -93,6 +93,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -248,6 +249,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -278,6 +284,7 @@ export interface FirehoseClientConfig extends FirehoseClientConfigType {} */ export type FirehoseClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -320,8 +327,9 @@ export class FirehoseClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-firehose/src/clientConfiguration.ts b/clients/client-firehose/src/clientConfiguration.ts new file mode 100644 index 000000000000..bf834250ed3b --- /dev/null +++ b/clients/client-firehose/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FirehoseClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-firehose/src/runtimeConfig.shared.ts b/clients/client-firehose/src/runtimeConfig.shared.ts index 9a1aac5ca279..3976682755dd 100644 --- a/clients/client-firehose/src/runtimeConfig.shared.ts +++ b/clients/client-firehose/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FirehoseClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Firehose", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-firehose/src/runtimeExtensions.ts b/clients/client-firehose/src/runtimeExtensions.ts new file mode 100644 index 000000000000..58b3f3d6e523 --- /dev/null +++ b/clients/client-firehose/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FirehoseClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FirehoseClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FirehoseClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-fis/src/FisClient.ts b/clients/client-fis/src/FisClient.ts index 9aa884804b99..b23f059bf8ac 100644 --- a/clients/client-fis/src/FisClient.ts +++ b/clients/client-fis/src/FisClient.ts @@ -97,6 +97,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface FisClientConfig extends FisClientConfigType {} */ export type FisClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -329,8 +336,9 @@ export class FisClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-fis/src/clientConfiguration.ts b/clients/client-fis/src/clientConfiguration.ts new file mode 100644 index 000000000000..b3665a0ec4ea --- /dev/null +++ b/clients/client-fis/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FisClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-fis/src/runtimeConfig.shared.ts b/clients/client-fis/src/runtimeConfig.shared.ts index e1f146a1c4e2..a4d444dfde89 100644 --- a/clients/client-fis/src/runtimeConfig.shared.ts +++ b/clients/client-fis/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FisClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "fis", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-fis/src/runtimeExtensions.ts b/clients/client-fis/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fed607b72b92 --- /dev/null +++ b/clients/client-fis/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FisClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FisClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FisClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-fms/src/FMSClient.ts b/clients/client-fms/src/FMSClient.ts index e340b3a9eb09..0127aa167016 100644 --- a/clients/client-fms/src/FMSClient.ts +++ b/clients/client-fms/src/FMSClient.ts @@ -162,6 +162,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -377,6 +378,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -407,6 +413,7 @@ export interface FMSClientConfig extends FMSClientConfigType {} */ export type FMSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -451,8 +458,9 @@ export class FMSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-fms/src/clientConfiguration.ts b/clients/client-fms/src/clientConfiguration.ts new file mode 100644 index 000000000000..bd944f6f6d22 --- /dev/null +++ b/clients/client-fms/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FMSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-fms/src/runtimeConfig.shared.ts b/clients/client-fms/src/runtimeConfig.shared.ts index 929292e3d9aa..34cd2a821dfe 100644 --- a/clients/client-fms/src/runtimeConfig.shared.ts +++ b/clients/client-fms/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FMSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "FMS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-fms/src/runtimeExtensions.ts b/clients/client-fms/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1987c8d4c4d5 --- /dev/null +++ b/clients/client-fms/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FMSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FMSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FMSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-forecast/src/ForecastClient.ts b/clients/client-forecast/src/ForecastClient.ts index d00c365a4b79..a14a06ac1bad 100644 --- a/clients/client-forecast/src/ForecastClient.ts +++ b/clients/client-forecast/src/ForecastClient.ts @@ -228,6 +228,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -485,6 +486,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -515,6 +521,7 @@ export interface ForecastClientConfig extends ForecastClientConfigType {} */ export type ForecastClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -553,8 +560,9 @@ export class ForecastClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-forecast/src/clientConfiguration.ts b/clients/client-forecast/src/clientConfiguration.ts new file mode 100644 index 000000000000..76be459a9207 --- /dev/null +++ b/clients/client-forecast/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ForecastClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-forecast/src/runtimeConfig.shared.ts b/clients/client-forecast/src/runtimeConfig.shared.ts index 3eb9e70e7a6a..2b40ff3da53b 100644 --- a/clients/client-forecast/src/runtimeConfig.shared.ts +++ b/clients/client-forecast/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ForecastClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "forecast", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-forecast/src/runtimeExtensions.ts b/clients/client-forecast/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0cd0f7a47af5 --- /dev/null +++ b/clients/client-forecast/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ForecastClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ForecastClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ForecastClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-forecastquery/src/ForecastqueryClient.ts b/clients/client-forecastquery/src/ForecastqueryClient.ts index aabc893bc72e..590ca67a197f 100644 --- a/clients/client-forecastquery/src/ForecastqueryClient.ts +++ b/clients/client-forecastquery/src/ForecastqueryClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -193,6 +194,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -223,6 +229,7 @@ export interface ForecastqueryClientConfig extends ForecastqueryClientConfigType */ export type ForecastqueryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -261,8 +268,9 @@ export class ForecastqueryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-forecastquery/src/clientConfiguration.ts b/clients/client-forecastquery/src/clientConfiguration.ts new file mode 100644 index 000000000000..e1b1244dcd9b --- /dev/null +++ b/clients/client-forecastquery/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ForecastqueryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-forecastquery/src/runtimeConfig.shared.ts b/clients/client-forecastquery/src/runtimeConfig.shared.ts index e235e8de2984..141407a360b2 100644 --- a/clients/client-forecastquery/src/runtimeConfig.shared.ts +++ b/clients/client-forecastquery/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ForecastqueryClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "forecastquery", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-forecastquery/src/runtimeExtensions.ts b/clients/client-forecastquery/src/runtimeExtensions.ts new file mode 100644 index 000000000000..82f7f93c7664 --- /dev/null +++ b/clients/client-forecastquery/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ForecastqueryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ForecastqueryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ForecastqueryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-frauddetector/src/FraudDetectorClient.ts b/clients/client-frauddetector/src/FraudDetectorClient.ts index 5c631e66402c..16f89de0943d 100644 --- a/clients/client-frauddetector/src/FraudDetectorClient.ts +++ b/clients/client-frauddetector/src/FraudDetectorClient.ts @@ -199,6 +199,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -476,6 +477,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -506,6 +512,7 @@ export interface FraudDetectorClientConfig extends FraudDetectorClientConfigType */ export type FraudDetectorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -553,8 +560,9 @@ export class FraudDetectorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-frauddetector/src/clientConfiguration.ts b/clients/client-frauddetector/src/clientConfiguration.ts new file mode 100644 index 000000000000..8127156cba14 --- /dev/null +++ b/clients/client-frauddetector/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FraudDetectorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-frauddetector/src/runtimeConfig.shared.ts b/clients/client-frauddetector/src/runtimeConfig.shared.ts index 437ef4bbde97..52df7258bd47 100644 --- a/clients/client-frauddetector/src/runtimeConfig.shared.ts +++ b/clients/client-frauddetector/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FraudDetectorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "FraudDetector", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-frauddetector/src/runtimeExtensions.ts b/clients/client-frauddetector/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6828e1ca1aa3 --- /dev/null +++ b/clients/client-frauddetector/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FraudDetectorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FraudDetectorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FraudDetectorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-fsx/src/FSxClient.ts b/clients/client-fsx/src/FSxClient.ts index 811139a00fcd..9c203a7ff9c8 100644 --- a/clients/client-fsx/src/FSxClient.ts +++ b/clients/client-fsx/src/FSxClient.ts @@ -158,6 +158,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -371,6 +372,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -401,6 +407,7 @@ export interface FSxClientConfig extends FSxClientConfigType {} */ export type FSxClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -440,8 +447,9 @@ export class FSxClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-fsx/src/clientConfiguration.ts b/clients/client-fsx/src/clientConfiguration.ts new file mode 100644 index 000000000000..e746af5694ca --- /dev/null +++ b/clients/client-fsx/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface FSxClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-fsx/src/runtimeConfig.shared.ts b/clients/client-fsx/src/runtimeConfig.shared.ts index 691b689d0a86..bc7483aae334 100644 --- a/clients/client-fsx/src/runtimeConfig.shared.ts +++ b/clients/client-fsx/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: FSxClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "FSx", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-fsx/src/runtimeExtensions.ts b/clients/client-fsx/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b5b7365e7b1a --- /dev/null +++ b/clients/client-fsx/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { FSxClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: FSxClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: FSxClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-gamesparks/src/GameSparksClient.ts b/clients/client-gamesparks/src/GameSparksClient.ts index a1a053ffaa08..35a8cc32b2a6 100644 --- a/clients/client-gamesparks/src/GameSparksClient.ts +++ b/clients/client-gamesparks/src/GameSparksClient.ts @@ -126,6 +126,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -323,6 +324,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -353,6 +359,7 @@ export interface GameSparksClientConfig extends GameSparksClientConfigType {} */ export type GameSparksClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -391,8 +398,9 @@ export class GameSparksClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-gamesparks/src/clientConfiguration.ts b/clients/client-gamesparks/src/clientConfiguration.ts new file mode 100644 index 000000000000..b6be59769e29 --- /dev/null +++ b/clients/client-gamesparks/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GameSparksClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-gamesparks/src/runtimeConfig.shared.ts b/clients/client-gamesparks/src/runtimeConfig.shared.ts index c9652446953b..1b889d626615 100644 --- a/clients/client-gamesparks/src/runtimeConfig.shared.ts +++ b/clients/client-gamesparks/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GameSparksClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "GameSparks", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-gamesparks/src/runtimeExtensions.ts b/clients/client-gamesparks/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8f24b250fcda --- /dev/null +++ b/clients/client-gamesparks/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GameSparksClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GameSparksClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GameSparksClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-glacier/src/GlacierClient.ts b/clients/client-glacier/src/GlacierClient.ts index 5fa780437c70..cf9718bcd5cc 100644 --- a/clients/client-glacier/src/GlacierClient.ts +++ b/clients/client-glacier/src/GlacierClient.ts @@ -141,6 +141,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -383,6 +389,7 @@ export interface GlacierClientConfig extends GlacierClientConfigType {} */ export type GlacierClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -458,8 +465,9 @@ export class GlacierClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getGlacierPlugin(this.config)); diff --git a/clients/client-glacier/src/clientConfiguration.ts b/clients/client-glacier/src/clientConfiguration.ts new file mode 100644 index 000000000000..53c4112b3e56 --- /dev/null +++ b/clients/client-glacier/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GlacierClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-glacier/src/runtimeConfig.shared.ts b/clients/client-glacier/src/runtimeConfig.shared.ts index d467ff07d894..a5023247c6a6 100644 --- a/clients/client-glacier/src/runtimeConfig.shared.ts +++ b/clients/client-glacier/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: GlacierClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Glacier", diff --git a/clients/client-glacier/src/runtimeExtensions.ts b/clients/client-glacier/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4c9b3b59a74e --- /dev/null +++ b/clients/client-glacier/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GlacierClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GlacierClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GlacierClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-global-accelerator/src/GlobalAcceleratorClient.ts b/clients/client-global-accelerator/src/GlobalAcceleratorClient.ts index 7235822885ff..b9e0c7d4f411 100644 --- a/clients/client-global-accelerator/src/GlobalAcceleratorClient.ts +++ b/clients/client-global-accelerator/src/GlobalAcceleratorClient.ts @@ -199,6 +199,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -428,6 +429,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -458,6 +464,7 @@ export interface GlobalAcceleratorClientConfig extends GlobalAcceleratorClientCo */ export type GlobalAcceleratorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -543,8 +550,9 @@ export class GlobalAcceleratorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-global-accelerator/src/clientConfiguration.ts b/clients/client-global-accelerator/src/clientConfiguration.ts new file mode 100644 index 000000000000..1c53bbe3bc57 --- /dev/null +++ b/clients/client-global-accelerator/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GlobalAcceleratorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-global-accelerator/src/runtimeConfig.shared.ts b/clients/client-global-accelerator/src/runtimeConfig.shared.ts index eaf9bdd9a252..5a7f7eba7d42 100644 --- a/clients/client-global-accelerator/src/runtimeConfig.shared.ts +++ b/clients/client-global-accelerator/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GlobalAcceleratorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Global Accelerator", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-global-accelerator/src/runtimeExtensions.ts b/clients/client-global-accelerator/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d373f2c37b77 --- /dev/null +++ b/clients/client-global-accelerator/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GlobalAcceleratorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GlobalAcceleratorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GlobalAcceleratorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-glue/src/GlueClient.ts b/clients/client-glue/src/GlueClient.ts index 6b2de79af851..b338f5cb94f3 100644 --- a/clients/client-glue/src/GlueClient.ts +++ b/clients/client-glue/src/GlueClient.ts @@ -478,6 +478,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -1013,6 +1014,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -1043,6 +1049,7 @@ export interface GlueClientConfig extends GlueClientConfigType {} */ export type GlueClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1082,8 +1089,9 @@ export class GlueClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-glue/src/clientConfiguration.ts b/clients/client-glue/src/clientConfiguration.ts new file mode 100644 index 000000000000..bfefc01d3b79 --- /dev/null +++ b/clients/client-glue/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GlueClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-glue/src/runtimeConfig.shared.ts b/clients/client-glue/src/runtimeConfig.shared.ts index 1fdf5471b90f..0caceeb2ddd8 100644 --- a/clients/client-glue/src/runtimeConfig.shared.ts +++ b/clients/client-glue/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GlueClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Glue", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-glue/src/runtimeExtensions.ts b/clients/client-glue/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3c5764c30fdc --- /dev/null +++ b/clients/client-glue/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GlueClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GlueClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GlueClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-grafana/src/GrafanaClient.ts b/clients/client-grafana/src/GrafanaClient.ts index f7e5d984d410..5af6ad19f5f8 100644 --- a/clients/client-grafana/src/GrafanaClient.ts +++ b/clients/client-grafana/src/GrafanaClient.ts @@ -100,6 +100,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface GrafanaClientConfig extends GrafanaClientConfigType {} */ export type GrafanaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -345,8 +352,9 @@ export class GrafanaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-grafana/src/clientConfiguration.ts b/clients/client-grafana/src/clientConfiguration.ts new file mode 100644 index 000000000000..d03f6088a7db --- /dev/null +++ b/clients/client-grafana/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GrafanaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-grafana/src/runtimeConfig.shared.ts b/clients/client-grafana/src/runtimeConfig.shared.ts index bf66f36d9fa2..63573ada0f41 100644 --- a/clients/client-grafana/src/runtimeConfig.shared.ts +++ b/clients/client-grafana/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GrafanaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "grafana", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-grafana/src/runtimeExtensions.ts b/clients/client-grafana/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1d28ba0649a5 --- /dev/null +++ b/clients/client-grafana/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GrafanaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GrafanaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GrafanaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-greengrass/src/GreengrassClient.ts b/clients/client-greengrass/src/GreengrassClient.ts index 5bcbbbacb222..f32609c6e65e 100644 --- a/clients/client-greengrass/src/GreengrassClient.ts +++ b/clients/client-greengrass/src/GreengrassClient.ts @@ -377,6 +377,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -692,6 +693,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -722,6 +728,7 @@ export interface GreengrassClientConfig extends GreengrassClientConfigType {} */ export type GreengrassClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -760,8 +767,9 @@ export class GreengrassClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-greengrass/src/clientConfiguration.ts b/clients/client-greengrass/src/clientConfiguration.ts new file mode 100644 index 000000000000..a9c35e4f2186 --- /dev/null +++ b/clients/client-greengrass/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GreengrassClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-greengrass/src/runtimeConfig.shared.ts b/clients/client-greengrass/src/runtimeConfig.shared.ts index e78abaad07c0..6e4bbf95464a 100644 --- a/clients/client-greengrass/src/runtimeConfig.shared.ts +++ b/clients/client-greengrass/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GreengrassClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Greengrass", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-greengrass/src/runtimeExtensions.ts b/clients/client-greengrass/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ce497df0f39c --- /dev/null +++ b/clients/client-greengrass/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GreengrassClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GreengrassClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GreengrassClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-greengrassv2/src/GreengrassV2Client.ts b/clients/client-greengrassv2/src/GreengrassV2Client.ts index 01e7b3a1404c..02263ea62807 100644 --- a/clients/client-greengrassv2/src/GreengrassV2Client.ts +++ b/clients/client-greengrassv2/src/GreengrassV2Client.ts @@ -131,6 +131,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -320,6 +321,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -350,6 +356,7 @@ export interface GreengrassV2ClientConfig extends GreengrassV2ClientConfigType { */ export type GreengrassV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -398,8 +405,9 @@ export class GreengrassV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-greengrassv2/src/clientConfiguration.ts b/clients/client-greengrassv2/src/clientConfiguration.ts new file mode 100644 index 000000000000..c13205766a0b --- /dev/null +++ b/clients/client-greengrassv2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GreengrassV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-greengrassv2/src/runtimeConfig.shared.ts b/clients/client-greengrassv2/src/runtimeConfig.shared.ts index 26b87b9238af..bb41055587a7 100644 --- a/clients/client-greengrassv2/src/runtimeConfig.shared.ts +++ b/clients/client-greengrassv2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GreengrassV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "GreengrassV2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-greengrassv2/src/runtimeExtensions.ts b/clients/client-greengrassv2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..285d1f3c4de5 --- /dev/null +++ b/clients/client-greengrassv2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GreengrassV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GreengrassV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GreengrassV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-groundstation/src/GroundStationClient.ts b/clients/client-groundstation/src/GroundStationClient.ts index 6b3c95cba863..a39fa1530abc 100644 --- a/clients/client-groundstation/src/GroundStationClient.ts +++ b/clients/client-groundstation/src/GroundStationClient.ts @@ -120,6 +120,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -317,6 +318,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -347,6 +353,7 @@ export interface GroundStationClientConfig extends GroundStationClientConfigType */ export type GroundStationClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -388,8 +395,9 @@ export class GroundStationClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-groundstation/src/clientConfiguration.ts b/clients/client-groundstation/src/clientConfiguration.ts new file mode 100644 index 000000000000..c49eb208a883 --- /dev/null +++ b/clients/client-groundstation/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GroundStationClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-groundstation/src/runtimeConfig.shared.ts b/clients/client-groundstation/src/runtimeConfig.shared.ts index 52ccc7029ace..db6ae3008981 100644 --- a/clients/client-groundstation/src/runtimeConfig.shared.ts +++ b/clients/client-groundstation/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GroundStationClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "GroundStation", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-groundstation/src/runtimeExtensions.ts b/clients/client-groundstation/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2aecd1b65d73 --- /dev/null +++ b/clients/client-groundstation/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GroundStationClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GroundStationClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GroundStationClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-guardduty/src/GuardDutyClient.ts b/clients/client-guardduty/src/GuardDutyClient.ts index dfa7b8cd2f0a..b2c8276d5ff2 100644 --- a/clients/client-guardduty/src/GuardDutyClient.ts +++ b/clients/client-guardduty/src/GuardDutyClient.ts @@ -221,6 +221,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -488,6 +489,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -518,6 +524,7 @@ export interface GuardDutyClientConfig extends GuardDutyClientConfigType {} */ export type GuardDutyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -574,8 +581,9 @@ export class GuardDutyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-guardduty/src/clientConfiguration.ts b/clients/client-guardduty/src/clientConfiguration.ts new file mode 100644 index 000000000000..85c338479602 --- /dev/null +++ b/clients/client-guardduty/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface GuardDutyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-guardduty/src/runtimeConfig.shared.ts b/clients/client-guardduty/src/runtimeConfig.shared.ts index aecacb217dfb..914f99f0d355 100644 --- a/clients/client-guardduty/src/runtimeConfig.shared.ts +++ b/clients/client-guardduty/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: GuardDutyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "GuardDuty", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-guardduty/src/runtimeExtensions.ts b/clients/client-guardduty/src/runtimeExtensions.ts new file mode 100644 index 000000000000..57f14b68f991 --- /dev/null +++ b/clients/client-guardduty/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { GuardDutyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: GuardDutyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: GuardDutyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-health/src/HealthClient.ts b/clients/client-health/src/HealthClient.ts index c4007c61289a..3fcfbc4ea2c8 100644 --- a/clients/client-health/src/HealthClient.ts +++ b/clients/client-health/src/HealthClient.ts @@ -103,6 +103,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface HealthClientConfig extends HealthClientConfigType {} */ export type HealthClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -370,8 +377,9 @@ export class HealthClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-health/src/clientConfiguration.ts b/clients/client-health/src/clientConfiguration.ts new file mode 100644 index 000000000000..bae538448f2c --- /dev/null +++ b/clients/client-health/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface HealthClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-health/src/runtimeConfig.shared.ts b/clients/client-health/src/runtimeConfig.shared.ts index 2c6904a3ee50..c080eb398b50 100644 --- a/clients/client-health/src/runtimeConfig.shared.ts +++ b/clients/client-health/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: HealthClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Health", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-health/src/runtimeExtensions.ts b/clients/client-health/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b6199deb398e --- /dev/null +++ b/clients/client-health/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { HealthClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: HealthClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: HealthClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-healthlake/src/HealthLakeClient.ts b/clients/client-healthlake/src/HealthLakeClient.ts index 5e6aafb20a08..f4dd2ccdfb4c 100644 --- a/clients/client-healthlake/src/HealthLakeClient.ts +++ b/clients/client-healthlake/src/HealthLakeClient.ts @@ -88,6 +88,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -275,6 +281,7 @@ export interface HealthLakeClientConfig extends HealthLakeClientConfigType {} */ export type HealthLakeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -314,8 +321,9 @@ export class HealthLakeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-healthlake/src/clientConfiguration.ts b/clients/client-healthlake/src/clientConfiguration.ts new file mode 100644 index 000000000000..498a58409ed3 --- /dev/null +++ b/clients/client-healthlake/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface HealthLakeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-healthlake/src/runtimeConfig.shared.ts b/clients/client-healthlake/src/runtimeConfig.shared.ts index 5e6aa6e22798..ef2e05c2893f 100644 --- a/clients/client-healthlake/src/runtimeConfig.shared.ts +++ b/clients/client-healthlake/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: HealthLakeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "HealthLake", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-healthlake/src/runtimeExtensions.ts b/clients/client-healthlake/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8823038e4179 --- /dev/null +++ b/clients/client-healthlake/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { HealthLakeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: HealthLakeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: HealthLakeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-honeycode/src/HoneycodeClient.ts b/clients/client-honeycode/src/HoneycodeClient.ts index d87bf1874c63..36a8ff875237 100644 --- a/clients/client-honeycode/src/HoneycodeClient.ts +++ b/clients/client-honeycode/src/HoneycodeClient.ts @@ -96,6 +96,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface HoneycodeClientConfig extends HoneycodeClientConfigType {} */ export type HoneycodeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -329,8 +336,9 @@ export class HoneycodeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-honeycode/src/clientConfiguration.ts b/clients/client-honeycode/src/clientConfiguration.ts new file mode 100644 index 000000000000..1491a87436ff --- /dev/null +++ b/clients/client-honeycode/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface HoneycodeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-honeycode/src/runtimeConfig.shared.ts b/clients/client-honeycode/src/runtimeConfig.shared.ts index 67a242738273..3ee1219a7826 100644 --- a/clients/client-honeycode/src/runtimeConfig.shared.ts +++ b/clients/client-honeycode/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: HoneycodeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Honeycode", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-honeycode/src/runtimeExtensions.ts b/clients/client-honeycode/src/runtimeExtensions.ts new file mode 100644 index 000000000000..af26bb323b9f --- /dev/null +++ b/clients/client-honeycode/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { HoneycodeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: HoneycodeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: HoneycodeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iam/src/IAMClient.ts b/clients/client-iam/src/IAMClient.ts index 39e4b54c8d4c..f7aece72519f 100644 --- a/clients/client-iam/src/IAMClient.ts +++ b/clients/client-iam/src/IAMClient.ts @@ -441,6 +441,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -890,6 +891,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -920,6 +926,7 @@ export interface IAMClientConfig extends IAMClientConfigType {} */ export type IAMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -962,8 +969,9 @@ export class IAMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iam/src/clientConfiguration.ts b/clients/client-iam/src/clientConfiguration.ts new file mode 100644 index 000000000000..bb5c94029232 --- /dev/null +++ b/clients/client-iam/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IAMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iam/src/runtimeConfig.shared.ts b/clients/client-iam/src/runtimeConfig.shared.ts index 42ad41cdd545..83055a121199 100644 --- a/clients/client-iam/src/runtimeConfig.shared.ts +++ b/clients/client-iam/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IAMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IAM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iam/src/runtimeExtensions.ts b/clients/client-iam/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0937932b9d2a --- /dev/null +++ b/clients/client-iam/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IAMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IAMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IAMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-identitystore/src/IdentitystoreClient.ts b/clients/client-identitystore/src/IdentitystoreClient.ts index 42a4680c5b72..5bbe94962bc7 100644 --- a/clients/client-identitystore/src/IdentitystoreClient.ts +++ b/clients/client-identitystore/src/IdentitystoreClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -263,6 +264,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -293,6 +299,7 @@ export interface IdentitystoreClientConfig extends IdentitystoreClientConfigType */ export type IdentitystoreClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -342,8 +349,9 @@ export class IdentitystoreClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-identitystore/src/clientConfiguration.ts b/clients/client-identitystore/src/clientConfiguration.ts new file mode 100644 index 000000000000..5ff7c41f2f41 --- /dev/null +++ b/clients/client-identitystore/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IdentitystoreClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-identitystore/src/runtimeConfig.shared.ts b/clients/client-identitystore/src/runtimeConfig.shared.ts index 399d1948d6f0..1b7bf86a6fb1 100644 --- a/clients/client-identitystore/src/runtimeConfig.shared.ts +++ b/clients/client-identitystore/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IdentitystoreClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "identitystore", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-identitystore/src/runtimeExtensions.ts b/clients/client-identitystore/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d9e661267776 --- /dev/null +++ b/clients/client-identitystore/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IdentitystoreClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IdentitystoreClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IdentitystoreClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-imagebuilder/src/ImagebuilderClient.ts b/clients/client-imagebuilder/src/ImagebuilderClient.ts index 46a0cf69d458..b460c9d54eac 100644 --- a/clients/client-imagebuilder/src/ImagebuilderClient.ts +++ b/clients/client-imagebuilder/src/ImagebuilderClient.ts @@ -209,6 +209,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -452,6 +453,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -482,6 +488,7 @@ export interface ImagebuilderClientConfig extends ImagebuilderClientConfigType { */ export type ImagebuilderClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -523,8 +530,9 @@ export class ImagebuilderClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-imagebuilder/src/clientConfiguration.ts b/clients/client-imagebuilder/src/clientConfiguration.ts new file mode 100644 index 000000000000..565ca8cdeedc --- /dev/null +++ b/clients/client-imagebuilder/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ImagebuilderClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-imagebuilder/src/runtimeConfig.shared.ts b/clients/client-imagebuilder/src/runtimeConfig.shared.ts index f60ea38b46c5..385a42a4e663 100644 --- a/clients/client-imagebuilder/src/runtimeConfig.shared.ts +++ b/clients/client-imagebuilder/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ImagebuilderClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "imagebuilder", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-imagebuilder/src/runtimeExtensions.ts b/clients/client-imagebuilder/src/runtimeExtensions.ts new file mode 100644 index 000000000000..736a1a8e4773 --- /dev/null +++ b/clients/client-imagebuilder/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ImagebuilderClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ImagebuilderClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ImagebuilderClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-inspector/src/InspectorClient.ts b/clients/client-inspector/src/InspectorClient.ts index df65294a609a..6193ccbec3bc 100644 --- a/clients/client-inspector/src/InspectorClient.ts +++ b/clients/client-inspector/src/InspectorClient.ts @@ -172,6 +172,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -377,6 +378,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -407,6 +413,7 @@ export interface InspectorClientConfig extends InspectorClientConfigType {} */ export type InspectorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -448,8 +455,9 @@ export class InspectorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-inspector/src/clientConfiguration.ts b/clients/client-inspector/src/clientConfiguration.ts new file mode 100644 index 000000000000..f62c4ff29d96 --- /dev/null +++ b/clients/client-inspector/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface InspectorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-inspector/src/runtimeConfig.shared.ts b/clients/client-inspector/src/runtimeConfig.shared.ts index e5764f858241..42562dc358c9 100644 --- a/clients/client-inspector/src/runtimeConfig.shared.ts +++ b/clients/client-inspector/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: InspectorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Inspector", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-inspector/src/runtimeExtensions.ts b/clients/client-inspector/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b4ff4a44fe29 --- /dev/null +++ b/clients/client-inspector/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { InspectorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: InspectorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: InspectorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-inspector2/src/Inspector2Client.ts b/clients/client-inspector2/src/Inspector2Client.ts index 9bcd10dcc12a..c52557945f1e 100644 --- a/clients/client-inspector2/src/Inspector2Client.ts +++ b/clients/client-inspector2/src/Inspector2Client.ts @@ -178,6 +178,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -401,6 +402,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -431,6 +437,7 @@ export interface Inspector2ClientConfig extends Inspector2ClientConfigType {} */ export type Inspector2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -470,8 +477,9 @@ export class Inspector2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-inspector2/src/clientConfiguration.ts b/clients/client-inspector2/src/clientConfiguration.ts new file mode 100644 index 000000000000..3bd5d2b6cfd8 --- /dev/null +++ b/clients/client-inspector2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Inspector2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-inspector2/src/runtimeConfig.shared.ts b/clients/client-inspector2/src/runtimeConfig.shared.ts index 6d9f14a214f9..0e381a4f00f2 100644 --- a/clients/client-inspector2/src/runtimeConfig.shared.ts +++ b/clients/client-inspector2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Inspector2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Inspector2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-inspector2/src/runtimeExtensions.ts b/clients/client-inspector2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6e80ff523312 --- /dev/null +++ b/clients/client-inspector2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Inspector2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Inspector2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Inspector2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-internetmonitor/src/InternetMonitorClient.ts b/clients/client-internetmonitor/src/InternetMonitorClient.ts index 4cc9ba95fac8..7f6c9301b910 100644 --- a/clients/client-internetmonitor/src/InternetMonitorClient.ts +++ b/clients/client-internetmonitor/src/InternetMonitorClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface InternetMonitorClientConfig extends InternetMonitorClientConfig */ export type InternetMonitorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -304,8 +311,9 @@ export class InternetMonitorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-internetmonitor/src/clientConfiguration.ts b/clients/client-internetmonitor/src/clientConfiguration.ts new file mode 100644 index 000000000000..1c4eb159440b --- /dev/null +++ b/clients/client-internetmonitor/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface InternetMonitorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-internetmonitor/src/runtimeConfig.shared.ts b/clients/client-internetmonitor/src/runtimeConfig.shared.ts index c2cd3b271d98..9012f45b0528 100644 --- a/clients/client-internetmonitor/src/runtimeConfig.shared.ts +++ b/clients/client-internetmonitor/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: InternetMonitorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "InternetMonitor", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-internetmonitor/src/runtimeExtensions.ts b/clients/client-internetmonitor/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7df33ec35dcf --- /dev/null +++ b/clients/client-internetmonitor/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { InternetMonitorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: InternetMonitorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: InternetMonitorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-1click-devices-service/src/IoT1ClickDevicesServiceClient.ts b/clients/client-iot-1click-devices-service/src/IoT1ClickDevicesServiceClient.ts index a6a61feb0cdb..b24657e6a6c0 100644 --- a/clients/client-iot-1click-devices-service/src/IoT1ClickDevicesServiceClient.ts +++ b/clients/client-iot-1click-devices-service/src/IoT1ClickDevicesServiceClient.ts @@ -82,6 +82,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -239,6 +240,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -269,6 +275,7 @@ export interface IoT1ClickDevicesServiceClientConfig extends IoT1ClickDevicesSer */ export type IoT1ClickDevicesServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -309,8 +316,9 @@ export class IoT1ClickDevicesServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-1click-devices-service/src/clientConfiguration.ts b/clients/client-iot-1click-devices-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..37d3b3d2bdd0 --- /dev/null +++ b/clients/client-iot-1click-devices-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoT1ClickDevicesServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-1click-devices-service/src/runtimeConfig.shared.ts b/clients/client-iot-1click-devices-service/src/runtimeConfig.shared.ts index 607f0d3a90f5..092fb941852f 100644 --- a/clients/client-iot-1click-devices-service/src/runtimeConfig.shared.ts +++ b/clients/client-iot-1click-devices-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoT1ClickDevicesServiceClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT 1Click Devices Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-1click-devices-service/src/runtimeExtensions.ts b/clients/client-iot-1click-devices-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4026746568f9 --- /dev/null +++ b/clients/client-iot-1click-devices-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoT1ClickDevicesServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoT1ClickDevicesServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoT1ClickDevicesServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-1click-projects/src/IoT1ClickProjectsClient.ts b/clients/client-iot-1click-projects/src/IoT1ClickProjectsClient.ts index b8a71ed48cd5..d86ee922b363 100644 --- a/clients/client-iot-1click-projects/src/IoT1ClickProjectsClient.ts +++ b/clients/client-iot-1click-projects/src/IoT1ClickProjectsClient.ts @@ -85,6 +85,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -248,6 +249,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -278,6 +284,7 @@ export interface IoT1ClickProjectsClientConfig extends IoT1ClickProjectsClientCo */ export type IoT1ClickProjectsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -316,8 +323,9 @@ export class IoT1ClickProjectsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-1click-projects/src/clientConfiguration.ts b/clients/client-iot-1click-projects/src/clientConfiguration.ts new file mode 100644 index 000000000000..9c846b19afee --- /dev/null +++ b/clients/client-iot-1click-projects/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoT1ClickProjectsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-1click-projects/src/runtimeConfig.shared.ts b/clients/client-iot-1click-projects/src/runtimeConfig.shared.ts index a3fccdddcd51..cf80aa4860ce 100644 --- a/clients/client-iot-1click-projects/src/runtimeConfig.shared.ts +++ b/clients/client-iot-1click-projects/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoT1ClickProjectsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT 1Click Projects", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-1click-projects/src/runtimeExtensions.ts b/clients/client-iot-1click-projects/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f6b3833a5e03 --- /dev/null +++ b/clients/client-iot-1click-projects/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoT1ClickProjectsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoT1ClickProjectsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoT1ClickProjectsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-data-plane/src/IoTDataPlaneClient.ts b/clients/client-iot-data-plane/src/IoTDataPlaneClient.ts index 763fe83b22ac..1b2196dfae18 100644 --- a/clients/client-iot-data-plane/src/IoTDataPlaneClient.ts +++ b/clients/client-iot-data-plane/src/IoTDataPlaneClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -215,6 +216,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -245,6 +251,7 @@ export interface IoTDataPlaneClientConfig extends IoTDataPlaneClientConfigType { */ export type IoTDataPlaneClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -293,8 +300,9 @@ export class IoTDataPlaneClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-data-plane/src/clientConfiguration.ts b/clients/client-iot-data-plane/src/clientConfiguration.ts new file mode 100644 index 000000000000..74a3b9830e89 --- /dev/null +++ b/clients/client-iot-data-plane/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTDataPlaneClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-data-plane/src/runtimeConfig.shared.ts b/clients/client-iot-data-plane/src/runtimeConfig.shared.ts index e261615965f2..31533c8275a9 100644 --- a/clients/client-iot-data-plane/src/runtimeConfig.shared.ts +++ b/clients/client-iot-data-plane/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTDataPlaneClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT Data Plane", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-data-plane/src/runtimeExtensions.ts b/clients/client-iot-data-plane/src/runtimeExtensions.ts new file mode 100644 index 000000000000..feb250e0d9a6 --- /dev/null +++ b/clients/client-iot-data-plane/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTDataPlaneClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTDataPlaneClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTDataPlaneClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-events-data/src/IoTEventsDataClient.ts b/clients/client-iot-events-data/src/IoTEventsDataClient.ts index 793e438b8e5d..66416e4b938c 100644 --- a/clients/client-iot-events-data/src/IoTEventsDataClient.ts +++ b/clients/client-iot-events-data/src/IoTEventsDataClient.ts @@ -78,6 +78,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -233,6 +234,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -263,6 +269,7 @@ export interface IoTEventsDataClientConfig extends IoTEventsDataClientConfigType */ export type IoTEventsDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -305,8 +312,9 @@ export class IoTEventsDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-events-data/src/clientConfiguration.ts b/clients/client-iot-events-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..a9467f648404 --- /dev/null +++ b/clients/client-iot-events-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTEventsDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-events-data/src/runtimeConfig.shared.ts b/clients/client-iot-events-data/src/runtimeConfig.shared.ts index aef1d5eaedfa..3be02be3f605 100644 --- a/clients/client-iot-events-data/src/runtimeConfig.shared.ts +++ b/clients/client-iot-events-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTEventsDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT Events Data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-events-data/src/runtimeExtensions.ts b/clients/client-iot-events-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f1d297e8d3de --- /dev/null +++ b/clients/client-iot-events-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTEventsDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTEventsDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTEventsDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-events/src/IoTEventsClient.ts b/clients/client-iot-events/src/IoTEventsClient.ts index bd865dc50d78..50cfd492076b 100644 --- a/clients/client-iot-events/src/IoTEventsClient.ts +++ b/clients/client-iot-events/src/IoTEventsClient.ts @@ -116,6 +116,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface IoTEventsClientConfig extends IoTEventsClientConfigType {} */ export type IoTEventsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -369,8 +376,9 @@ export class IoTEventsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-events/src/clientConfiguration.ts b/clients/client-iot-events/src/clientConfiguration.ts new file mode 100644 index 000000000000..3686d6ff3ea0 --- /dev/null +++ b/clients/client-iot-events/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTEventsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-events/src/runtimeConfig.shared.ts b/clients/client-iot-events/src/runtimeConfig.shared.ts index 8b0c20d88082..fbebf90fea3f 100644 --- a/clients/client-iot-events/src/runtimeConfig.shared.ts +++ b/clients/client-iot-events/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTEventsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT Events", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-events/src/runtimeExtensions.ts b/clients/client-iot-events/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7f4eec8c5ac5 --- /dev/null +++ b/clients/client-iot-events/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTEventsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTEventsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTEventsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-jobs-data-plane/src/IoTJobsDataPlaneClient.ts b/clients/client-iot-jobs-data-plane/src/IoTJobsDataPlaneClient.ts index 0eab83b9f26d..3ed0cf14a2a5 100644 --- a/clients/client-iot-jobs-data-plane/src/IoTJobsDataPlaneClient.ts +++ b/clients/client-iot-jobs-data-plane/src/IoTJobsDataPlaneClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -209,6 +210,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -239,6 +245,7 @@ export interface IoTJobsDataPlaneClientConfig extends IoTJobsDataPlaneClientConf */ export type IoTJobsDataPlaneClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -287,8 +294,9 @@ export class IoTJobsDataPlaneClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-jobs-data-plane/src/clientConfiguration.ts b/clients/client-iot-jobs-data-plane/src/clientConfiguration.ts new file mode 100644 index 000000000000..876fdd40b80a --- /dev/null +++ b/clients/client-iot-jobs-data-plane/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTJobsDataPlaneClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-jobs-data-plane/src/runtimeConfig.shared.ts b/clients/client-iot-jobs-data-plane/src/runtimeConfig.shared.ts index 6ca2715058ad..afea216bd040 100644 --- a/clients/client-iot-jobs-data-plane/src/runtimeConfig.shared.ts +++ b/clients/client-iot-jobs-data-plane/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTJobsDataPlaneClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT Jobs Data Plane", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-jobs-data-plane/src/runtimeExtensions.ts b/clients/client-iot-jobs-data-plane/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9532c947cbe4 --- /dev/null +++ b/clients/client-iot-jobs-data-plane/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTJobsDataPlaneClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTJobsDataPlaneClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTJobsDataPlaneClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-roborunner/src/IoTRoboRunnerClient.ts b/clients/client-iot-roborunner/src/IoTRoboRunnerClient.ts index 89ea5bb04a97..a7d60a82ad75 100644 --- a/clients/client-iot-roborunner/src/IoTRoboRunnerClient.ts +++ b/clients/client-iot-roborunner/src/IoTRoboRunnerClient.ts @@ -77,6 +77,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -248,6 +249,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -278,6 +284,7 @@ export interface IoTRoboRunnerClientConfig extends IoTRoboRunnerClientConfigType */ export type IoTRoboRunnerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -317,8 +324,9 @@ export class IoTRoboRunnerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-roborunner/src/clientConfiguration.ts b/clients/client-iot-roborunner/src/clientConfiguration.ts new file mode 100644 index 000000000000..d7654031cc50 --- /dev/null +++ b/clients/client-iot-roborunner/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTRoboRunnerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-roborunner/src/runtimeConfig.shared.ts b/clients/client-iot-roborunner/src/runtimeConfig.shared.ts index fb2b38c480a2..7c7cc1bb5ee0 100644 --- a/clients/client-iot-roborunner/src/runtimeConfig.shared.ts +++ b/clients/client-iot-roborunner/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTRoboRunnerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT RoboRunner", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-roborunner/src/runtimeExtensions.ts b/clients/client-iot-roborunner/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e1c98879d4ff --- /dev/null +++ b/clients/client-iot-roborunner/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTRoboRunnerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTRoboRunnerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTRoboRunnerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot-wireless/src/IoTWirelessClient.ts b/clients/client-iot-wireless/src/IoTWirelessClient.ts index 13bdf38063e2..a29ce971075f 100644 --- a/clients/client-iot-wireless/src/IoTWirelessClient.ts +++ b/clients/client-iot-wireless/src/IoTWirelessClient.ts @@ -418,6 +418,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -767,6 +768,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -797,6 +803,7 @@ export interface IoTWirelessClientConfig extends IoTWirelessClientConfigType {} */ export type IoTWirelessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -847,8 +854,9 @@ export class IoTWirelessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot-wireless/src/clientConfiguration.ts b/clients/client-iot-wireless/src/clientConfiguration.ts new file mode 100644 index 000000000000..610ed6eee5fe --- /dev/null +++ b/clients/client-iot-wireless/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTWirelessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot-wireless/src/runtimeConfig.shared.ts b/clients/client-iot-wireless/src/runtimeConfig.shared.ts index 4d0b86375f42..8cdc76240ff5 100644 --- a/clients/client-iot-wireless/src/runtimeConfig.shared.ts +++ b/clients/client-iot-wireless/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTWirelessClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT Wireless", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot-wireless/src/runtimeExtensions.ts b/clients/client-iot-wireless/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b157882d5767 --- /dev/null +++ b/clients/client-iot-wireless/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTWirelessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTWirelessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTWirelessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iot/src/IoTClient.ts b/clients/client-iot/src/IoTClient.ts index c2055147dcd9..7039cb9a661a 100644 --- a/clients/client-iot/src/IoTClient.ts +++ b/clients/client-iot/src/IoTClient.ts @@ -742,6 +742,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -1373,6 +1374,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -1403,6 +1409,7 @@ export interface IoTClientConfig extends IoTClientConfigType {} */ export type IoTClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1456,8 +1463,9 @@ export class IoTClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iot/src/clientConfiguration.ts b/clients/client-iot/src/clientConfiguration.ts new file mode 100644 index 000000000000..c22d7be861f7 --- /dev/null +++ b/clients/client-iot/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iot/src/runtimeConfig.shared.ts b/clients/client-iot/src/runtimeConfig.shared.ts index 0366d29611cb..8508475046e7 100644 --- a/clients/client-iot/src/runtimeConfig.shared.ts +++ b/clients/client-iot/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoT", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iot/src/runtimeExtensions.ts b/clients/client-iot/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6f40247f018c --- /dev/null +++ b/clients/client-iot/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotanalytics/src/IoTAnalyticsClient.ts b/clients/client-iotanalytics/src/IoTAnalyticsClient.ts index 43349ca2f820..b50f01ed6adc 100644 --- a/clients/client-iotanalytics/src/IoTAnalyticsClient.ts +++ b/clients/client-iotanalytics/src/IoTAnalyticsClient.ts @@ -115,6 +115,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -314,6 +315,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -344,6 +350,7 @@ export interface IoTAnalyticsClientConfig extends IoTAnalyticsClientConfigType { */ export type IoTAnalyticsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -400,8 +407,9 @@ export class IoTAnalyticsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotanalytics/src/clientConfiguration.ts b/clients/client-iotanalytics/src/clientConfiguration.ts new file mode 100644 index 000000000000..75810e658cf1 --- /dev/null +++ b/clients/client-iotanalytics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTAnalyticsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotanalytics/src/runtimeConfig.shared.ts b/clients/client-iotanalytics/src/runtimeConfig.shared.ts index 4182fc55559a..a7df68df1ad9 100644 --- a/clients/client-iotanalytics/src/runtimeConfig.shared.ts +++ b/clients/client-iotanalytics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTAnalyticsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTAnalytics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotanalytics/src/runtimeExtensions.ts b/clients/client-iotanalytics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dceaacc28980 --- /dev/null +++ b/clients/client-iotanalytics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTAnalyticsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTAnalyticsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTAnalyticsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotdeviceadvisor/src/IotDeviceAdvisorClient.ts b/clients/client-iotdeviceadvisor/src/IotDeviceAdvisorClient.ts index 895e1527f8ae..3bc03e1b2390 100644 --- a/clients/client-iotdeviceadvisor/src/IotDeviceAdvisorClient.ts +++ b/clients/client-iotdeviceadvisor/src/IotDeviceAdvisorClient.ts @@ -86,6 +86,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -275,6 +281,7 @@ export interface IotDeviceAdvisorClientConfig extends IotDeviceAdvisorClientConf */ export type IotDeviceAdvisorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -321,8 +328,9 @@ export class IotDeviceAdvisorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotdeviceadvisor/src/clientConfiguration.ts b/clients/client-iotdeviceadvisor/src/clientConfiguration.ts new file mode 100644 index 000000000000..b57872ddb0ec --- /dev/null +++ b/clients/client-iotdeviceadvisor/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IotDeviceAdvisorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotdeviceadvisor/src/runtimeConfig.shared.ts b/clients/client-iotdeviceadvisor/src/runtimeConfig.shared.ts index 03b252bea512..e339b5e6d209 100644 --- a/clients/client-iotdeviceadvisor/src/runtimeConfig.shared.ts +++ b/clients/client-iotdeviceadvisor/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IotDeviceAdvisorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IotDeviceAdvisor", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotdeviceadvisor/src/runtimeExtensions.ts b/clients/client-iotdeviceadvisor/src/runtimeExtensions.ts new file mode 100644 index 000000000000..12e3a1860bf6 --- /dev/null +++ b/clients/client-iotdeviceadvisor/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IotDeviceAdvisorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IotDeviceAdvisorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IotDeviceAdvisorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotfleethub/src/IoTFleetHubClient.ts b/clients/client-iotfleethub/src/IoTFleetHubClient.ts index 064af1cce749..7f03ea67afcc 100644 --- a/clients/client-iotfleethub/src/IoTFleetHubClient.ts +++ b/clients/client-iotfleethub/src/IoTFleetHubClient.ts @@ -71,6 +71,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -218,6 +219,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -248,6 +254,7 @@ export interface IoTFleetHubClientConfig extends IoTFleetHubClientConfigType {} */ export type IoTFleetHubClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -289,8 +296,9 @@ export class IoTFleetHubClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotfleethub/src/clientConfiguration.ts b/clients/client-iotfleethub/src/clientConfiguration.ts new file mode 100644 index 000000000000..33db678ac8c0 --- /dev/null +++ b/clients/client-iotfleethub/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTFleetHubClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotfleethub/src/runtimeConfig.shared.ts b/clients/client-iotfleethub/src/runtimeConfig.shared.ts index d6a5e6529b93..40082a44bcdf 100644 --- a/clients/client-iotfleethub/src/runtimeConfig.shared.ts +++ b/clients/client-iotfleethub/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTFleetHubClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTFleetHub", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotfleethub/src/runtimeExtensions.ts b/clients/client-iotfleethub/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4a7003aa5088 --- /dev/null +++ b/clients/client-iotfleethub/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTFleetHubClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTFleetHubClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTFleetHubClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotfleetwise/src/IoTFleetWiseClient.ts b/clients/client-iotfleetwise/src/IoTFleetWiseClient.ts index edda70e47cb2..3a65d062c767 100644 --- a/clients/client-iotfleetwise/src/IoTFleetWiseClient.ts +++ b/clients/client-iotfleetwise/src/IoTFleetWiseClient.ts @@ -173,6 +173,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -404,6 +405,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -434,6 +440,7 @@ export interface IoTFleetWiseClientConfig extends IoTFleetWiseClientConfigType { */ export type IoTFleetWiseClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -478,8 +485,9 @@ export class IoTFleetWiseClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotfleetwise/src/clientConfiguration.ts b/clients/client-iotfleetwise/src/clientConfiguration.ts new file mode 100644 index 000000000000..bbe737ccba95 --- /dev/null +++ b/clients/client-iotfleetwise/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTFleetWiseClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotfleetwise/src/runtimeConfig.shared.ts b/clients/client-iotfleetwise/src/runtimeConfig.shared.ts index f7395c6bb51f..53f686ed217a 100644 --- a/clients/client-iotfleetwise/src/runtimeConfig.shared.ts +++ b/clients/client-iotfleetwise/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTFleetWiseClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTFleetWise", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotfleetwise/src/runtimeExtensions.ts b/clients/client-iotfleetwise/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ccaae49f6360 --- /dev/null +++ b/clients/client-iotfleetwise/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTFleetWiseClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTFleetWiseClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTFleetWiseClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotsecuretunneling/src/IoTSecureTunnelingClient.ts b/clients/client-iotsecuretunneling/src/IoTSecureTunnelingClient.ts index b6e2371d3b81..0d05162ce27f 100644 --- a/clients/client-iotsecuretunneling/src/IoTSecureTunnelingClient.ts +++ b/clients/client-iotsecuretunneling/src/IoTSecureTunnelingClient.ts @@ -71,6 +71,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -218,6 +219,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -248,6 +254,7 @@ export interface IoTSecureTunnelingClientConfig extends IoTSecureTunnelingClient */ export type IoTSecureTunnelingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -290,8 +297,9 @@ export class IoTSecureTunnelingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotsecuretunneling/src/clientConfiguration.ts b/clients/client-iotsecuretunneling/src/clientConfiguration.ts new file mode 100644 index 000000000000..02a9a667f97f --- /dev/null +++ b/clients/client-iotsecuretunneling/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTSecureTunnelingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotsecuretunneling/src/runtimeConfig.shared.ts b/clients/client-iotsecuretunneling/src/runtimeConfig.shared.ts index 4cd6ed1daf22..a20a2bce3243 100644 --- a/clients/client-iotsecuretunneling/src/runtimeConfig.shared.ts +++ b/clients/client-iotsecuretunneling/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTSecureTunnelingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTSecureTunneling", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotsecuretunneling/src/runtimeExtensions.ts b/clients/client-iotsecuretunneling/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e5ea853ac71b --- /dev/null +++ b/clients/client-iotsecuretunneling/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTSecureTunnelingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTSecureTunnelingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTSecureTunnelingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotsitewise/src/IoTSiteWiseClient.ts b/clients/client-iotsitewise/src/IoTSiteWiseClient.ts index adf426d38b18..3e8629547838 100644 --- a/clients/client-iotsitewise/src/IoTSiteWiseClient.ts +++ b/clients/client-iotsitewise/src/IoTSiteWiseClient.ts @@ -217,6 +217,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -494,6 +495,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -524,6 +530,7 @@ export interface IoTSiteWiseClientConfig extends IoTSiteWiseClientConfigType {} */ export type IoTSiteWiseClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -563,8 +570,9 @@ export class IoTSiteWiseClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotsitewise/src/clientConfiguration.ts b/clients/client-iotsitewise/src/clientConfiguration.ts new file mode 100644 index 000000000000..420d3fc32f11 --- /dev/null +++ b/clients/client-iotsitewise/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTSiteWiseClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotsitewise/src/runtimeConfig.shared.ts b/clients/client-iotsitewise/src/runtimeConfig.shared.ts index 4b5a1a0d05a2..cfb635f9748f 100644 --- a/clients/client-iotsitewise/src/runtimeConfig.shared.ts +++ b/clients/client-iotsitewise/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTSiteWiseClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTSiteWise", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotsitewise/src/runtimeExtensions.ts b/clients/client-iotsitewise/src/runtimeExtensions.ts new file mode 100644 index 000000000000..68630ccbd55a --- /dev/null +++ b/clients/client-iotsitewise/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTSiteWiseClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTSiteWiseClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTSiteWiseClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iotthingsgraph/src/IoTThingsGraphClient.ts b/clients/client-iotthingsgraph/src/IoTThingsGraphClient.ts index 85d2159621e3..a4e52f1e6bbc 100644 --- a/clients/client-iotthingsgraph/src/IoTThingsGraphClient.ts +++ b/clients/client-iotthingsgraph/src/IoTThingsGraphClient.ts @@ -155,6 +155,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -356,6 +357,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -386,6 +392,7 @@ export interface IoTThingsGraphClientConfig extends IoTThingsGraphClientConfigTy */ export type IoTThingsGraphClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -430,8 +437,9 @@ export class IoTThingsGraphClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iotthingsgraph/src/clientConfiguration.ts b/clients/client-iotthingsgraph/src/clientConfiguration.ts new file mode 100644 index 000000000000..d51ca611a367 --- /dev/null +++ b/clients/client-iotthingsgraph/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTThingsGraphClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iotthingsgraph/src/runtimeConfig.shared.ts b/clients/client-iotthingsgraph/src/runtimeConfig.shared.ts index e16703be7662..a3c15cac4ef8 100644 --- a/clients/client-iotthingsgraph/src/runtimeConfig.shared.ts +++ b/clients/client-iotthingsgraph/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTThingsGraphClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTThingsGraph", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iotthingsgraph/src/runtimeExtensions.ts b/clients/client-iotthingsgraph/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8c335d5bbb00 --- /dev/null +++ b/clients/client-iotthingsgraph/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTThingsGraphClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTThingsGraphClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTThingsGraphClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-iottwinmaker/src/IoTTwinMakerClient.ts b/clients/client-iottwinmaker/src/IoTTwinMakerClient.ts index 62073137855f..1f720c2e74bf 100644 --- a/clients/client-iottwinmaker/src/IoTTwinMakerClient.ts +++ b/clients/client-iottwinmaker/src/IoTTwinMakerClient.ts @@ -109,6 +109,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface IoTTwinMakerClientConfig extends IoTTwinMakerClientConfigType { */ export type IoTTwinMakerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -382,8 +389,9 @@ export class IoTTwinMakerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-iottwinmaker/src/clientConfiguration.ts b/clients/client-iottwinmaker/src/clientConfiguration.ts new file mode 100644 index 000000000000..5a57ee221e27 --- /dev/null +++ b/clients/client-iottwinmaker/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IoTTwinMakerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-iottwinmaker/src/runtimeConfig.shared.ts b/clients/client-iottwinmaker/src/runtimeConfig.shared.ts index ea35a59d9c98..bb89867b16bd 100644 --- a/clients/client-iottwinmaker/src/runtimeConfig.shared.ts +++ b/clients/client-iottwinmaker/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IoTTwinMakerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IoTTwinMaker", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-iottwinmaker/src/runtimeExtensions.ts b/clients/client-iottwinmaker/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4dd9c946d60c --- /dev/null +++ b/clients/client-iottwinmaker/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IoTTwinMakerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IoTTwinMakerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IoTTwinMakerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ivs-realtime/src/IVSRealTimeClient.ts b/clients/client-ivs-realtime/src/IVSRealTimeClient.ts index 58511470e0e9..6533a503635f 100644 --- a/clients/client-ivs-realtime/src/IVSRealTimeClient.ts +++ b/clients/client-ivs-realtime/src/IVSRealTimeClient.ts @@ -84,6 +84,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -275,6 +281,7 @@ export interface IVSRealTimeClientConfig extends IVSRealTimeClientConfigType {} */ export type IVSRealTimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -437,8 +444,9 @@ export class IVSRealTimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ivs-realtime/src/clientConfiguration.ts b/clients/client-ivs-realtime/src/clientConfiguration.ts new file mode 100644 index 000000000000..4c8589ed6040 --- /dev/null +++ b/clients/client-ivs-realtime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IVSRealTimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ivs-realtime/src/runtimeConfig.shared.ts b/clients/client-ivs-realtime/src/runtimeConfig.shared.ts index 869c72d7d3f1..3847b6a1fd1f 100644 --- a/clients/client-ivs-realtime/src/runtimeConfig.shared.ts +++ b/clients/client-ivs-realtime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IVSRealTimeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "IVS RealTime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ivs-realtime/src/runtimeExtensions.ts b/clients/client-ivs-realtime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..544fd38ece2e --- /dev/null +++ b/clients/client-ivs-realtime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IVSRealTimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IVSRealTimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IVSRealTimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ivs/src/IvsClient.ts b/clients/client-ivs/src/IvsClient.ts index c94a29b9b14f..4564e0133983 100644 --- a/clients/client-ivs/src/IvsClient.ts +++ b/clients/client-ivs/src/IvsClient.ts @@ -117,6 +117,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface IvsClientConfig extends IvsClientConfigType {} */ export type IvsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -714,8 +721,9 @@ export class IvsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ivs/src/clientConfiguration.ts b/clients/client-ivs/src/clientConfiguration.ts new file mode 100644 index 000000000000..03dbc2e8db82 --- /dev/null +++ b/clients/client-ivs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IvsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ivs/src/runtimeConfig.shared.ts b/clients/client-ivs/src/runtimeConfig.shared.ts index 07e494b07bc1..225dbb0b79ec 100644 --- a/clients/client-ivs/src/runtimeConfig.shared.ts +++ b/clients/client-ivs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IvsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ivs", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ivs/src/runtimeExtensions.ts b/clients/client-ivs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f1be1fdcf6d7 --- /dev/null +++ b/clients/client-ivs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IvsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IvsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IvsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ivschat/src/IvschatClient.ts b/clients/client-ivschat/src/IvschatClient.ts index 2e5234eb4f78..3a84b6c39285 100644 --- a/clients/client-ivschat/src/IvschatClient.ts +++ b/clients/client-ivschat/src/IvschatClient.ts @@ -92,6 +92,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface IvschatClientConfig extends IvschatClientConfigType {} */ export type IvschatClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -543,8 +550,9 @@ export class IvschatClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ivschat/src/clientConfiguration.ts b/clients/client-ivschat/src/clientConfiguration.ts new file mode 100644 index 000000000000..a94752581393 --- /dev/null +++ b/clients/client-ivschat/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface IvschatClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ivschat/src/runtimeConfig.shared.ts b/clients/client-ivschat/src/runtimeConfig.shared.ts index e0fae22011fa..47cf8ace3702 100644 --- a/clients/client-ivschat/src/runtimeConfig.shared.ts +++ b/clients/client-ivschat/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: IvschatClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ivschat", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ivschat/src/runtimeExtensions.ts b/clients/client-ivschat/src/runtimeExtensions.ts new file mode 100644 index 000000000000..64223a4b4f9d --- /dev/null +++ b/clients/client-ivschat/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { IvschatClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: IvschatClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: IvschatClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kafka/src/KafkaClient.ts b/clients/client-kafka/src/KafkaClient.ts index d5f1f76d598e..5874b0f6b4da 100644 --- a/clients/client-kafka/src/KafkaClient.ts +++ b/clients/client-kafka/src/KafkaClient.ts @@ -176,6 +176,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -401,6 +402,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -431,6 +437,7 @@ export interface KafkaClientConfig extends KafkaClientConfigType {} */ export type KafkaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -469,8 +476,9 @@ export class KafkaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kafka/src/clientConfiguration.ts b/clients/client-kafka/src/clientConfiguration.ts new file mode 100644 index 000000000000..ac3bd853a16a --- /dev/null +++ b/clients/client-kafka/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KafkaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kafka/src/runtimeConfig.shared.ts b/clients/client-kafka/src/runtimeConfig.shared.ts index 72b4de23eef7..7115b6deb1e9 100644 --- a/clients/client-kafka/src/runtimeConfig.shared.ts +++ b/clients/client-kafka/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KafkaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kafka", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kafka/src/runtimeExtensions.ts b/clients/client-kafka/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5dc433a6e56d --- /dev/null +++ b/clients/client-kafka/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KafkaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KafkaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KafkaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kafkaconnect/src/KafkaConnectClient.ts b/clients/client-kafkaconnect/src/KafkaConnectClient.ts index dd20f41e4a1a..7cc0fa0f2bc3 100644 --- a/clients/client-kafkaconnect/src/KafkaConnectClient.ts +++ b/clients/client-kafkaconnect/src/KafkaConnectClient.ts @@ -81,6 +81,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -236,6 +237,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -266,6 +272,7 @@ export interface KafkaConnectClientConfig extends KafkaConnectClientConfigType { */ export type KafkaConnectClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -304,8 +311,9 @@ export class KafkaConnectClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kafkaconnect/src/clientConfiguration.ts b/clients/client-kafkaconnect/src/clientConfiguration.ts new file mode 100644 index 000000000000..5d927b7586d1 --- /dev/null +++ b/clients/client-kafkaconnect/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KafkaConnectClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kafkaconnect/src/runtimeConfig.shared.ts b/clients/client-kafkaconnect/src/runtimeConfig.shared.ts index 75eabf55b23d..0bbe9efbefa6 100644 --- a/clients/client-kafkaconnect/src/runtimeConfig.shared.ts +++ b/clients/client-kafkaconnect/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KafkaConnectClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "KafkaConnect", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kafkaconnect/src/runtimeExtensions.ts b/clients/client-kafkaconnect/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b7bec63ebdc9 --- /dev/null +++ b/clients/client-kafkaconnect/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KafkaConnectClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KafkaConnectClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KafkaConnectClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kendra-ranking/src/KendraRankingClient.ts b/clients/client-kendra-ranking/src/KendraRankingClient.ts index f74373484589..e17a62bb0118 100644 --- a/clients/client-kendra-ranking/src/KendraRankingClient.ts +++ b/clients/client-kendra-ranking/src/KendraRankingClient.ts @@ -84,6 +84,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -233,6 +234,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -263,6 +269,7 @@ export interface KendraRankingClientConfig extends KendraRankingClientConfigType */ export type KendraRankingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -303,8 +310,9 @@ export class KendraRankingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kendra-ranking/src/clientConfiguration.ts b/clients/client-kendra-ranking/src/clientConfiguration.ts new file mode 100644 index 000000000000..1d92241115f0 --- /dev/null +++ b/clients/client-kendra-ranking/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KendraRankingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kendra-ranking/src/runtimeConfig.shared.ts b/clients/client-kendra-ranking/src/runtimeConfig.shared.ts index 1e80c8753f24..4bbedb501b93 100644 --- a/clients/client-kendra-ranking/src/runtimeConfig.shared.ts +++ b/clients/client-kendra-ranking/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KendraRankingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kendra Ranking", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kendra-ranking/src/runtimeExtensions.ts b/clients/client-kendra-ranking/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1f1630e0000c --- /dev/null +++ b/clients/client-kendra-ranking/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KendraRankingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KendraRankingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KendraRankingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kendra/src/KendraClient.ts b/clients/client-kendra/src/KendraClient.ts index e5bce0d3e751..10fc82c0a743 100644 --- a/clients/client-kendra/src/KendraClient.ts +++ b/clients/client-kendra/src/KendraClient.ts @@ -225,6 +225,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -488,6 +489,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -518,6 +524,7 @@ export interface KendraClientConfig extends KendraClientConfigType {} */ export type KendraClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -556,8 +563,9 @@ export class KendraClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kendra/src/clientConfiguration.ts b/clients/client-kendra/src/clientConfiguration.ts new file mode 100644 index 000000000000..17fa48ef408a --- /dev/null +++ b/clients/client-kendra/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KendraClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kendra/src/runtimeConfig.shared.ts b/clients/client-kendra/src/runtimeConfig.shared.ts index 4f7d23f86e78..e58905d33ab1 100644 --- a/clients/client-kendra/src/runtimeConfig.shared.ts +++ b/clients/client-kendra/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KendraClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "kendra", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kendra/src/runtimeExtensions.ts b/clients/client-kendra/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1586c32ac0c2 --- /dev/null +++ b/clients/client-kendra/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KendraClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KendraClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KendraClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-keyspaces/src/KeyspacesClient.ts b/clients/client-keyspaces/src/KeyspacesClient.ts index c09ad53ea3a6..096d5fff5473 100644 --- a/clients/client-keyspaces/src/KeyspacesClient.ts +++ b/clients/client-keyspaces/src/KeyspacesClient.ts @@ -73,6 +73,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface KeyspacesClientConfig extends KeyspacesClientConfigType {} */ export type KeyspacesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -311,8 +318,9 @@ export class KeyspacesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-keyspaces/src/clientConfiguration.ts b/clients/client-keyspaces/src/clientConfiguration.ts new file mode 100644 index 000000000000..0c0b9991d40c --- /dev/null +++ b/clients/client-keyspaces/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KeyspacesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-keyspaces/src/runtimeConfig.shared.ts b/clients/client-keyspaces/src/runtimeConfig.shared.ts index 9ad90c497bcf..8ff5faefce3b 100644 --- a/clients/client-keyspaces/src/runtimeConfig.shared.ts +++ b/clients/client-keyspaces/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KeyspacesClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Keyspaces", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-keyspaces/src/runtimeExtensions.ts b/clients/client-keyspaces/src/runtimeExtensions.ts new file mode 100644 index 000000000000..08f51f5fb055 --- /dev/null +++ b/clients/client-keyspaces/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KeyspacesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KeyspacesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KeyspacesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-analytics-v2/src/KinesisAnalyticsV2Client.ts b/clients/client-kinesis-analytics-v2/src/KinesisAnalyticsV2Client.ts index fcda24acab05..73a9eea0873b 100644 --- a/clients/client-kinesis-analytics-v2/src/KinesisAnalyticsV2Client.ts +++ b/clients/client-kinesis-analytics-v2/src/KinesisAnalyticsV2Client.ts @@ -157,6 +157,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -350,6 +351,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -380,6 +386,7 @@ export interface KinesisAnalyticsV2ClientConfig extends KinesisAnalyticsV2Client */ export type KinesisAnalyticsV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -420,8 +427,9 @@ export class KinesisAnalyticsV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-analytics-v2/src/clientConfiguration.ts b/clients/client-kinesis-analytics-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..fe30ea490203 --- /dev/null +++ b/clients/client-kinesis-analytics-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisAnalyticsV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-analytics-v2/src/runtimeConfig.shared.ts b/clients/client-kinesis-analytics-v2/src/runtimeConfig.shared.ts index 2219e536553c..1d74b5b1c476 100644 --- a/clients/client-kinesis-analytics-v2/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-analytics-v2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisAnalyticsV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis Analytics V2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis-analytics-v2/src/runtimeExtensions.ts b/clients/client-kinesis-analytics-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..abbeb77c7121 --- /dev/null +++ b/clients/client-kinesis-analytics-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisAnalyticsV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisAnalyticsV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisAnalyticsV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-analytics/src/KinesisAnalyticsClient.ts b/clients/client-kinesis-analytics/src/KinesisAnalyticsClient.ts index 9314794f82e1..f7e0197716c1 100644 --- a/clients/client-kinesis-analytics/src/KinesisAnalyticsClient.ts +++ b/clients/client-kinesis-analytics/src/KinesisAnalyticsClient.ts @@ -113,6 +113,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -284,6 +285,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -314,6 +320,7 @@ export interface KinesisAnalyticsClientConfig extends KinesisAnalyticsClientConf */ export type KinesisAnalyticsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -361,8 +368,9 @@ export class KinesisAnalyticsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-analytics/src/clientConfiguration.ts b/clients/client-kinesis-analytics/src/clientConfiguration.ts new file mode 100644 index 000000000000..775e32f13352 --- /dev/null +++ b/clients/client-kinesis-analytics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisAnalyticsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-analytics/src/runtimeConfig.shared.ts b/clients/client-kinesis-analytics/src/runtimeConfig.shared.ts index 5c9b1ff50fe6..25d883bfd6b7 100644 --- a/clients/client-kinesis-analytics/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-analytics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisAnalyticsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis Analytics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis-analytics/src/runtimeExtensions.ts b/clients/client-kinesis-analytics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f1c23c208f72 --- /dev/null +++ b/clients/client-kinesis-analytics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisAnalyticsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisAnalyticsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisAnalyticsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-video-archived-media/src/KinesisVideoArchivedMediaClient.ts b/clients/client-kinesis-video-archived-media/src/KinesisVideoArchivedMediaClient.ts index fbe1460abf6f..f16687854842 100644 --- a/clients/client-kinesis-video-archived-media/src/KinesisVideoArchivedMediaClient.ts +++ b/clients/client-kinesis-video-archived-media/src/KinesisVideoArchivedMediaClient.ts @@ -73,6 +73,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -216,6 +217,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -252,6 +258,7 @@ export interface KinesisVideoArchivedMediaClientConfig extends KinesisVideoArchi */ export type KinesisVideoArchivedMediaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -291,8 +298,9 @@ export class KinesisVideoArchivedMediaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-video-archived-media/src/clientConfiguration.ts b/clients/client-kinesis-video-archived-media/src/clientConfiguration.ts new file mode 100644 index 000000000000..0ebd2f8d971e --- /dev/null +++ b/clients/client-kinesis-video-archived-media/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisVideoArchivedMediaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-video-archived-media/src/runtimeConfig.shared.ts b/clients/client-kinesis-video-archived-media/src/runtimeConfig.shared.ts index 055430ce1b03..708f089dcdcf 100644 --- a/clients/client-kinesis-video-archived-media/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-video-archived-media/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: KinesisVideoArchivedMediaClientConfig) base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Kinesis Video Archived Media", diff --git a/clients/client-kinesis-video-archived-media/src/runtimeExtensions.ts b/clients/client-kinesis-video-archived-media/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a1bf24a4e4d9 --- /dev/null +++ b/clients/client-kinesis-video-archived-media/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisVideoArchivedMediaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisVideoArchivedMediaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisVideoArchivedMediaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-video-media/src/KinesisVideoMediaClient.ts b/clients/client-kinesis-video-media/src/KinesisVideoMediaClient.ts index 1574a8435267..9c2b53c7e582 100644 --- a/clients/client-kinesis-video-media/src/KinesisVideoMediaClient.ts +++ b/clients/client-kinesis-video-media/src/KinesisVideoMediaClient.ts @@ -59,6 +59,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -190,6 +191,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -226,6 +232,7 @@ export interface KinesisVideoMediaClientConfig extends KinesisVideoMediaClientCo */ export type KinesisVideoMediaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -264,8 +271,9 @@ export class KinesisVideoMediaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-video-media/src/clientConfiguration.ts b/clients/client-kinesis-video-media/src/clientConfiguration.ts new file mode 100644 index 000000000000..3f208320a3fc --- /dev/null +++ b/clients/client-kinesis-video-media/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisVideoMediaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-video-media/src/runtimeConfig.shared.ts b/clients/client-kinesis-video-media/src/runtimeConfig.shared.ts index 0e78616a3321..e1298e8af06f 100644 --- a/clients/client-kinesis-video-media/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-video-media/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: KinesisVideoMediaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Kinesis Video Media", diff --git a/clients/client-kinesis-video-media/src/runtimeExtensions.ts b/clients/client-kinesis-video-media/src/runtimeExtensions.ts new file mode 100644 index 000000000000..49044014f2b1 --- /dev/null +++ b/clients/client-kinesis-video-media/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisVideoMediaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisVideoMediaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisVideoMediaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-video-signaling/src/KinesisVideoSignalingClient.ts b/clients/client-kinesis-video-signaling/src/KinesisVideoSignalingClient.ts index cfdf40d14972..7fa2b2f257f3 100644 --- a/clients/client-kinesis-video-signaling/src/KinesisVideoSignalingClient.ts +++ b/clients/client-kinesis-video-signaling/src/KinesisVideoSignalingClient.ts @@ -68,6 +68,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -199,6 +200,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -229,6 +235,7 @@ export interface KinesisVideoSignalingClientConfig extends KinesisVideoSignaling */ export type KinesisVideoSignalingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -269,8 +276,9 @@ export class KinesisVideoSignalingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-video-signaling/src/clientConfiguration.ts b/clients/client-kinesis-video-signaling/src/clientConfiguration.ts new file mode 100644 index 000000000000..811fd780fd77 --- /dev/null +++ b/clients/client-kinesis-video-signaling/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisVideoSignalingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-video-signaling/src/runtimeConfig.shared.ts b/clients/client-kinesis-video-signaling/src/runtimeConfig.shared.ts index 01f044b77c3b..614f7403794f 100644 --- a/clients/client-kinesis-video-signaling/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-video-signaling/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisVideoSignalingClientConfig) => ( base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis Video Signaling", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis-video-signaling/src/runtimeExtensions.ts b/clients/client-kinesis-video-signaling/src/runtimeExtensions.ts new file mode 100644 index 000000000000..41636115371c --- /dev/null +++ b/clients/client-kinesis-video-signaling/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisVideoSignalingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisVideoSignalingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisVideoSignalingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-video-webrtc-storage/src/KinesisVideoWebRTCStorageClient.ts b/clients/client-kinesis-video-webrtc-storage/src/KinesisVideoWebRTCStorageClient.ts index afaddcdca404..4b6ae03b9d4f 100644 --- a/clients/client-kinesis-video-webrtc-storage/src/KinesisVideoWebRTCStorageClient.ts +++ b/clients/client-kinesis-video-webrtc-storage/src/KinesisVideoWebRTCStorageClient.ts @@ -58,6 +58,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -189,6 +190,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -219,6 +225,7 @@ export interface KinesisVideoWebRTCStorageClientConfig extends KinesisVideoWebRT */ export type KinesisVideoWebRTCStorageClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -259,8 +266,9 @@ export class KinesisVideoWebRTCStorageClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-video-webrtc-storage/src/clientConfiguration.ts b/clients/client-kinesis-video-webrtc-storage/src/clientConfiguration.ts new file mode 100644 index 000000000000..a715750c3468 --- /dev/null +++ b/clients/client-kinesis-video-webrtc-storage/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisVideoWebRTCStorageClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-video-webrtc-storage/src/runtimeConfig.shared.ts b/clients/client-kinesis-video-webrtc-storage/src/runtimeConfig.shared.ts index cc21bba411ae..330df4360a1f 100644 --- a/clients/client-kinesis-video-webrtc-storage/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-video-webrtc-storage/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisVideoWebRTCStorageClientConfig) base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis Video WebRTC Storage", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis-video-webrtc-storage/src/runtimeExtensions.ts b/clients/client-kinesis-video-webrtc-storage/src/runtimeExtensions.ts new file mode 100644 index 000000000000..20ae6c967d99 --- /dev/null +++ b/clients/client-kinesis-video-webrtc-storage/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisVideoWebRTCStorageClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisVideoWebRTCStorageClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisVideoWebRTCStorageClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis-video/src/KinesisVideoClient.ts b/clients/client-kinesis-video/src/KinesisVideoClient.ts index 0dc6fe1eb8b0..ef4bd0969fc3 100644 --- a/clients/client-kinesis-video/src/KinesisVideoClient.ts +++ b/clients/client-kinesis-video/src/KinesisVideoClient.ts @@ -144,6 +144,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -335,6 +336,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -365,6 +371,7 @@ export interface KinesisVideoClientConfig extends KinesisVideoClientConfigType { */ export type KinesisVideoClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -403,8 +410,9 @@ export class KinesisVideoClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis-video/src/clientConfiguration.ts b/clients/client-kinesis-video/src/clientConfiguration.ts new file mode 100644 index 000000000000..909565d32278 --- /dev/null +++ b/clients/client-kinesis-video/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisVideoClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis-video/src/runtimeConfig.shared.ts b/clients/client-kinesis-video/src/runtimeConfig.shared.ts index cdb712628622..f1536a711d0b 100644 --- a/clients/client-kinesis-video/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis-video/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisVideoClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis Video", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis-video/src/runtimeExtensions.ts b/clients/client-kinesis-video/src/runtimeExtensions.ts new file mode 100644 index 000000000000..841dcbd0eabb --- /dev/null +++ b/clients/client-kinesis-video/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisVideoClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisVideoClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisVideoClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kinesis/src/KinesisClient.ts b/clients/client-kinesis/src/KinesisClient.ts index 52c296ee16bb..60052bc4cb7b 100644 --- a/clients/client-kinesis/src/KinesisClient.ts +++ b/clients/client-kinesis/src/KinesisClient.ts @@ -128,6 +128,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -317,6 +318,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -353,6 +359,7 @@ export interface KinesisClientConfig extends KinesisClientConfigType {} */ export type KinesisClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -395,8 +402,9 @@ export class KinesisClient extends __Client< const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); const _config_8 = resolveEventStreamSerdeConfig(_config_7); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kinesis/src/clientConfiguration.ts b/clients/client-kinesis/src/clientConfiguration.ts new file mode 100644 index 000000000000..16d65945e9d5 --- /dev/null +++ b/clients/client-kinesis/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KinesisClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kinesis/src/runtimeConfig.shared.ts b/clients/client-kinesis/src/runtimeConfig.shared.ts index c706e2d89c0f..62def5f50685 100644 --- a/clients/client-kinesis/src/runtimeConfig.shared.ts +++ b/clients/client-kinesis/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KinesisClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Kinesis", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kinesis/src/runtimeExtensions.ts b/clients/client-kinesis/src/runtimeExtensions.ts new file mode 100644 index 000000000000..982ceac74476 --- /dev/null +++ b/clients/client-kinesis/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KinesisClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KinesisClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KinesisClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-kms/src/KMSClient.ts b/clients/client-kms/src/KMSClient.ts index fa17901a2cd0..3dcdef5a04cc 100644 --- a/clients/client-kms/src/KMSClient.ts +++ b/clients/client-kms/src/KMSClient.ts @@ -155,6 +155,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -386,6 +387,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -416,6 +422,7 @@ export interface KMSClientConfig extends KMSClientConfigType {} */ export type KMSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -548,8 +555,9 @@ export class KMSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-kms/src/clientConfiguration.ts b/clients/client-kms/src/clientConfiguration.ts new file mode 100644 index 000000000000..eff5b8cd5296 --- /dev/null +++ b/clients/client-kms/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface KMSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-kms/src/runtimeConfig.shared.ts b/clients/client-kms/src/runtimeConfig.shared.ts index e9ce0124a435..f3035175e00b 100644 --- a/clients/client-kms/src/runtimeConfig.shared.ts +++ b/clients/client-kms/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: KMSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "KMS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-kms/src/runtimeExtensions.ts b/clients/client-kms/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0555ffe94d10 --- /dev/null +++ b/clients/client-kms/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { KMSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: KMSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: KMSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lakeformation/src/LakeFormationClient.ts b/clients/client-lakeformation/src/LakeFormationClient.ts index c7c7e75dc50c..8b263ff41c48 100644 --- a/clients/client-lakeformation/src/LakeFormationClient.ts +++ b/clients/client-lakeformation/src/LakeFormationClient.ts @@ -165,6 +165,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -390,6 +391,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -426,6 +432,7 @@ export interface LakeFormationClientConfig extends LakeFormationClientConfigType */ export type LakeFormationClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -465,8 +472,9 @@ export class LakeFormationClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lakeformation/src/clientConfiguration.ts b/clients/client-lakeformation/src/clientConfiguration.ts new file mode 100644 index 000000000000..2248c894e3b2 --- /dev/null +++ b/clients/client-lakeformation/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LakeFormationClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lakeformation/src/runtimeConfig.shared.ts b/clients/client-lakeformation/src/runtimeConfig.shared.ts index ac772640e4e5..f7358f65e438 100644 --- a/clients/client-lakeformation/src/runtimeConfig.shared.ts +++ b/clients/client-lakeformation/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: LakeFormationClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "LakeFormation", diff --git a/clients/client-lakeformation/src/runtimeExtensions.ts b/clients/client-lakeformation/src/runtimeExtensions.ts new file mode 100644 index 000000000000..bc569b6b70e7 --- /dev/null +++ b/clients/client-lakeformation/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LakeFormationClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LakeFormationClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LakeFormationClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lambda/src/LambdaClient.ts b/clients/client-lambda/src/LambdaClient.ts index 3e003885f34a..ff13c66e47f4 100644 --- a/clients/client-lambda/src/LambdaClient.ts +++ b/clients/client-lambda/src/LambdaClient.ts @@ -255,6 +255,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -518,6 +519,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -554,6 +560,7 @@ export interface LambdaClientConfig extends LambdaClientConfigType {} */ export type LambdaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -658,8 +665,9 @@ export class LambdaClient extends __Client< const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); const _config_8 = resolveEventStreamSerdeConfig(_config_7); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lambda/src/clientConfiguration.ts b/clients/client-lambda/src/clientConfiguration.ts new file mode 100644 index 000000000000..a02ffb4d08c8 --- /dev/null +++ b/clients/client-lambda/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LambdaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lambda/src/runtimeConfig.shared.ts b/clients/client-lambda/src/runtimeConfig.shared.ts index dd2c67aa73a2..690b6ad3c70a 100644 --- a/clients/client-lambda/src/runtimeConfig.shared.ts +++ b/clients/client-lambda/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LambdaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Lambda", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lambda/src/runtimeExtensions.ts b/clients/client-lambda/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ec5ae1a9bdb9 --- /dev/null +++ b/clients/client-lambda/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LambdaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LambdaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LambdaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lex-model-building-service/src/LexModelBuildingServiceClient.ts b/clients/client-lex-model-building-service/src/LexModelBuildingServiceClient.ts index 62666fddf1ca..ee0fdde961d6 100644 --- a/clients/client-lex-model-building-service/src/LexModelBuildingServiceClient.ts +++ b/clients/client-lex-model-building-service/src/LexModelBuildingServiceClient.ts @@ -129,6 +129,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -344,6 +345,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -374,6 +380,7 @@ export interface LexModelBuildingServiceClientConfig extends LexModelBuildingSer */ export type LexModelBuildingServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -415,8 +422,9 @@ export class LexModelBuildingServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lex-model-building-service/src/clientConfiguration.ts b/clients/client-lex-model-building-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..1fd4083ea50f --- /dev/null +++ b/clients/client-lex-model-building-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LexModelBuildingServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lex-model-building-service/src/runtimeConfig.shared.ts b/clients/client-lex-model-building-service/src/runtimeConfig.shared.ts index ba97265b46a9..2e06b9323a40 100644 --- a/clients/client-lex-model-building-service/src/runtimeConfig.shared.ts +++ b/clients/client-lex-model-building-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LexModelBuildingServiceClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Lex Model Building Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lex-model-building-service/src/runtimeExtensions.ts b/clients/client-lex-model-building-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..98a8b250e05b --- /dev/null +++ b/clients/client-lex-model-building-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LexModelBuildingServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LexModelBuildingServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LexModelBuildingServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lex-models-v2/src/LexModelsV2Client.ts b/clients/client-lex-models-v2/src/LexModelsV2Client.ts index 234e27982509..537583f52097 100644 --- a/clients/client-lex-models-v2/src/LexModelsV2Client.ts +++ b/clients/client-lex-models-v2/src/LexModelsV2Client.ts @@ -248,6 +248,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -563,6 +564,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -593,6 +599,7 @@ export interface LexModelsV2ClientConfig extends LexModelsV2ClientConfigType {} */ export type LexModelsV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -631,8 +638,9 @@ export class LexModelsV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lex-models-v2/src/clientConfiguration.ts b/clients/client-lex-models-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..95e42b09995c --- /dev/null +++ b/clients/client-lex-models-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LexModelsV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lex-models-v2/src/runtimeConfig.shared.ts b/clients/client-lex-models-v2/src/runtimeConfig.shared.ts index dea000b74cda..4cf2cd471e4c 100644 --- a/clients/client-lex-models-v2/src/runtimeConfig.shared.ts +++ b/clients/client-lex-models-v2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LexModelsV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Lex Models V2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lex-models-v2/src/runtimeExtensions.ts b/clients/client-lex-models-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c4c8bb81417b --- /dev/null +++ b/clients/client-lex-models-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LexModelsV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LexModelsV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LexModelsV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lex-runtime-service/src/LexRuntimeServiceClient.ts b/clients/client-lex-runtime-service/src/LexRuntimeServiceClient.ts index b8c4ca4b0eb5..f868f61db4eb 100644 --- a/clients/client-lex-runtime-service/src/LexRuntimeServiceClient.ts +++ b/clients/client-lex-runtime-service/src/LexRuntimeServiceClient.ts @@ -63,6 +63,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -204,6 +205,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -240,6 +246,7 @@ export interface LexRuntimeServiceClientConfig extends LexRuntimeServiceClientCo */ export type LexRuntimeServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -289,8 +296,9 @@ export class LexRuntimeServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lex-runtime-service/src/clientConfiguration.ts b/clients/client-lex-runtime-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..8de26b8dfd05 --- /dev/null +++ b/clients/client-lex-runtime-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LexRuntimeServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lex-runtime-service/src/runtimeConfig.shared.ts b/clients/client-lex-runtime-service/src/runtimeConfig.shared.ts index 9672b03ee7f5..9e47cc2a11ff 100644 --- a/clients/client-lex-runtime-service/src/runtimeConfig.shared.ts +++ b/clients/client-lex-runtime-service/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: LexRuntimeServiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Lex Runtime Service", diff --git a/clients/client-lex-runtime-service/src/runtimeExtensions.ts b/clients/client-lex-runtime-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..738fa0c8f9b0 --- /dev/null +++ b/clients/client-lex-runtime-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LexRuntimeServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LexRuntimeServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LexRuntimeServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lex-runtime-v2/src/LexRuntimeV2Client.ts b/clients/client-lex-runtime-v2/src/LexRuntimeV2Client.ts index 2d1fbfa740ee..879b08883480 100644 --- a/clients/client-lex-runtime-v2/src/LexRuntimeV2Client.ts +++ b/clients/client-lex-runtime-v2/src/LexRuntimeV2Client.ts @@ -78,6 +78,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -227,6 +228,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -270,6 +276,7 @@ export interface LexRuntimeV2ClientConfig extends LexRuntimeV2ClientConfigType { */ export type LexRuntimeV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -312,8 +319,9 @@ export class LexRuntimeV2Client extends __Client< const _config_7 = resolveEventStreamConfig(_config_6); const _config_8 = resolveUserAgentConfig(_config_7); const _config_9 = resolveEventStreamSerdeConfig(_config_8); - super(_config_9); - this.config = _config_9; + const _config_10 = resolveRuntimeExtensions(_config_9, configuration?.extensions || []); + super(_config_10); + this.config = _config_10; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lex-runtime-v2/src/clientConfiguration.ts b/clients/client-lex-runtime-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..b6a0075f09e2 --- /dev/null +++ b/clients/client-lex-runtime-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LexRuntimeV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lex-runtime-v2/src/runtimeConfig.shared.ts b/clients/client-lex-runtime-v2/src/runtimeConfig.shared.ts index 46b6b482be25..71eea2dd045e 100644 --- a/clients/client-lex-runtime-v2/src/runtimeConfig.shared.ts +++ b/clients/client-lex-runtime-v2/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: LexRuntimeV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Lex Runtime V2", diff --git a/clients/client-lex-runtime-v2/src/runtimeExtensions.ts b/clients/client-lex-runtime-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7c1bcff36171 --- /dev/null +++ b/clients/client-lex-runtime-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LexRuntimeV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LexRuntimeV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LexRuntimeV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-license-manager-linux-subscriptions/src/LicenseManagerLinuxSubscriptionsClient.ts b/clients/client-license-manager-linux-subscriptions/src/LicenseManagerLinuxSubscriptionsClient.ts index f67d657df96c..b7cb8913d77f 100644 --- a/clients/client-license-manager-linux-subscriptions/src/LicenseManagerLinuxSubscriptionsClient.ts +++ b/clients/client-license-manager-linux-subscriptions/src/LicenseManagerLinuxSubscriptionsClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -209,6 +210,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -241,6 +247,7 @@ export interface LicenseManagerLinuxSubscriptionsClientConfig export type LicenseManagerLinuxSubscriptionsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -281,8 +288,9 @@ export class LicenseManagerLinuxSubscriptionsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-license-manager-linux-subscriptions/src/clientConfiguration.ts b/clients/client-license-manager-linux-subscriptions/src/clientConfiguration.ts new file mode 100644 index 000000000000..a9960730a34f --- /dev/null +++ b/clients/client-license-manager-linux-subscriptions/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LicenseManagerLinuxSubscriptionsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-license-manager-linux-subscriptions/src/runtimeConfig.shared.ts b/clients/client-license-manager-linux-subscriptions/src/runtimeConfig.shared.ts index 3bd15b820f8a..32fa7a0a2da6 100644 --- a/clients/client-license-manager-linux-subscriptions/src/runtimeConfig.shared.ts +++ b/clients/client-license-manager-linux-subscriptions/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LicenseManagerLinuxSubscriptionsClientC base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "License Manager Linux Subscriptions", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-license-manager-linux-subscriptions/src/runtimeExtensions.ts b/clients/client-license-manager-linux-subscriptions/src/runtimeExtensions.ts new file mode 100644 index 000000000000..49e6613656ac --- /dev/null +++ b/clients/client-license-manager-linux-subscriptions/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LicenseManagerLinuxSubscriptionsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LicenseManagerLinuxSubscriptionsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LicenseManagerLinuxSubscriptionsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-license-manager-user-subscriptions/src/LicenseManagerUserSubscriptionsClient.ts b/clients/client-license-manager-user-subscriptions/src/LicenseManagerUserSubscriptionsClient.ts index c22db2c1fda3..385968320f91 100644 --- a/clients/client-license-manager-user-subscriptions/src/LicenseManagerUserSubscriptionsClient.ts +++ b/clients/client-license-manager-user-subscriptions/src/LicenseManagerUserSubscriptionsClient.ts @@ -92,6 +92,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -245,6 +246,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -276,6 +282,7 @@ export interface LicenseManagerUserSubscriptionsClientConfig extends LicenseMana export type LicenseManagerUserSubscriptionsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -316,8 +323,9 @@ export class LicenseManagerUserSubscriptionsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-license-manager-user-subscriptions/src/clientConfiguration.ts b/clients/client-license-manager-user-subscriptions/src/clientConfiguration.ts new file mode 100644 index 000000000000..e122da0c4f5a --- /dev/null +++ b/clients/client-license-manager-user-subscriptions/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LicenseManagerUserSubscriptionsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-license-manager-user-subscriptions/src/runtimeConfig.shared.ts b/clients/client-license-manager-user-subscriptions/src/runtimeConfig.shared.ts index 8d65c588c49d..95f7d3601308 100644 --- a/clients/client-license-manager-user-subscriptions/src/runtimeConfig.shared.ts +++ b/clients/client-license-manager-user-subscriptions/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LicenseManagerUserSubscriptionsClientCo base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "License Manager User Subscriptions", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-license-manager-user-subscriptions/src/runtimeExtensions.ts b/clients/client-license-manager-user-subscriptions/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a381f4fae6a1 --- /dev/null +++ b/clients/client-license-manager-user-subscriptions/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LicenseManagerUserSubscriptionsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LicenseManagerUserSubscriptionsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LicenseManagerUserSubscriptionsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-license-manager/src/LicenseManagerClient.ts b/clients/client-license-manager/src/LicenseManagerClient.ts index 8a4397fa4041..0d17c5e287f9 100644 --- a/clients/client-license-manager/src/LicenseManagerClient.ts +++ b/clients/client-license-manager/src/LicenseManagerClient.ts @@ -194,6 +194,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -425,6 +426,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -455,6 +461,7 @@ export interface LicenseManagerClientConfig extends LicenseManagerClientConfigTy */ export type LicenseManagerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -494,8 +501,9 @@ export class LicenseManagerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-license-manager/src/clientConfiguration.ts b/clients/client-license-manager/src/clientConfiguration.ts new file mode 100644 index 000000000000..a8e396a4481d --- /dev/null +++ b/clients/client-license-manager/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LicenseManagerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-license-manager/src/runtimeConfig.shared.ts b/clients/client-license-manager/src/runtimeConfig.shared.ts index 07d0e06de17f..4d540fd5a006 100644 --- a/clients/client-license-manager/src/runtimeConfig.shared.ts +++ b/clients/client-license-manager/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LicenseManagerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "License Manager", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-license-manager/src/runtimeExtensions.ts b/clients/client-license-manager/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0521cd74fdeb --- /dev/null +++ b/clients/client-license-manager/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LicenseManagerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LicenseManagerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LicenseManagerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lightsail/src/LightsailClient.ts b/clients/client-lightsail/src/LightsailClient.ts index 95ea7c6cdadd..21aaf2b4c003 100644 --- a/clients/client-lightsail/src/LightsailClient.ts +++ b/clients/client-lightsail/src/LightsailClient.ts @@ -450,6 +450,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -899,6 +900,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -929,6 +935,7 @@ export interface LightsailClientConfig extends LightsailClientConfigType {} */ export type LightsailClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -980,8 +987,9 @@ export class LightsailClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lightsail/src/clientConfiguration.ts b/clients/client-lightsail/src/clientConfiguration.ts new file mode 100644 index 000000000000..6f1df2ae7827 --- /dev/null +++ b/clients/client-lightsail/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LightsailClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lightsail/src/runtimeConfig.shared.ts b/clients/client-lightsail/src/runtimeConfig.shared.ts index a779d14c30cb..08d46a19181c 100644 --- a/clients/client-lightsail/src/runtimeConfig.shared.ts +++ b/clients/client-lightsail/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LightsailClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Lightsail", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lightsail/src/runtimeExtensions.ts b/clients/client-lightsail/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a2516218f2a0 --- /dev/null +++ b/clients/client-lightsail/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LightsailClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LightsailClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LightsailClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-location/src/LocationClient.ts b/clients/client-location/src/LocationClient.ts index cc8abdd0a467..f26ddbd7b59d 100644 --- a/clients/client-location/src/LocationClient.ts +++ b/clients/client-location/src/LocationClient.ts @@ -193,6 +193,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -440,6 +441,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -470,6 +476,7 @@ export interface LocationClientConfig extends LocationClientConfigType {} */ export type LocationClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -508,8 +515,9 @@ export class LocationClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-location/src/clientConfiguration.ts b/clients/client-location/src/clientConfiguration.ts new file mode 100644 index 000000000000..2f9e16b6d007 --- /dev/null +++ b/clients/client-location/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LocationClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-location/src/runtimeConfig.shared.ts b/clients/client-location/src/runtimeConfig.shared.ts index 72655fa16a11..63a4de4f036d 100644 --- a/clients/client-location/src/runtimeConfig.shared.ts +++ b/clients/client-location/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LocationClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Location", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-location/src/runtimeExtensions.ts b/clients/client-location/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c19e879b2ffd --- /dev/null +++ b/clients/client-location/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LocationClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LocationClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LocationClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lookoutequipment/src/LookoutEquipmentClient.ts b/clients/client-lookoutequipment/src/LookoutEquipmentClient.ts index d564439299d9..ef7e64f36cdf 100644 --- a/clients/client-lookoutequipment/src/LookoutEquipmentClient.ts +++ b/clients/client-lookoutequipment/src/LookoutEquipmentClient.ts @@ -152,6 +152,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -365,6 +366,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -395,6 +401,7 @@ export interface LookoutEquipmentClientConfig extends LookoutEquipmentClientConf */ export type LookoutEquipmentClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -434,8 +441,9 @@ export class LookoutEquipmentClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lookoutequipment/src/clientConfiguration.ts b/clients/client-lookoutequipment/src/clientConfiguration.ts new file mode 100644 index 000000000000..2a7c1f2a4a19 --- /dev/null +++ b/clients/client-lookoutequipment/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LookoutEquipmentClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lookoutequipment/src/runtimeConfig.shared.ts b/clients/client-lookoutequipment/src/runtimeConfig.shared.ts index 3297a2ddc96f..92902ebaee92 100644 --- a/clients/client-lookoutequipment/src/runtimeConfig.shared.ts +++ b/clients/client-lookoutequipment/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LookoutEquipmentClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "LookoutEquipment", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lookoutequipment/src/runtimeExtensions.ts b/clients/client-lookoutequipment/src/runtimeExtensions.ts new file mode 100644 index 000000000000..eb870d93020e --- /dev/null +++ b/clients/client-lookoutequipment/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LookoutEquipmentClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LookoutEquipmentClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LookoutEquipmentClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts b/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts index b603e3b8de20..89b3a18f447b 100644 --- a/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts +++ b/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts @@ -132,6 +132,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -323,6 +324,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -353,6 +359,7 @@ export interface LookoutMetricsClientConfig extends LookoutMetricsClientConfigTy */ export type LookoutMetricsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -393,8 +400,9 @@ export class LookoutMetricsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lookoutmetrics/src/clientConfiguration.ts b/clients/client-lookoutmetrics/src/clientConfiguration.ts new file mode 100644 index 000000000000..62c028a6d164 --- /dev/null +++ b/clients/client-lookoutmetrics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LookoutMetricsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lookoutmetrics/src/runtimeConfig.shared.ts b/clients/client-lookoutmetrics/src/runtimeConfig.shared.ts index de97ffa754bc..6d40c908c85f 100644 --- a/clients/client-lookoutmetrics/src/runtimeConfig.shared.ts +++ b/clients/client-lookoutmetrics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LookoutMetricsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "LookoutMetrics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lookoutmetrics/src/runtimeExtensions.ts b/clients/client-lookoutmetrics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8f143a33a6c1 --- /dev/null +++ b/clients/client-lookoutmetrics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LookoutMetricsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LookoutMetricsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LookoutMetricsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-lookoutvision/src/LookoutVisionClient.ts b/clients/client-lookoutvision/src/LookoutVisionClient.ts index e441c21e60f1..a082ab255d9f 100644 --- a/clients/client-lookoutvision/src/LookoutVisionClient.ts +++ b/clients/client-lookoutvision/src/LookoutVisionClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface LookoutVisionClientConfig extends LookoutVisionClientConfigType */ export type LookoutVisionClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -343,8 +350,9 @@ export class LookoutVisionClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-lookoutvision/src/clientConfiguration.ts b/clients/client-lookoutvision/src/clientConfiguration.ts new file mode 100644 index 000000000000..06f83528a28c --- /dev/null +++ b/clients/client-lookoutvision/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface LookoutVisionClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-lookoutvision/src/runtimeConfig.shared.ts b/clients/client-lookoutvision/src/runtimeConfig.shared.ts index 1701b260d41d..f219ab87ed70 100644 --- a/clients/client-lookoutvision/src/runtimeConfig.shared.ts +++ b/clients/client-lookoutvision/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: LookoutVisionClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "LookoutVision", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-lookoutvision/src/runtimeExtensions.ts b/clients/client-lookoutvision/src/runtimeExtensions.ts new file mode 100644 index 000000000000..cc77a36b2e6b --- /dev/null +++ b/clients/client-lookoutvision/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { LookoutVisionClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: LookoutVisionClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: LookoutVisionClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-m2/src/M2Client.ts b/clients/client-m2/src/M2Client.ts index f27ebffd0809..c708833be436 100644 --- a/clients/client-m2/src/M2Client.ts +++ b/clients/client-m2/src/M2Client.ts @@ -126,6 +126,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -323,6 +324,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -353,6 +359,7 @@ export interface M2ClientConfig extends M2ClientConfigType {} */ export type M2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -395,8 +402,9 @@ export class M2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-m2/src/clientConfiguration.ts b/clients/client-m2/src/clientConfiguration.ts new file mode 100644 index 000000000000..c8310641b48b --- /dev/null +++ b/clients/client-m2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface M2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-m2/src/runtimeConfig.shared.ts b/clients/client-m2/src/runtimeConfig.shared.ts index e002f4b382f5..b8edbe22147c 100644 --- a/clients/client-m2/src/runtimeConfig.shared.ts +++ b/clients/client-m2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: M2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "m2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-m2/src/runtimeExtensions.ts b/clients/client-m2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..21f1cb1595e3 --- /dev/null +++ b/clients/client-m2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { M2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: M2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: M2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-machine-learning/src/MachineLearningClient.ts b/clients/client-machine-learning/src/MachineLearningClient.ts index 1633c3d262be..d753c4c1fdc8 100644 --- a/clients/client-machine-learning/src/MachineLearningClient.ts +++ b/clients/client-machine-learning/src/MachineLearningClient.ts @@ -118,6 +118,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -305,6 +306,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -335,6 +341,7 @@ export interface MachineLearningClientConfig extends MachineLearningClientConfig */ export type MachineLearningClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -374,8 +381,9 @@ export class MachineLearningClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-machine-learning/src/clientConfiguration.ts b/clients/client-machine-learning/src/clientConfiguration.ts new file mode 100644 index 000000000000..8043723647a4 --- /dev/null +++ b/clients/client-machine-learning/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MachineLearningClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-machine-learning/src/runtimeConfig.shared.ts b/clients/client-machine-learning/src/runtimeConfig.shared.ts index 741c9bc30050..fe33b0450d8b 100644 --- a/clients/client-machine-learning/src/runtimeConfig.shared.ts +++ b/clients/client-machine-learning/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MachineLearningClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Machine Learning", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-machine-learning/src/runtimeExtensions.ts b/clients/client-machine-learning/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2d07f02d7bf7 --- /dev/null +++ b/clients/client-machine-learning/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MachineLearningClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MachineLearningClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MachineLearningClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-macie/src/MacieClient.ts b/clients/client-macie/src/MacieClient.ts index bfb27e78bd2f..268697b3b535 100644 --- a/clients/client-macie/src/MacieClient.ts +++ b/clients/client-macie/src/MacieClient.ts @@ -76,6 +76,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface MacieClientConfig extends MacieClientConfigType {} */ export type MacieClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -295,8 +302,9 @@ export class MacieClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-macie/src/clientConfiguration.ts b/clients/client-macie/src/clientConfiguration.ts new file mode 100644 index 000000000000..0d582c78a514 --- /dev/null +++ b/clients/client-macie/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MacieClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-macie/src/runtimeConfig.shared.ts b/clients/client-macie/src/runtimeConfig.shared.ts index c547c474312a..d24d67e98651 100644 --- a/clients/client-macie/src/runtimeConfig.shared.ts +++ b/clients/client-macie/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MacieClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Macie", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-macie/src/runtimeExtensions.ts b/clients/client-macie/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5a2a117e3c5f --- /dev/null +++ b/clients/client-macie/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MacieClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MacieClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MacieClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-macie2/src/Macie2Client.ts b/clients/client-macie2/src/Macie2Client.ts index 405c2aec6fa1..617f8c2b62d2 100644 --- a/clients/client-macie2/src/Macie2Client.ts +++ b/clients/client-macie2/src/Macie2Client.ts @@ -283,6 +283,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -572,6 +573,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -602,6 +608,7 @@ export interface Macie2ClientConfig extends Macie2ClientConfigType {} */ export type Macie2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -640,8 +647,9 @@ export class Macie2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-macie2/src/clientConfiguration.ts b/clients/client-macie2/src/clientConfiguration.ts new file mode 100644 index 000000000000..59fe73bc983e --- /dev/null +++ b/clients/client-macie2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Macie2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-macie2/src/runtimeConfig.shared.ts b/clients/client-macie2/src/runtimeConfig.shared.ts index 1c039432e4b2..a93bfac8e379 100644 --- a/clients/client-macie2/src/runtimeConfig.shared.ts +++ b/clients/client-macie2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Macie2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Macie2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-macie2/src/runtimeExtensions.ts b/clients/client-macie2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1df5a12200fa --- /dev/null +++ b/clients/client-macie2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Macie2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Macie2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Macie2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-managedblockchain-query/src/ManagedBlockchainQueryClient.ts b/clients/client-managedblockchain-query/src/ManagedBlockchainQueryClient.ts index 4d03515d7a5b..5acd4753d3a0 100644 --- a/clients/client-managedblockchain-query/src/ManagedBlockchainQueryClient.ts +++ b/clients/client-managedblockchain-query/src/ManagedBlockchainQueryClient.ts @@ -69,6 +69,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -212,6 +213,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -242,6 +248,7 @@ export interface ManagedBlockchainQueryClientConfig extends ManagedBlockchainQue */ export type ManagedBlockchainQueryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -286,8 +293,9 @@ export class ManagedBlockchainQueryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-managedblockchain-query/src/clientConfiguration.ts b/clients/client-managedblockchain-query/src/clientConfiguration.ts new file mode 100644 index 000000000000..b56069bc1e60 --- /dev/null +++ b/clients/client-managedblockchain-query/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ManagedBlockchainQueryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-managedblockchain-query/src/runtimeConfig.shared.ts b/clients/client-managedblockchain-query/src/runtimeConfig.shared.ts index b9b4f6c7f316..7b706046716b 100644 --- a/clients/client-managedblockchain-query/src/runtimeConfig.shared.ts +++ b/clients/client-managedblockchain-query/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ManagedBlockchainQueryClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ManagedBlockchain Query", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-managedblockchain-query/src/runtimeExtensions.ts b/clients/client-managedblockchain-query/src/runtimeExtensions.ts new file mode 100644 index 000000000000..725cfda584d2 --- /dev/null +++ b/clients/client-managedblockchain-query/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ManagedBlockchainQueryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ManagedBlockchainQueryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ManagedBlockchainQueryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-managedblockchain/src/ManagedBlockchainClient.ts b/clients/client-managedblockchain/src/ManagedBlockchainClient.ts index 041857e15891..c9cf04fe800e 100644 --- a/clients/client-managedblockchain/src/ManagedBlockchainClient.ts +++ b/clients/client-managedblockchain/src/ManagedBlockchainClient.ts @@ -87,6 +87,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -272,6 +273,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -302,6 +308,7 @@ export interface ManagedBlockchainClientConfig extends ManagedBlockchainClientCo */ export type ManagedBlockchainClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -343,8 +350,9 @@ export class ManagedBlockchainClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-managedblockchain/src/clientConfiguration.ts b/clients/client-managedblockchain/src/clientConfiguration.ts new file mode 100644 index 000000000000..7116921081db --- /dev/null +++ b/clients/client-managedblockchain/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ManagedBlockchainClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-managedblockchain/src/runtimeConfig.shared.ts b/clients/client-managedblockchain/src/runtimeConfig.shared.ts index fbfb05f25804..32b49f79bc32 100644 --- a/clients/client-managedblockchain/src/runtimeConfig.shared.ts +++ b/clients/client-managedblockchain/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ManagedBlockchainClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ManagedBlockchain", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-managedblockchain/src/runtimeExtensions.ts b/clients/client-managedblockchain/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fec3ddf1b1bb --- /dev/null +++ b/clients/client-managedblockchain/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ManagedBlockchainClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ManagedBlockchainClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ManagedBlockchainClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-marketplace-catalog/src/MarketplaceCatalogClient.ts b/clients/client-marketplace-catalog/src/MarketplaceCatalogClient.ts index f6ab5fca452b..47dce312cbca 100644 --- a/clients/client-marketplace-catalog/src/MarketplaceCatalogClient.ts +++ b/clients/client-marketplace-catalog/src/MarketplaceCatalogClient.ts @@ -75,6 +75,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface MarketplaceCatalogClientConfig extends MarketplaceCatalogClient */ export type MarketplaceCatalogClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -303,8 +310,9 @@ export class MarketplaceCatalogClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-marketplace-catalog/src/clientConfiguration.ts b/clients/client-marketplace-catalog/src/clientConfiguration.ts new file mode 100644 index 000000000000..81183200625e --- /dev/null +++ b/clients/client-marketplace-catalog/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MarketplaceCatalogClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-marketplace-catalog/src/runtimeConfig.shared.ts b/clients/client-marketplace-catalog/src/runtimeConfig.shared.ts index 80bd11d32f23..5ebe4d894be4 100644 --- a/clients/client-marketplace-catalog/src/runtimeConfig.shared.ts +++ b/clients/client-marketplace-catalog/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MarketplaceCatalogClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Marketplace Catalog", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-marketplace-catalog/src/runtimeExtensions.ts b/clients/client-marketplace-catalog/src/runtimeExtensions.ts new file mode 100644 index 000000000000..550f46aeeb52 --- /dev/null +++ b/clients/client-marketplace-catalog/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MarketplaceCatalogClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MarketplaceCatalogClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MarketplaceCatalogClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-marketplace-commerce-analytics/src/MarketplaceCommerceAnalyticsClient.ts b/clients/client-marketplace-commerce-analytics/src/MarketplaceCommerceAnalyticsClient.ts index 300aa100d008..96d8bc0c8585 100644 --- a/clients/client-marketplace-commerce-analytics/src/MarketplaceCommerceAnalyticsClient.ts +++ b/clients/client-marketplace-commerce-analytics/src/MarketplaceCommerceAnalyticsClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -193,6 +194,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -223,6 +229,7 @@ export interface MarketplaceCommerceAnalyticsClientConfig extends MarketplaceCom */ export type MarketplaceCommerceAnalyticsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -262,8 +269,9 @@ export class MarketplaceCommerceAnalyticsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-marketplace-commerce-analytics/src/clientConfiguration.ts b/clients/client-marketplace-commerce-analytics/src/clientConfiguration.ts new file mode 100644 index 000000000000..1f562293b8fe --- /dev/null +++ b/clients/client-marketplace-commerce-analytics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MarketplaceCommerceAnalyticsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-marketplace-commerce-analytics/src/runtimeConfig.shared.ts b/clients/client-marketplace-commerce-analytics/src/runtimeConfig.shared.ts index 36b442572574..1371f2e7fd80 100644 --- a/clients/client-marketplace-commerce-analytics/src/runtimeConfig.shared.ts +++ b/clients/client-marketplace-commerce-analytics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MarketplaceCommerceAnalyticsClientConfi base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Marketplace Commerce Analytics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-marketplace-commerce-analytics/src/runtimeExtensions.ts b/clients/client-marketplace-commerce-analytics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b9bdf501b839 --- /dev/null +++ b/clients/client-marketplace-commerce-analytics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MarketplaceCommerceAnalyticsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MarketplaceCommerceAnalyticsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MarketplaceCommerceAnalyticsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-marketplace-entitlement-service/src/MarketplaceEntitlementServiceClient.ts b/clients/client-marketplace-entitlement-service/src/MarketplaceEntitlementServiceClient.ts index 50a90ee94354..c597f62663af 100644 --- a/clients/client-marketplace-entitlement-service/src/MarketplaceEntitlementServiceClient.ts +++ b/clients/client-marketplace-entitlement-service/src/MarketplaceEntitlementServiceClient.ts @@ -58,6 +58,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -189,6 +190,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -220,6 +226,7 @@ export interface MarketplaceEntitlementServiceClientConfig extends MarketplaceEn export type MarketplaceEntitlementServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -275,8 +282,9 @@ export class MarketplaceEntitlementServiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-marketplace-entitlement-service/src/clientConfiguration.ts b/clients/client-marketplace-entitlement-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..a9692573905e --- /dev/null +++ b/clients/client-marketplace-entitlement-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MarketplaceEntitlementServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-marketplace-entitlement-service/src/runtimeConfig.shared.ts b/clients/client-marketplace-entitlement-service/src/runtimeConfig.shared.ts index cda77d040273..6facac5c20a7 100644 --- a/clients/client-marketplace-entitlement-service/src/runtimeConfig.shared.ts +++ b/clients/client-marketplace-entitlement-service/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MarketplaceEntitlementServiceClientConf base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Marketplace Entitlement Service", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-marketplace-entitlement-service/src/runtimeExtensions.ts b/clients/client-marketplace-entitlement-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..26d75e6926cd --- /dev/null +++ b/clients/client-marketplace-entitlement-service/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MarketplaceEntitlementServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MarketplaceEntitlementServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MarketplaceEntitlementServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-marketplace-metering/src/MarketplaceMeteringClient.ts b/clients/client-marketplace-metering/src/MarketplaceMeteringClient.ts index e8678cd9d75e..d9b7739cdea3 100644 --- a/clients/client-marketplace-metering/src/MarketplaceMeteringClient.ts +++ b/clients/client-marketplace-metering/src/MarketplaceMeteringClient.ts @@ -61,6 +61,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -200,6 +201,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -230,6 +236,7 @@ export interface MarketplaceMeteringClientConfig extends MarketplaceMeteringClie */ export type MarketplaceMeteringClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -330,8 +337,9 @@ export class MarketplaceMeteringClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-marketplace-metering/src/clientConfiguration.ts b/clients/client-marketplace-metering/src/clientConfiguration.ts new file mode 100644 index 000000000000..bbf8553019b5 --- /dev/null +++ b/clients/client-marketplace-metering/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MarketplaceMeteringClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-marketplace-metering/src/runtimeConfig.shared.ts b/clients/client-marketplace-metering/src/runtimeConfig.shared.ts index ee0c6f67fbb9..27115f51b9f2 100644 --- a/clients/client-marketplace-metering/src/runtimeConfig.shared.ts +++ b/clients/client-marketplace-metering/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MarketplaceMeteringClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Marketplace Metering", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-marketplace-metering/src/runtimeExtensions.ts b/clients/client-marketplace-metering/src/runtimeExtensions.ts new file mode 100644 index 000000000000..99d04042ecdf --- /dev/null +++ b/clients/client-marketplace-metering/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MarketplaceMeteringClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MarketplaceMeteringClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MarketplaceMeteringClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediaconnect/src/MediaConnectClient.ts b/clients/client-mediaconnect/src/MediaConnectClient.ts index c9bdf8492a68..062cd6bf3dce 100644 --- a/clients/client-mediaconnect/src/MediaConnectClient.ts +++ b/clients/client-mediaconnect/src/MediaConnectClient.ts @@ -149,6 +149,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -380,6 +381,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -410,6 +416,7 @@ export interface MediaConnectClientConfig extends MediaConnectClientConfigType { */ export type MediaConnectClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -448,8 +455,9 @@ export class MediaConnectClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediaconnect/src/clientConfiguration.ts b/clients/client-mediaconnect/src/clientConfiguration.ts new file mode 100644 index 000000000000..2682e1092122 --- /dev/null +++ b/clients/client-mediaconnect/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaConnectClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediaconnect/src/runtimeConfig.shared.ts b/clients/client-mediaconnect/src/runtimeConfig.shared.ts index 7695b8cad931..fd3a99780a33 100644 --- a/clients/client-mediaconnect/src/runtimeConfig.shared.ts +++ b/clients/client-mediaconnect/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaConnectClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaConnect", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediaconnect/src/runtimeExtensions.ts b/clients/client-mediaconnect/src/runtimeExtensions.ts new file mode 100644 index 000000000000..20d7d6d043b5 --- /dev/null +++ b/clients/client-mediaconnect/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaConnectClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaConnectClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaConnectClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediaconvert/src/MediaConvertClient.ts b/clients/client-mediaconvert/src/MediaConvertClient.ts index 1ef1228cbef7..e1ff697e7485 100644 --- a/clients/client-mediaconvert/src/MediaConvertClient.ts +++ b/clients/client-mediaconvert/src/MediaConvertClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -281,6 +282,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -311,6 +317,7 @@ export interface MediaConvertClientConfig extends MediaConvertClientConfigType { */ export type MediaConvertClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -349,8 +356,9 @@ export class MediaConvertClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediaconvert/src/clientConfiguration.ts b/clients/client-mediaconvert/src/clientConfiguration.ts new file mode 100644 index 000000000000..8db8503a0d5b --- /dev/null +++ b/clients/client-mediaconvert/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaConvertClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediaconvert/src/runtimeConfig.shared.ts b/clients/client-mediaconvert/src/runtimeConfig.shared.ts index 9a137767ee83..b5ba0ee49c00 100644 --- a/clients/client-mediaconvert/src/runtimeConfig.shared.ts +++ b/clients/client-mediaconvert/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaConvertClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaConvert", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediaconvert/src/runtimeExtensions.ts b/clients/client-mediaconvert/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4fa41f01e0c1 --- /dev/null +++ b/clients/client-mediaconvert/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaConvertClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaConvertClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaConvertClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-medialive/src/MediaLiveClient.ts b/clients/client-medialive/src/MediaLiveClient.ts index 25e8dbd47b88..b7391c897128 100644 --- a/clients/client-medialive/src/MediaLiveClient.ts +++ b/clients/client-medialive/src/MediaLiveClient.ts @@ -189,6 +189,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -444,6 +445,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -480,6 +486,7 @@ export interface MediaLiveClientConfig extends MediaLiveClientConfigType {} */ export type MediaLiveClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -518,8 +525,9 @@ export class MediaLiveClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-medialive/src/clientConfiguration.ts b/clients/client-medialive/src/clientConfiguration.ts new file mode 100644 index 000000000000..3f9ff8fa5015 --- /dev/null +++ b/clients/client-medialive/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaLiveClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-medialive/src/runtimeConfig.shared.ts b/clients/client-medialive/src/runtimeConfig.shared.ts index f14f695482ba..0ad05535924e 100644 --- a/clients/client-medialive/src/runtimeConfig.shared.ts +++ b/clients/client-medialive/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: MediaLiveClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "MediaLive", diff --git a/clients/client-medialive/src/runtimeExtensions.ts b/clients/client-medialive/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7e08fbf650f6 --- /dev/null +++ b/clients/client-medialive/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaLiveClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaLiveClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaLiveClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediapackage-vod/src/MediaPackageVodClient.ts b/clients/client-mediapackage-vod/src/MediaPackageVodClient.ts index 73b4e6b343d8..bd871329cdc3 100644 --- a/clients/client-mediapackage-vod/src/MediaPackageVodClient.ts +++ b/clients/client-mediapackage-vod/src/MediaPackageVodClient.ts @@ -104,6 +104,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface MediaPackageVodClientConfig extends MediaPackageVodClientConfig */ export type MediaPackageVodClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -337,8 +344,9 @@ export class MediaPackageVodClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediapackage-vod/src/clientConfiguration.ts b/clients/client-mediapackage-vod/src/clientConfiguration.ts new file mode 100644 index 000000000000..57a251b8ee6c --- /dev/null +++ b/clients/client-mediapackage-vod/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaPackageVodClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediapackage-vod/src/runtimeConfig.shared.ts b/clients/client-mediapackage-vod/src/runtimeConfig.shared.ts index 5f4f0de8f451..3b52a6d36830 100644 --- a/clients/client-mediapackage-vod/src/runtimeConfig.shared.ts +++ b/clients/client-mediapackage-vod/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaPackageVodClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaPackage Vod", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediapackage-vod/src/runtimeExtensions.ts b/clients/client-mediapackage-vod/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f4ac9396df6a --- /dev/null +++ b/clients/client-mediapackage-vod/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaPackageVodClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaPackageVodClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaPackageVodClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediapackage/src/MediaPackageClient.ts b/clients/client-mediapackage/src/MediaPackageClient.ts index ff346de0556e..d8ad60c6eb1c 100644 --- a/clients/client-mediapackage/src/MediaPackageClient.ts +++ b/clients/client-mediapackage/src/MediaPackageClient.ts @@ -100,6 +100,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface MediaPackageClientConfig extends MediaPackageClientConfigType { */ export type MediaPackageClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -337,8 +344,9 @@ export class MediaPackageClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediapackage/src/clientConfiguration.ts b/clients/client-mediapackage/src/clientConfiguration.ts new file mode 100644 index 000000000000..0261ae99e867 --- /dev/null +++ b/clients/client-mediapackage/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaPackageClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediapackage/src/runtimeConfig.shared.ts b/clients/client-mediapackage/src/runtimeConfig.shared.ts index ca2f1d8a12e7..10427ebecaec 100644 --- a/clients/client-mediapackage/src/runtimeConfig.shared.ts +++ b/clients/client-mediapackage/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaPackageClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaPackage", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediapackage/src/runtimeExtensions.ts b/clients/client-mediapackage/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b7d441a50ec6 --- /dev/null +++ b/clients/client-mediapackage/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaPackageClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaPackageClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaPackageClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediapackagev2/src/MediaPackageV2Client.ts b/clients/client-mediapackagev2/src/MediaPackageV2Client.ts index 2a572a7f8831..91b82a206120 100644 --- a/clients/client-mediapackagev2/src/MediaPackageV2Client.ts +++ b/clients/client-mediapackagev2/src/MediaPackageV2Client.ts @@ -108,6 +108,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -287,6 +288,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -317,6 +323,7 @@ export interface MediaPackageV2ClientConfig extends MediaPackageV2ClientConfigTy */ export type MediaPackageV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -366,8 +373,9 @@ export class MediaPackageV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediapackagev2/src/clientConfiguration.ts b/clients/client-mediapackagev2/src/clientConfiguration.ts new file mode 100644 index 000000000000..96f3bb77a85d --- /dev/null +++ b/clients/client-mediapackagev2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaPackageV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediapackagev2/src/runtimeConfig.shared.ts b/clients/client-mediapackagev2/src/runtimeConfig.shared.ts index abcdf6a45ac0..c98f05ac0dd8 100644 --- a/clients/client-mediapackagev2/src/runtimeConfig.shared.ts +++ b/clients/client-mediapackagev2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaPackageV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaPackageV2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediapackagev2/src/runtimeExtensions.ts b/clients/client-mediapackagev2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0b5aec308d60 --- /dev/null +++ b/clients/client-mediapackagev2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaPackageV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaPackageV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaPackageV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediastore-data/src/MediaStoreDataClient.ts b/clients/client-mediastore-data/src/MediaStoreDataClient.ts index b1e2435daae6..a21a436559f5 100644 --- a/clients/client-mediastore-data/src/MediaStoreDataClient.ts +++ b/clients/client-mediastore-data/src/MediaStoreDataClient.ts @@ -63,6 +63,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -204,6 +205,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -240,6 +246,7 @@ export interface MediaStoreDataClientConfig extends MediaStoreDataClientConfigTy */ export type MediaStoreDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -280,8 +287,9 @@ export class MediaStoreDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediastore-data/src/clientConfiguration.ts b/clients/client-mediastore-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..52cc9db0367a --- /dev/null +++ b/clients/client-mediastore-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaStoreDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediastore-data/src/runtimeConfig.shared.ts b/clients/client-mediastore-data/src/runtimeConfig.shared.ts index a1051b3eb045..4bc14b3e6f8c 100644 --- a/clients/client-mediastore-data/src/runtimeConfig.shared.ts +++ b/clients/client-mediastore-data/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: MediaStoreDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "MediaStore Data", diff --git a/clients/client-mediastore-data/src/runtimeExtensions.ts b/clients/client-mediastore-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9a2a5ef38dac --- /dev/null +++ b/clients/client-mediastore-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaStoreDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaStoreDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaStoreDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediastore/src/MediaStoreClient.ts b/clients/client-mediastore/src/MediaStoreClient.ts index b912f8f9bd8f..532c2842823d 100644 --- a/clients/client-mediastore/src/MediaStoreClient.ts +++ b/clients/client-mediastore/src/MediaStoreClient.ts @@ -87,6 +87,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface MediaStoreClientConfig extends MediaStoreClientConfigType {} */ export type MediaStoreClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -329,8 +336,9 @@ export class MediaStoreClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediastore/src/clientConfiguration.ts b/clients/client-mediastore/src/clientConfiguration.ts new file mode 100644 index 000000000000..74f30debdfea --- /dev/null +++ b/clients/client-mediastore/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaStoreClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediastore/src/runtimeConfig.shared.ts b/clients/client-mediastore/src/runtimeConfig.shared.ts index 5ca4fabb0af1..e3b5e2548b1f 100644 --- a/clients/client-mediastore/src/runtimeConfig.shared.ts +++ b/clients/client-mediastore/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaStoreClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaStore", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediastore/src/runtimeExtensions.ts b/clients/client-mediastore/src/runtimeExtensions.ts new file mode 100644 index 000000000000..696bad70d2a9 --- /dev/null +++ b/clients/client-mediastore/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaStoreClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaStoreClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaStoreClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mediatailor/src/MediaTailorClient.ts b/clients/client-mediatailor/src/MediaTailorClient.ts index 7620d3152621..f21693dcb193 100644 --- a/clients/client-mediatailor/src/MediaTailorClient.ts +++ b/clients/client-mediatailor/src/MediaTailorClient.ts @@ -152,6 +152,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -371,6 +372,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -401,6 +407,7 @@ export interface MediaTailorClientConfig extends MediaTailorClientConfigType {} */ export type MediaTailorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -440,8 +447,9 @@ export class MediaTailorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mediatailor/src/clientConfiguration.ts b/clients/client-mediatailor/src/clientConfiguration.ts new file mode 100644 index 000000000000..095881f08c61 --- /dev/null +++ b/clients/client-mediatailor/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MediaTailorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mediatailor/src/runtimeConfig.shared.ts b/clients/client-mediatailor/src/runtimeConfig.shared.ts index 8dcb20d25288..e7bb05768d3f 100644 --- a/clients/client-mediatailor/src/runtimeConfig.shared.ts +++ b/clients/client-mediatailor/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MediaTailorClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MediaTailor", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mediatailor/src/runtimeExtensions.ts b/clients/client-mediatailor/src/runtimeExtensions.ts new file mode 100644 index 000000000000..69fac7d971ee --- /dev/null +++ b/clients/client-mediatailor/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MediaTailorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MediaTailorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MediaTailorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-medical-imaging/src/MedicalImagingClient.ts b/clients/client-medical-imaging/src/MedicalImagingClient.ts index b2e04b6cda6c..e2e3b5d13f1f 100644 --- a/clients/client-medical-imaging/src/MedicalImagingClient.ts +++ b/clients/client-medical-imaging/src/MedicalImagingClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -261,6 +262,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -297,6 +303,7 @@ export interface MedicalImagingClientConfig extends MedicalImagingClientConfigTy */ export type MedicalImagingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -484,8 +491,9 @@ export class MedicalImagingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-medical-imaging/src/clientConfiguration.ts b/clients/client-medical-imaging/src/clientConfiguration.ts new file mode 100644 index 000000000000..2d05d96fe598 --- /dev/null +++ b/clients/client-medical-imaging/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MedicalImagingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-medical-imaging/src/runtimeConfig.shared.ts b/clients/client-medical-imaging/src/runtimeConfig.shared.ts index 2796ef0736b1..cdfbdca9811e 100644 --- a/clients/client-medical-imaging/src/runtimeConfig.shared.ts +++ b/clients/client-medical-imaging/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: MedicalImagingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Medical Imaging", diff --git a/clients/client-medical-imaging/src/runtimeExtensions.ts b/clients/client-medical-imaging/src/runtimeExtensions.ts new file mode 100644 index 000000000000..143979cd9776 --- /dev/null +++ b/clients/client-medical-imaging/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MedicalImagingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MedicalImagingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MedicalImagingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-memorydb/src/MemoryDBClient.ts b/clients/client-memorydb/src/MemoryDBClient.ts index c7cefaba99ae..cfdf3aa41d0c 100644 --- a/clients/client-memorydb/src/MemoryDBClient.ts +++ b/clients/client-memorydb/src/MemoryDBClient.ts @@ -131,6 +131,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -338,6 +339,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -368,6 +374,7 @@ export interface MemoryDBClientConfig extends MemoryDBClientConfigType {} */ export type MemoryDBClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -408,8 +415,9 @@ export class MemoryDBClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-memorydb/src/clientConfiguration.ts b/clients/client-memorydb/src/clientConfiguration.ts new file mode 100644 index 000000000000..503922a65951 --- /dev/null +++ b/clients/client-memorydb/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MemoryDBClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-memorydb/src/runtimeConfig.shared.ts b/clients/client-memorydb/src/runtimeConfig.shared.ts index e5f752cde89c..6320db9832ea 100644 --- a/clients/client-memorydb/src/runtimeConfig.shared.ts +++ b/clients/client-memorydb/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MemoryDBClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MemoryDB", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-memorydb/src/runtimeExtensions.ts b/clients/client-memorydb/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c748d2a12c5e --- /dev/null +++ b/clients/client-memorydb/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MemoryDBClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MemoryDBClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MemoryDBClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mgn/src/MgnClient.ts b/clients/client-mgn/src/MgnClient.ts index efa4375900ef..9b6dbb6a9194 100644 --- a/clients/client-mgn/src/MgnClient.ts +++ b/clients/client-mgn/src/MgnClient.ts @@ -221,6 +221,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -482,6 +483,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -512,6 +518,7 @@ export interface MgnClientConfig extends MgnClientConfigType {} */ export type MgnClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -550,8 +557,9 @@ export class MgnClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mgn/src/clientConfiguration.ts b/clients/client-mgn/src/clientConfiguration.ts new file mode 100644 index 000000000000..f810f0ec9891 --- /dev/null +++ b/clients/client-mgn/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MgnClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mgn/src/runtimeConfig.shared.ts b/clients/client-mgn/src/runtimeConfig.shared.ts index 637da51efc8d..ef56c85f1135 100644 --- a/clients/client-mgn/src/runtimeConfig.shared.ts +++ b/clients/client-mgn/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MgnClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "mgn", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mgn/src/runtimeExtensions.ts b/clients/client-mgn/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2122b8471789 --- /dev/null +++ b/clients/client-mgn/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MgnClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MgnClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MgnClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-migration-hub-refactor-spaces/src/MigrationHubRefactorSpacesClient.ts b/clients/client-migration-hub-refactor-spaces/src/MigrationHubRefactorSpacesClient.ts index 9cc1821a17f6..f3eef557766d 100644 --- a/clients/client-migration-hub-refactor-spaces/src/MigrationHubRefactorSpacesClient.ts +++ b/clients/client-migration-hub-refactor-spaces/src/MigrationHubRefactorSpacesClient.ts @@ -90,6 +90,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface MigrationHubRefactorSpacesClientConfig extends MigrationHubRefa */ export type MigrationHubRefactorSpacesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -345,8 +352,9 @@ export class MigrationHubRefactorSpacesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-migration-hub-refactor-spaces/src/clientConfiguration.ts b/clients/client-migration-hub-refactor-spaces/src/clientConfiguration.ts new file mode 100644 index 000000000000..89e5f88b2b86 --- /dev/null +++ b/clients/client-migration-hub-refactor-spaces/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MigrationHubRefactorSpacesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-migration-hub-refactor-spaces/src/runtimeConfig.shared.ts b/clients/client-migration-hub-refactor-spaces/src/runtimeConfig.shared.ts index eab9f02de496..c8e330dccd89 100644 --- a/clients/client-migration-hub-refactor-spaces/src/runtimeConfig.shared.ts +++ b/clients/client-migration-hub-refactor-spaces/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MigrationHubRefactorSpacesClientConfig) base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Migration Hub Refactor Spaces", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-migration-hub-refactor-spaces/src/runtimeExtensions.ts b/clients/client-migration-hub-refactor-spaces/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6bb17336302f --- /dev/null +++ b/clients/client-migration-hub-refactor-spaces/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MigrationHubRefactorSpacesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MigrationHubRefactorSpacesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MigrationHubRefactorSpacesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-migration-hub/src/MigrationHubClient.ts b/clients/client-migration-hub/src/MigrationHubClient.ts index 296ee545737d..629065e77fca 100644 --- a/clients/client-migration-hub/src/MigrationHubClient.ts +++ b/clients/client-migration-hub/src/MigrationHubClient.ts @@ -122,6 +122,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -287,6 +288,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -317,6 +323,7 @@ export interface MigrationHubClientConfig extends MigrationHubClientConfigType { */ export type MigrationHubClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -360,8 +367,9 @@ export class MigrationHubClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-migration-hub/src/clientConfiguration.ts b/clients/client-migration-hub/src/clientConfiguration.ts new file mode 100644 index 000000000000..4da8a06ed505 --- /dev/null +++ b/clients/client-migration-hub/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MigrationHubClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-migration-hub/src/runtimeConfig.shared.ts b/clients/client-migration-hub/src/runtimeConfig.shared.ts index e3e35a71f4e4..6f761c0cc4c3 100644 --- a/clients/client-migration-hub/src/runtimeConfig.shared.ts +++ b/clients/client-migration-hub/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MigrationHubClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Migration Hub", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-migration-hub/src/runtimeExtensions.ts b/clients/client-migration-hub/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4b6a6e0e2458 --- /dev/null +++ b/clients/client-migration-hub/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MigrationHubClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MigrationHubClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MigrationHubClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-migrationhub-config/src/MigrationHubConfigClient.ts b/clients/client-migrationhub-config/src/MigrationHubConfigClient.ts index 8fbe3583f7d8..99b3d7679c3d 100644 --- a/clients/client-migrationhub-config/src/MigrationHubConfigClient.ts +++ b/clients/client-migrationhub-config/src/MigrationHubConfigClient.ts @@ -66,6 +66,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -203,6 +204,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -233,6 +239,7 @@ export interface MigrationHubConfigClientConfig extends MigrationHubConfigClient */ export type MigrationHubConfigClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -296,8 +303,9 @@ export class MigrationHubConfigClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-migrationhub-config/src/clientConfiguration.ts b/clients/client-migrationhub-config/src/clientConfiguration.ts new file mode 100644 index 000000000000..264bb862a076 --- /dev/null +++ b/clients/client-migrationhub-config/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MigrationHubConfigClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-migrationhub-config/src/runtimeConfig.shared.ts b/clients/client-migrationhub-config/src/runtimeConfig.shared.ts index c2f1d419b539..4798b4b333ad 100644 --- a/clients/client-migrationhub-config/src/runtimeConfig.shared.ts +++ b/clients/client-migrationhub-config/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MigrationHubConfigClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MigrationHub Config", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-migrationhub-config/src/runtimeExtensions.ts b/clients/client-migrationhub-config/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dd0fd12c0b7e --- /dev/null +++ b/clients/client-migrationhub-config/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MigrationHubConfigClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MigrationHubConfigClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MigrationHubConfigClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-migrationhuborchestrator/src/MigrationHubOrchestratorClient.ts b/clients/client-migrationhuborchestrator/src/MigrationHubOrchestratorClient.ts index db650cb9bb65..ab4b7f946659 100644 --- a/clients/client-migrationhuborchestrator/src/MigrationHubOrchestratorClient.ts +++ b/clients/client-migrationhuborchestrator/src/MigrationHubOrchestratorClient.ts @@ -109,6 +109,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface MigrationHubOrchestratorClientConfig extends MigrationHubOrches */ export type MigrationHubOrchestratorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -369,8 +376,9 @@ export class MigrationHubOrchestratorClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-migrationhuborchestrator/src/clientConfiguration.ts b/clients/client-migrationhuborchestrator/src/clientConfiguration.ts new file mode 100644 index 000000000000..b25a0bd756bf --- /dev/null +++ b/clients/client-migrationhuborchestrator/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MigrationHubOrchestratorClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-migrationhuborchestrator/src/runtimeConfig.shared.ts b/clients/client-migrationhuborchestrator/src/runtimeConfig.shared.ts index 626db39c42ee..13fd6b8f52b4 100644 --- a/clients/client-migrationhuborchestrator/src/runtimeConfig.shared.ts +++ b/clients/client-migrationhuborchestrator/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MigrationHubOrchestratorClientConfig) = base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MigrationHubOrchestrator", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-migrationhuborchestrator/src/runtimeExtensions.ts b/clients/client-migrationhuborchestrator/src/runtimeExtensions.ts new file mode 100644 index 000000000000..917a83f969f7 --- /dev/null +++ b/clients/client-migrationhuborchestrator/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MigrationHubOrchestratorClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MigrationHubOrchestratorClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MigrationHubOrchestratorClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-migrationhubstrategy/src/MigrationHubStrategyClient.ts b/clients/client-migrationhubstrategy/src/MigrationHubStrategyClient.ts index 2bdee572e6de..1b99ac798735 100644 --- a/clients/client-migrationhubstrategy/src/MigrationHubStrategyClient.ts +++ b/clients/client-migrationhubstrategy/src/MigrationHubStrategyClient.ts @@ -114,6 +114,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -287,6 +288,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -317,6 +323,7 @@ export interface MigrationHubStrategyClientConfig extends MigrationHubStrategyCl */ export type MigrationHubStrategyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -360,8 +367,9 @@ export class MigrationHubStrategyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-migrationhubstrategy/src/clientConfiguration.ts b/clients/client-migrationhubstrategy/src/clientConfiguration.ts new file mode 100644 index 000000000000..5cd4757f1d27 --- /dev/null +++ b/clients/client-migrationhubstrategy/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MigrationHubStrategyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-migrationhubstrategy/src/runtimeConfig.shared.ts b/clients/client-migrationhubstrategy/src/runtimeConfig.shared.ts index 5a4c5aabd372..590d34e6d969 100644 --- a/clients/client-migrationhubstrategy/src/runtimeConfig.shared.ts +++ b/clients/client-migrationhubstrategy/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MigrationHubStrategyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MigrationHubStrategy", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-migrationhubstrategy/src/runtimeExtensions.ts b/clients/client-migrationhubstrategy/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c78f1715a733 --- /dev/null +++ b/clients/client-migrationhubstrategy/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MigrationHubStrategyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MigrationHubStrategyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MigrationHubStrategyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mobile/src/MobileClient.ts b/clients/client-mobile/src/MobileClient.ts index a591a78278ed..43ed8e887734 100644 --- a/clients/client-mobile/src/MobileClient.ts +++ b/clients/client-mobile/src/MobileClient.ts @@ -66,6 +66,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -215,6 +216,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -245,6 +251,7 @@ export interface MobileClientConfig extends MobileClientConfigType {} */ export type MobileClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -287,8 +294,9 @@ export class MobileClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mobile/src/clientConfiguration.ts b/clients/client-mobile/src/clientConfiguration.ts new file mode 100644 index 000000000000..abed1160f421 --- /dev/null +++ b/clients/client-mobile/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MobileClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mobile/src/runtimeConfig.shared.ts b/clients/client-mobile/src/runtimeConfig.shared.ts index df78012de11b..aa54fb81e0dd 100644 --- a/clients/client-mobile/src/runtimeConfig.shared.ts +++ b/clients/client-mobile/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MobileClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Mobile", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mobile/src/runtimeExtensions.ts b/clients/client-mobile/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2f6ed012efd3 --- /dev/null +++ b/clients/client-mobile/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MobileClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MobileClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MobileClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mq/src/MqClient.ts b/clients/client-mq/src/MqClient.ts index 0defa1d7bd00..f5eb1453939e 100644 --- a/clients/client-mq/src/MqClient.ts +++ b/clients/client-mq/src/MqClient.ts @@ -101,6 +101,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -278,6 +279,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -308,6 +314,7 @@ export interface MqClientConfig extends MqClientConfigType {} */ export type MqClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -346,8 +353,9 @@ export class MqClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mq/src/clientConfiguration.ts b/clients/client-mq/src/clientConfiguration.ts new file mode 100644 index 000000000000..6f3dbd96c6a9 --- /dev/null +++ b/clients/client-mq/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MqClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mq/src/runtimeConfig.shared.ts b/clients/client-mq/src/runtimeConfig.shared.ts index 440b95f79325..56da0c022e2f 100644 --- a/clients/client-mq/src/runtimeConfig.shared.ts +++ b/clients/client-mq/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MqClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "mq", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mq/src/runtimeExtensions.ts b/clients/client-mq/src/runtimeExtensions.ts new file mode 100644 index 000000000000..71a9b2bc20a9 --- /dev/null +++ b/clients/client-mq/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MqClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MqClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MqClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mturk/src/MTurkClient.ts b/clients/client-mturk/src/MTurkClient.ts index 53933267932d..fffb2f3665e0 100644 --- a/clients/client-mturk/src/MTurkClient.ts +++ b/clients/client-mturk/src/MTurkClient.ts @@ -159,6 +159,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -368,6 +369,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -398,6 +404,7 @@ export interface MTurkClientConfig extends MTurkClientConfigType {} */ export type MTurkClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -436,8 +443,9 @@ export class MTurkClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mturk/src/clientConfiguration.ts b/clients/client-mturk/src/clientConfiguration.ts new file mode 100644 index 000000000000..48e8f475016e --- /dev/null +++ b/clients/client-mturk/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MTurkClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mturk/src/runtimeConfig.shared.ts b/clients/client-mturk/src/runtimeConfig.shared.ts index 0c5a43d7341e..4facbfbbe707 100644 --- a/clients/client-mturk/src/runtimeConfig.shared.ts +++ b/clients/client-mturk/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MTurkClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MTurk", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mturk/src/runtimeExtensions.ts b/clients/client-mturk/src/runtimeExtensions.ts new file mode 100644 index 000000000000..81ccc997aeee --- /dev/null +++ b/clients/client-mturk/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MTurkClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MTurkClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MTurkClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-mwaa/src/MWAAClient.ts b/clients/client-mwaa/src/MWAAClient.ts index ee01f3457c93..06d17ceccc67 100644 --- a/clients/client-mwaa/src/MWAAClient.ts +++ b/clients/client-mwaa/src/MWAAClient.ts @@ -74,6 +74,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -227,6 +228,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -257,6 +263,7 @@ export interface MWAAClientConfig extends MWAAClientConfigType {} */ export type MWAAClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -378,8 +385,9 @@ export class MWAAClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-mwaa/src/clientConfiguration.ts b/clients/client-mwaa/src/clientConfiguration.ts new file mode 100644 index 000000000000..5f28dab017dc --- /dev/null +++ b/clients/client-mwaa/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface MWAAClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-mwaa/src/runtimeConfig.shared.ts b/clients/client-mwaa/src/runtimeConfig.shared.ts index aa255862a08e..2d27ba587dcf 100644 --- a/clients/client-mwaa/src/runtimeConfig.shared.ts +++ b/clients/client-mwaa/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: MWAAClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "MWAA", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-mwaa/src/runtimeExtensions.ts b/clients/client-mwaa/src/runtimeExtensions.ts new file mode 100644 index 000000000000..81f667c89122 --- /dev/null +++ b/clients/client-mwaa/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { MWAAClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: MWAAClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: MWAAClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-neptune/src/NeptuneClient.ts b/clients/client-neptune/src/NeptuneClient.ts index 7becd78598ad..973ebc826427 100644 --- a/clients/client-neptune/src/NeptuneClient.ts +++ b/clients/client-neptune/src/NeptuneClient.ts @@ -291,6 +291,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -560,6 +561,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -590,6 +596,7 @@ export interface NeptuneClientConfig extends NeptuneClientConfigType {} */ export type NeptuneClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -644,8 +651,9 @@ export class NeptuneClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-neptune/src/clientConfiguration.ts b/clients/client-neptune/src/clientConfiguration.ts new file mode 100644 index 000000000000..05b5039db7da --- /dev/null +++ b/clients/client-neptune/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface NeptuneClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-neptune/src/runtimeConfig.shared.ts b/clients/client-neptune/src/runtimeConfig.shared.ts index 5b0b6b35c512..6d6687364fee 100644 --- a/clients/client-neptune/src/runtimeConfig.shared.ts +++ b/clients/client-neptune/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: NeptuneClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Neptune", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-neptune/src/runtimeExtensions.ts b/clients/client-neptune/src/runtimeExtensions.ts new file mode 100644 index 000000000000..302f9d4edcee --- /dev/null +++ b/clients/client-neptune/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { NeptuneClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: NeptuneClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: NeptuneClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-network-firewall/src/NetworkFirewallClient.ts b/clients/client-network-firewall/src/NetworkFirewallClient.ts index 988d70687857..8afead947341 100644 --- a/clients/client-network-firewall/src/NetworkFirewallClient.ts +++ b/clients/client-network-firewall/src/NetworkFirewallClient.ts @@ -162,6 +162,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -365,6 +366,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -395,6 +401,7 @@ export interface NetworkFirewallClientConfig extends NetworkFirewallClientConfig */ export type NetworkFirewallClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -510,8 +517,9 @@ export class NetworkFirewallClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-network-firewall/src/clientConfiguration.ts b/clients/client-network-firewall/src/clientConfiguration.ts new file mode 100644 index 000000000000..81d173b098f2 --- /dev/null +++ b/clients/client-network-firewall/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface NetworkFirewallClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-network-firewall/src/runtimeConfig.shared.ts b/clients/client-network-firewall/src/runtimeConfig.shared.ts index 22c1540bb2e4..2b3183f6a428 100644 --- a/clients/client-network-firewall/src/runtimeConfig.shared.ts +++ b/clients/client-network-firewall/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: NetworkFirewallClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Network Firewall", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-network-firewall/src/runtimeExtensions.ts b/clients/client-network-firewall/src/runtimeExtensions.ts new file mode 100644 index 000000000000..27f73e83f3f3 --- /dev/null +++ b/clients/client-network-firewall/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { NetworkFirewallClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: NetworkFirewallClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: NetworkFirewallClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-networkmanager/src/NetworkManagerClient.ts b/clients/client-networkmanager/src/NetworkManagerClient.ts index a249b7e59614..a1bfff16c10f 100644 --- a/clients/client-networkmanager/src/NetworkManagerClient.ts +++ b/clients/client-networkmanager/src/NetworkManagerClient.ts @@ -274,6 +274,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -575,6 +576,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -605,6 +611,7 @@ export interface NetworkManagerClientConfig extends NetworkManagerClientConfigTy */ export type NetworkManagerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -643,8 +650,9 @@ export class NetworkManagerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-networkmanager/src/clientConfiguration.ts b/clients/client-networkmanager/src/clientConfiguration.ts new file mode 100644 index 000000000000..2e7bc33d0be2 --- /dev/null +++ b/clients/client-networkmanager/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface NetworkManagerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-networkmanager/src/runtimeConfig.shared.ts b/clients/client-networkmanager/src/runtimeConfig.shared.ts index f423be3b58ec..21382faaa7c6 100644 --- a/clients/client-networkmanager/src/runtimeConfig.shared.ts +++ b/clients/client-networkmanager/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: NetworkManagerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "NetworkManager", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-networkmanager/src/runtimeExtensions.ts b/clients/client-networkmanager/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8f8bcaab9dcc --- /dev/null +++ b/clients/client-networkmanager/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { NetworkManagerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: NetworkManagerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: NetworkManagerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-nimble/src/NimbleClient.ts b/clients/client-nimble/src/NimbleClient.ts index f7b197758ff5..61e576f69b94 100644 --- a/clients/client-nimble/src/NimbleClient.ts +++ b/clients/client-nimble/src/NimbleClient.ts @@ -199,6 +199,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -428,6 +429,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -458,6 +464,7 @@ export interface NimbleClientConfig extends NimbleClientConfigType {} */ export type NimbleClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -501,8 +508,9 @@ export class NimbleClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-nimble/src/clientConfiguration.ts b/clients/client-nimble/src/clientConfiguration.ts new file mode 100644 index 000000000000..019e6626c4ef --- /dev/null +++ b/clients/client-nimble/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface NimbleClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-nimble/src/runtimeConfig.shared.ts b/clients/client-nimble/src/runtimeConfig.shared.ts index 1e557c4fc8f9..18873d73b6f8 100644 --- a/clients/client-nimble/src/runtimeConfig.shared.ts +++ b/clients/client-nimble/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: NimbleClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "nimble", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-nimble/src/runtimeExtensions.ts b/clients/client-nimble/src/runtimeExtensions.ts new file mode 100644 index 000000000000..21ffd3244719 --- /dev/null +++ b/clients/client-nimble/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { NimbleClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: NimbleClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: NimbleClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-oam/src/OAMClient.ts b/clients/client-oam/src/OAMClient.ts index 07260b3c5b1b..4c5ea46775de 100644 --- a/clients/client-oam/src/OAMClient.ts +++ b/clients/client-oam/src/OAMClient.ts @@ -75,6 +75,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -236,6 +237,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -266,6 +272,7 @@ export interface OAMClientConfig extends OAMClientConfigType {} */ export type OAMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -315,8 +322,9 @@ export class OAMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-oam/src/clientConfiguration.ts b/clients/client-oam/src/clientConfiguration.ts new file mode 100644 index 000000000000..415a9e0e7e05 --- /dev/null +++ b/clients/client-oam/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OAMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-oam/src/runtimeConfig.shared.ts b/clients/client-oam/src/runtimeConfig.shared.ts index f2758d7b0841..dc56b1e97fd1 100644 --- a/clients/client-oam/src/runtimeConfig.shared.ts +++ b/clients/client-oam/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OAMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OAM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-oam/src/runtimeExtensions.ts b/clients/client-oam/src/runtimeExtensions.ts new file mode 100644 index 000000000000..26a9a9481a2b --- /dev/null +++ b/clients/client-oam/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OAMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OAMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OAMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-omics/src/OmicsClient.ts b/clients/client-omics/src/OmicsClient.ts index 70abf03c2f38..080010574cf4 100644 --- a/clients/client-omics/src/OmicsClient.ts +++ b/clients/client-omics/src/OmicsClient.ts @@ -263,6 +263,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -558,6 +559,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -594,6 +600,7 @@ export interface OmicsClientConfig extends OmicsClientConfigType {} */ export type OmicsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -633,8 +640,9 @@ export class OmicsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-omics/src/clientConfiguration.ts b/clients/client-omics/src/clientConfiguration.ts new file mode 100644 index 000000000000..d9661c9c1090 --- /dev/null +++ b/clients/client-omics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OmicsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-omics/src/runtimeConfig.shared.ts b/clients/client-omics/src/runtimeConfig.shared.ts index 5693f5f44011..08edfcb34a19 100644 --- a/clients/client-omics/src/runtimeConfig.shared.ts +++ b/clients/client-omics/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: OmicsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Omics", diff --git a/clients/client-omics/src/runtimeExtensions.ts b/clients/client-omics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f009e21d2877 --- /dev/null +++ b/clients/client-omics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OmicsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OmicsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OmicsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-opensearch/src/OpenSearchClient.ts b/clients/client-opensearch/src/OpenSearchClient.ts index ea62136ad069..daa5007b6799 100644 --- a/clients/client-opensearch/src/OpenSearchClient.ts +++ b/clients/client-opensearch/src/OpenSearchClient.ts @@ -204,6 +204,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -443,6 +444,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -473,6 +479,7 @@ export interface OpenSearchClientConfig extends OpenSearchClientConfigType {} */ export type OpenSearchClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -520,8 +527,9 @@ export class OpenSearchClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-opensearch/src/clientConfiguration.ts b/clients/client-opensearch/src/clientConfiguration.ts new file mode 100644 index 000000000000..eaa27eeb3583 --- /dev/null +++ b/clients/client-opensearch/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OpenSearchClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-opensearch/src/runtimeConfig.shared.ts b/clients/client-opensearch/src/runtimeConfig.shared.ts index b42ad1bb07ee..a0731ea69002 100644 --- a/clients/client-opensearch/src/runtimeConfig.shared.ts +++ b/clients/client-opensearch/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OpenSearchClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OpenSearch", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-opensearch/src/runtimeExtensions.ts b/clients/client-opensearch/src/runtimeExtensions.ts new file mode 100644 index 000000000000..82fbf8514467 --- /dev/null +++ b/clients/client-opensearch/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OpenSearchClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OpenSearchClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OpenSearchClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-opensearchserverless/src/OpenSearchServerlessClient.ts b/clients/client-opensearchserverless/src/OpenSearchServerlessClient.ts index ead4c838dd58..edd096713452 100644 --- a/clients/client-opensearchserverless/src/OpenSearchServerlessClient.ts +++ b/clients/client-opensearchserverless/src/OpenSearchServerlessClient.ts @@ -121,6 +121,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -314,6 +315,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -344,6 +350,7 @@ export interface OpenSearchServerlessClientConfig extends OpenSearchServerlessCl */ export type OpenSearchServerlessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -391,8 +398,9 @@ export class OpenSearchServerlessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-opensearchserverless/src/clientConfiguration.ts b/clients/client-opensearchserverless/src/clientConfiguration.ts new file mode 100644 index 000000000000..e7cb944d5701 --- /dev/null +++ b/clients/client-opensearchserverless/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OpenSearchServerlessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-opensearchserverless/src/runtimeConfig.shared.ts b/clients/client-opensearchserverless/src/runtimeConfig.shared.ts index dcf3b15950a1..f5b85bd5f1c5 100644 --- a/clients/client-opensearchserverless/src/runtimeConfig.shared.ts +++ b/clients/client-opensearchserverless/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OpenSearchServerlessClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OpenSearchServerless", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-opensearchserverless/src/runtimeExtensions.ts b/clients/client-opensearchserverless/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b2ce4b3f1f76 --- /dev/null +++ b/clients/client-opensearchserverless/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OpenSearchServerlessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OpenSearchServerlessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OpenSearchServerlessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-opsworks/src/OpsWorksClient.ts b/clients/client-opsworks/src/OpsWorksClient.ts index bec44debaa30..bbb58d147bfc 100644 --- a/clients/client-opsworks/src/OpsWorksClient.ts +++ b/clients/client-opsworks/src/OpsWorksClient.ts @@ -209,6 +209,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -488,6 +489,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -518,6 +524,7 @@ export interface OpsWorksClientConfig extends OpsWorksClientConfigType {} */ export type OpsWorksClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -670,8 +677,9 @@ export class OpsWorksClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-opsworks/src/clientConfiguration.ts b/clients/client-opsworks/src/clientConfiguration.ts new file mode 100644 index 000000000000..f1010e7a7199 --- /dev/null +++ b/clients/client-opsworks/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OpsWorksClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-opsworks/src/runtimeConfig.shared.ts b/clients/client-opsworks/src/runtimeConfig.shared.ts index 2c901687ea29..10b1a32fcbba 100644 --- a/clients/client-opsworks/src/runtimeConfig.shared.ts +++ b/clients/client-opsworks/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OpsWorksClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OpsWorks", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-opsworks/src/runtimeExtensions.ts b/clients/client-opsworks/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9afe598b47c6 --- /dev/null +++ b/clients/client-opsworks/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OpsWorksClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OpsWorksClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OpsWorksClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-opsworkscm/src/OpsWorksCMClient.ts b/clients/client-opsworkscm/src/OpsWorksCMClient.ts index bb60e0af3619..65b85d898717 100644 --- a/clients/client-opsworkscm/src/OpsWorksCMClient.ts +++ b/clients/client-opsworkscm/src/OpsWorksCMClient.ts @@ -91,6 +91,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface OpsWorksCMClientConfig extends OpsWorksCMClientConfigType {} */ export type OpsWorksCMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -415,8 +422,9 @@ export class OpsWorksCMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-opsworkscm/src/clientConfiguration.ts b/clients/client-opsworkscm/src/clientConfiguration.ts new file mode 100644 index 000000000000..5df02cc6fd6e --- /dev/null +++ b/clients/client-opsworkscm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OpsWorksCMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-opsworkscm/src/runtimeConfig.shared.ts b/clients/client-opsworkscm/src/runtimeConfig.shared.ts index 91dc93b8f794..cf5d90f170a4 100644 --- a/clients/client-opsworkscm/src/runtimeConfig.shared.ts +++ b/clients/client-opsworkscm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OpsWorksCMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OpsWorksCM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-opsworkscm/src/runtimeExtensions.ts b/clients/client-opsworkscm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..333ea212d80b --- /dev/null +++ b/clients/client-opsworkscm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OpsWorksCMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OpsWorksCMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OpsWorksCMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-organizations/src/OrganizationsClient.ts b/clients/client-organizations/src/OrganizationsClient.ts index e78db1f88989..04ddfa8f6c14 100644 --- a/clients/client-organizations/src/OrganizationsClient.ts +++ b/clients/client-organizations/src/OrganizationsClient.ts @@ -193,6 +193,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -434,6 +435,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -464,6 +470,7 @@ export interface OrganizationsClientConfig extends OrganizationsClientConfigType */ export type OrganizationsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -573,8 +580,9 @@ export class OrganizationsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-organizations/src/clientConfiguration.ts b/clients/client-organizations/src/clientConfiguration.ts new file mode 100644 index 000000000000..5d383c807580 --- /dev/null +++ b/clients/client-organizations/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OrganizationsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-organizations/src/runtimeConfig.shared.ts b/clients/client-organizations/src/runtimeConfig.shared.ts index fd1250d7ca87..e3c0a3ab5f6b 100644 --- a/clients/client-organizations/src/runtimeConfig.shared.ts +++ b/clients/client-organizations/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OrganizationsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Organizations", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-organizations/src/runtimeExtensions.ts b/clients/client-organizations/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e31002c79fe0 --- /dev/null +++ b/clients/client-organizations/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OrganizationsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OrganizationsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OrganizationsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-osis/src/OSISClient.ts b/clients/client-osis/src/OSISClient.ts index 12311141e84c..3e5d936b67fb 100644 --- a/clients/client-osis/src/OSISClient.ts +++ b/clients/client-osis/src/OSISClient.ts @@ -83,6 +83,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -242,6 +243,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -272,6 +278,7 @@ export interface OSISClientConfig extends OSISClientConfigType {} */ export type OSISClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -312,8 +319,9 @@ export class OSISClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-osis/src/clientConfiguration.ts b/clients/client-osis/src/clientConfiguration.ts new file mode 100644 index 000000000000..85de18c2b4e2 --- /dev/null +++ b/clients/client-osis/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OSISClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-osis/src/runtimeConfig.shared.ts b/clients/client-osis/src/runtimeConfig.shared.ts index 2c9d43973c2c..d178460c3db3 100644 --- a/clients/client-osis/src/runtimeConfig.shared.ts +++ b/clients/client-osis/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OSISClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "OSIS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-osis/src/runtimeExtensions.ts b/clients/client-osis/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d8b763915118 --- /dev/null +++ b/clients/client-osis/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OSISClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OSISClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OSISClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-outposts/src/OutpostsClient.ts b/clients/client-outposts/src/OutpostsClient.ts index e3c5942a96ea..8c7780607d47 100644 --- a/clients/client-outposts/src/OutpostsClient.ts +++ b/clients/client-outposts/src/OutpostsClient.ts @@ -92,6 +92,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -275,6 +276,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -305,6 +311,7 @@ export interface OutpostsClientConfig extends OutpostsClientConfigType {} */ export type OutpostsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -347,8 +354,9 @@ export class OutpostsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-outposts/src/clientConfiguration.ts b/clients/client-outposts/src/clientConfiguration.ts new file mode 100644 index 000000000000..f28051c82f0f --- /dev/null +++ b/clients/client-outposts/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface OutpostsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-outposts/src/runtimeConfig.shared.ts b/clients/client-outposts/src/runtimeConfig.shared.ts index c7ef42b3264c..0ae6d17641a0 100644 --- a/clients/client-outposts/src/runtimeConfig.shared.ts +++ b/clients/client-outposts/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: OutpostsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Outposts", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-outposts/src/runtimeExtensions.ts b/clients/client-outposts/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9401bf4e15cf --- /dev/null +++ b/clients/client-outposts/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { OutpostsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: OutpostsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: OutpostsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-panorama/src/PanoramaClient.ts b/clients/client-panorama/src/PanoramaClient.ts index b7bc06c6000c..de3a2c436b13 100644 --- a/clients/client-panorama/src/PanoramaClient.ts +++ b/clients/client-panorama/src/PanoramaClient.ts @@ -151,6 +151,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -350,6 +351,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -380,6 +386,7 @@ export interface PanoramaClientConfig extends PanoramaClientConfigType {} */ export type PanoramaClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -423,8 +430,9 @@ export class PanoramaClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-panorama/src/clientConfiguration.ts b/clients/client-panorama/src/clientConfiguration.ts new file mode 100644 index 000000000000..cdbca14c1b66 --- /dev/null +++ b/clients/client-panorama/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PanoramaClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-panorama/src/runtimeConfig.shared.ts b/clients/client-panorama/src/runtimeConfig.shared.ts index 7911825a7e8d..8b5f464268e4 100644 --- a/clients/client-panorama/src/runtimeConfig.shared.ts +++ b/clients/client-panorama/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PanoramaClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Panorama", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-panorama/src/runtimeExtensions.ts b/clients/client-panorama/src/runtimeExtensions.ts new file mode 100644 index 000000000000..932894d17737 --- /dev/null +++ b/clients/client-panorama/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PanoramaClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PanoramaClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PanoramaClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-payment-cryptography-data/src/PaymentCryptographyDataClient.ts b/clients/client-payment-cryptography-data/src/PaymentCryptographyDataClient.ts index 6c8d257fd4fc..3252eea9330e 100644 --- a/clients/client-payment-cryptography-data/src/PaymentCryptographyDataClient.ts +++ b/clients/client-payment-cryptography-data/src/PaymentCryptographyDataClient.ts @@ -77,6 +77,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -230,6 +231,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -260,6 +266,7 @@ export interface PaymentCryptographyDataClientConfig extends PaymentCryptography */ export type PaymentCryptographyDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -299,8 +306,9 @@ export class PaymentCryptographyDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-payment-cryptography-data/src/clientConfiguration.ts b/clients/client-payment-cryptography-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..d78190f05cb8 --- /dev/null +++ b/clients/client-payment-cryptography-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PaymentCryptographyDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-payment-cryptography-data/src/runtimeConfig.shared.ts b/clients/client-payment-cryptography-data/src/runtimeConfig.shared.ts index 135aedbc7b6c..8dc4ae63fe2c 100644 --- a/clients/client-payment-cryptography-data/src/runtimeConfig.shared.ts +++ b/clients/client-payment-cryptography-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PaymentCryptographyDataClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Payment Cryptography Data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-payment-cryptography-data/src/runtimeExtensions.ts b/clients/client-payment-cryptography-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8aad673e28dd --- /dev/null +++ b/clients/client-payment-cryptography-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PaymentCryptographyDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PaymentCryptographyDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PaymentCryptographyDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-payment-cryptography/src/PaymentCryptographyClient.ts b/clients/client-payment-cryptography/src/PaymentCryptographyClient.ts index f85366a9200d..2cb3f6f05e63 100644 --- a/clients/client-payment-cryptography/src/PaymentCryptographyClient.ts +++ b/clients/client-payment-cryptography/src/PaymentCryptographyClient.ts @@ -89,6 +89,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface PaymentCryptographyClientConfig extends PaymentCryptographyClie */ export type PaymentCryptographyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -332,8 +339,9 @@ export class PaymentCryptographyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-payment-cryptography/src/clientConfiguration.ts b/clients/client-payment-cryptography/src/clientConfiguration.ts new file mode 100644 index 000000000000..916d62dca7d0 --- /dev/null +++ b/clients/client-payment-cryptography/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PaymentCryptographyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-payment-cryptography/src/runtimeConfig.shared.ts b/clients/client-payment-cryptography/src/runtimeConfig.shared.ts index 8f665c728d04..42facec3f476 100644 --- a/clients/client-payment-cryptography/src/runtimeConfig.shared.ts +++ b/clients/client-payment-cryptography/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PaymentCryptographyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Payment Cryptography", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-payment-cryptography/src/runtimeExtensions.ts b/clients/client-payment-cryptography/src/runtimeExtensions.ts new file mode 100644 index 000000000000..93d0e2a06d90 --- /dev/null +++ b/clients/client-payment-cryptography/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PaymentCryptographyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PaymentCryptographyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PaymentCryptographyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-personalize-events/src/PersonalizeEventsClient.ts b/clients/client-personalize-events/src/PersonalizeEventsClient.ts index 16f9703cf097..6da645bf87f2 100644 --- a/clients/client-personalize-events/src/PersonalizeEventsClient.ts +++ b/clients/client-personalize-events/src/PersonalizeEventsClient.ts @@ -60,6 +60,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -191,6 +192,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -221,6 +227,7 @@ export interface PersonalizeEventsClientConfig extends PersonalizeEventsClientCo */ export type PersonalizeEventsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -261,8 +268,9 @@ export class PersonalizeEventsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-personalize-events/src/clientConfiguration.ts b/clients/client-personalize-events/src/clientConfiguration.ts new file mode 100644 index 000000000000..41e7eb6576dc --- /dev/null +++ b/clients/client-personalize-events/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PersonalizeEventsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-personalize-events/src/runtimeConfig.shared.ts b/clients/client-personalize-events/src/runtimeConfig.shared.ts index 318434906875..2406748d8b8b 100644 --- a/clients/client-personalize-events/src/runtimeConfig.shared.ts +++ b/clients/client-personalize-events/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PersonalizeEventsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Personalize Events", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-personalize-events/src/runtimeExtensions.ts b/clients/client-personalize-events/src/runtimeExtensions.ts new file mode 100644 index 000000000000..295c442e8fa9 --- /dev/null +++ b/clients/client-personalize-events/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PersonalizeEventsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PersonalizeEventsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PersonalizeEventsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-personalize-runtime/src/PersonalizeRuntimeClient.ts b/clients/client-personalize-runtime/src/PersonalizeRuntimeClient.ts index cacf58d0ad65..bb228ccb058c 100644 --- a/clients/client-personalize-runtime/src/PersonalizeRuntimeClient.ts +++ b/clients/client-personalize-runtime/src/PersonalizeRuntimeClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -193,6 +194,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -223,6 +229,7 @@ export interface PersonalizeRuntimeClientConfig extends PersonalizeRuntimeClient */ export type PersonalizeRuntimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -261,8 +268,9 @@ export class PersonalizeRuntimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-personalize-runtime/src/clientConfiguration.ts b/clients/client-personalize-runtime/src/clientConfiguration.ts new file mode 100644 index 000000000000..83f181fe8b21 --- /dev/null +++ b/clients/client-personalize-runtime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PersonalizeRuntimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-personalize-runtime/src/runtimeConfig.shared.ts b/clients/client-personalize-runtime/src/runtimeConfig.shared.ts index 8fc307f840bb..dd666efa000d 100644 --- a/clients/client-personalize-runtime/src/runtimeConfig.shared.ts +++ b/clients/client-personalize-runtime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PersonalizeRuntimeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Personalize Runtime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-personalize-runtime/src/runtimeExtensions.ts b/clients/client-personalize-runtime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..29181e191de7 --- /dev/null +++ b/clients/client-personalize-runtime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PersonalizeRuntimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PersonalizeRuntimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PersonalizeRuntimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-personalize/src/PersonalizeClient.ts b/clients/client-personalize/src/PersonalizeClient.ts index 84b1e9bfc4c9..e68cf0f31eba 100644 --- a/clients/client-personalize/src/PersonalizeClient.ts +++ b/clients/client-personalize/src/PersonalizeClient.ts @@ -205,6 +205,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -470,6 +471,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -500,6 +506,7 @@ export interface PersonalizeClientConfig extends PersonalizeClientConfigType {} */ export type PersonalizeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -539,8 +546,9 @@ export class PersonalizeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-personalize/src/clientConfiguration.ts b/clients/client-personalize/src/clientConfiguration.ts new file mode 100644 index 000000000000..740eefe04047 --- /dev/null +++ b/clients/client-personalize/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PersonalizeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-personalize/src/runtimeConfig.shared.ts b/clients/client-personalize/src/runtimeConfig.shared.ts index b2a1ef58fb55..a1e8509cbedc 100644 --- a/clients/client-personalize/src/runtimeConfig.shared.ts +++ b/clients/client-personalize/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PersonalizeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Personalize", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-personalize/src/runtimeExtensions.ts b/clients/client-personalize/src/runtimeExtensions.ts new file mode 100644 index 000000000000..257aca658271 --- /dev/null +++ b/clients/client-personalize/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PersonalizeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PersonalizeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PersonalizeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pi/src/PIClient.ts b/clients/client-pi/src/PIClient.ts index 7fc21965f833..d952cce03630 100644 --- a/clients/client-pi/src/PIClient.ts +++ b/clients/client-pi/src/PIClient.ts @@ -100,6 +100,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface PIClientConfig extends PIClientConfigType {} */ export type PIClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -349,8 +356,9 @@ export class PIClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pi/src/clientConfiguration.ts b/clients/client-pi/src/clientConfiguration.ts new file mode 100644 index 000000000000..69946f921785 --- /dev/null +++ b/clients/client-pi/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PIClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pi/src/runtimeConfig.shared.ts b/clients/client-pi/src/runtimeConfig.shared.ts index 96a958805013..92fdf7c5666f 100644 --- a/clients/client-pi/src/runtimeConfig.shared.ts +++ b/clients/client-pi/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PIClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "PI", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pi/src/runtimeExtensions.ts b/clients/client-pi/src/runtimeExtensions.ts new file mode 100644 index 000000000000..59836869dcd5 --- /dev/null +++ b/clients/client-pi/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PIClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PIClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PIClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pinpoint-email/src/PinpointEmailClient.ts b/clients/client-pinpoint-email/src/PinpointEmailClient.ts index bf2826bea159..32015a6c1818 100644 --- a/clients/client-pinpoint-email/src/PinpointEmailClient.ts +++ b/clients/client-pinpoint-email/src/PinpointEmailClient.ts @@ -204,6 +204,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -419,6 +420,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -449,6 +455,7 @@ export interface PinpointEmailClientConfig extends PinpointEmailClientConfigType */ export type PinpointEmailClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -515,8 +522,9 @@ export class PinpointEmailClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pinpoint-email/src/clientConfiguration.ts b/clients/client-pinpoint-email/src/clientConfiguration.ts new file mode 100644 index 000000000000..7629e4216068 --- /dev/null +++ b/clients/client-pinpoint-email/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PinpointEmailClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pinpoint-email/src/runtimeConfig.shared.ts b/clients/client-pinpoint-email/src/runtimeConfig.shared.ts index f694a0ea0493..f2ab2df067bf 100644 --- a/clients/client-pinpoint-email/src/runtimeConfig.shared.ts +++ b/clients/client-pinpoint-email/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PinpointEmailClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pinpoint Email", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pinpoint-email/src/runtimeExtensions.ts b/clients/client-pinpoint-email/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f8a05768d8e1 --- /dev/null +++ b/clients/client-pinpoint-email/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PinpointEmailClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PinpointEmailClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PinpointEmailClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pinpoint-sms-voice-v2/src/PinpointSMSVoiceV2Client.ts b/clients/client-pinpoint-sms-voice-v2/src/PinpointSMSVoiceV2Client.ts index 3e5d9bdc0252..def5b2424a67 100644 --- a/clients/client-pinpoint-sms-voice-v2/src/PinpointSMSVoiceV2Client.ts +++ b/clients/client-pinpoint-sms-voice-v2/src/PinpointSMSVoiceV2Client.ts @@ -172,6 +172,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -389,6 +390,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -419,6 +425,7 @@ export interface PinpointSMSVoiceV2ClientConfig extends PinpointSMSVoiceV2Client */ export type PinpointSMSVoiceV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -472,8 +479,9 @@ export class PinpointSMSVoiceV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pinpoint-sms-voice-v2/src/clientConfiguration.ts b/clients/client-pinpoint-sms-voice-v2/src/clientConfiguration.ts new file mode 100644 index 000000000000..6bfacb5aef3c --- /dev/null +++ b/clients/client-pinpoint-sms-voice-v2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PinpointSMSVoiceV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pinpoint-sms-voice-v2/src/runtimeConfig.shared.ts b/clients/client-pinpoint-sms-voice-v2/src/runtimeConfig.shared.ts index 2e169305b14d..64dfa258833b 100644 --- a/clients/client-pinpoint-sms-voice-v2/src/runtimeConfig.shared.ts +++ b/clients/client-pinpoint-sms-voice-v2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PinpointSMSVoiceV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pinpoint SMS Voice V2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pinpoint-sms-voice-v2/src/runtimeExtensions.ts b/clients/client-pinpoint-sms-voice-v2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..68737ec24c50 --- /dev/null +++ b/clients/client-pinpoint-sms-voice-v2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PinpointSMSVoiceV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PinpointSMSVoiceV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PinpointSMSVoiceV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pinpoint-sms-voice/src/PinpointSMSVoiceClient.ts b/clients/client-pinpoint-sms-voice/src/PinpointSMSVoiceClient.ts index 76966251f19b..c4f01c6e93af 100644 --- a/clients/client-pinpoint-sms-voice/src/PinpointSMSVoiceClient.ts +++ b/clients/client-pinpoint-sms-voice/src/PinpointSMSVoiceClient.ts @@ -86,6 +86,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -233,6 +234,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -263,6 +269,7 @@ export interface PinpointSMSVoiceClientConfig extends PinpointSMSVoiceClientConf */ export type PinpointSMSVoiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -301,8 +308,9 @@ export class PinpointSMSVoiceClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pinpoint-sms-voice/src/clientConfiguration.ts b/clients/client-pinpoint-sms-voice/src/clientConfiguration.ts new file mode 100644 index 000000000000..fbad9230c578 --- /dev/null +++ b/clients/client-pinpoint-sms-voice/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PinpointSMSVoiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pinpoint-sms-voice/src/runtimeConfig.shared.ts b/clients/client-pinpoint-sms-voice/src/runtimeConfig.shared.ts index 306f92c820ae..7783ada6abab 100644 --- a/clients/client-pinpoint-sms-voice/src/runtimeConfig.shared.ts +++ b/clients/client-pinpoint-sms-voice/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PinpointSMSVoiceClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pinpoint SMS Voice", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pinpoint-sms-voice/src/runtimeExtensions.ts b/clients/client-pinpoint-sms-voice/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5c619ca05a29 --- /dev/null +++ b/clients/client-pinpoint-sms-voice/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PinpointSMSVoiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PinpointSMSVoiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PinpointSMSVoiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pinpoint/src/PinpointClient.ts b/clients/client-pinpoint/src/PinpointClient.ts index 914e8d18db12..84f15c3ad926 100644 --- a/clients/client-pinpoint/src/PinpointClient.ts +++ b/clients/client-pinpoint/src/PinpointClient.ts @@ -302,6 +302,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -677,6 +678,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -707,6 +713,7 @@ export interface PinpointClientConfig extends PinpointClientConfigType {} */ export type PinpointClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -745,8 +752,9 @@ export class PinpointClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pinpoint/src/clientConfiguration.ts b/clients/client-pinpoint/src/clientConfiguration.ts new file mode 100644 index 000000000000..83b58c4512bf --- /dev/null +++ b/clients/client-pinpoint/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PinpointClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pinpoint/src/runtimeConfig.shared.ts b/clients/client-pinpoint/src/runtimeConfig.shared.ts index e35d9dff7295..52d3d53093ff 100644 --- a/clients/client-pinpoint/src/runtimeConfig.shared.ts +++ b/clients/client-pinpoint/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PinpointClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pinpoint", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pinpoint/src/runtimeExtensions.ts b/clients/client-pinpoint/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3deff0dd5c6a --- /dev/null +++ b/clients/client-pinpoint/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PinpointClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PinpointClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PinpointClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pipes/src/PipesClient.ts b/clients/client-pipes/src/PipesClient.ts index 77b0407c4d38..79669ec22ad9 100644 --- a/clients/client-pipes/src/PipesClient.ts +++ b/clients/client-pipes/src/PipesClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface PipesClientConfig extends PipesClientConfigType {} */ export type PipesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -291,8 +298,9 @@ export class PipesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pipes/src/clientConfiguration.ts b/clients/client-pipes/src/clientConfiguration.ts new file mode 100644 index 000000000000..a83f41fa3509 --- /dev/null +++ b/clients/client-pipes/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PipesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pipes/src/runtimeConfig.shared.ts b/clients/client-pipes/src/runtimeConfig.shared.ts index 6cada0cd2654..0e2d2b445f2b 100644 --- a/clients/client-pipes/src/runtimeConfig.shared.ts +++ b/clients/client-pipes/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PipesClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pipes", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pipes/src/runtimeExtensions.ts b/clients/client-pipes/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4377830ee12f --- /dev/null +++ b/clients/client-pipes/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PipesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PipesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PipesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-polly/src/PollyClient.ts b/clients/client-polly/src/PollyClient.ts index 9b69b010226c..41e8bd20596c 100644 --- a/clients/client-polly/src/PollyClient.ts +++ b/clients/client-polly/src/PollyClient.ts @@ -76,6 +76,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -225,6 +226,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -261,6 +267,7 @@ export interface PollyClientConfig extends PollyClientConfigType {} */ export type PollyClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -304,8 +311,9 @@ export class PollyClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-polly/src/clientConfiguration.ts b/clients/client-polly/src/clientConfiguration.ts new file mode 100644 index 000000000000..244f5b89c5d0 --- /dev/null +++ b/clients/client-polly/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PollyClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-polly/src/runtimeConfig.shared.ts b/clients/client-polly/src/runtimeConfig.shared.ts index 5ae60ae94e04..01e7dcbfde44 100644 --- a/clients/client-polly/src/runtimeConfig.shared.ts +++ b/clients/client-polly/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: PollyClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "Polly", diff --git a/clients/client-polly/src/runtimeExtensions.ts b/clients/client-polly/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d393005a47bb --- /dev/null +++ b/clients/client-polly/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PollyClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PollyClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PollyClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-pricing/src/PricingClient.ts b/clients/client-pricing/src/PricingClient.ts index d0147ef8ae31..45d81fc1488f 100644 --- a/clients/client-pricing/src/PricingClient.ts +++ b/clients/client-pricing/src/PricingClient.ts @@ -65,6 +65,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -206,6 +207,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -236,6 +242,7 @@ export interface PricingClientConfig extends PricingClientConfigType {} */ export type PricingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -308,8 +315,9 @@ export class PricingClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-pricing/src/clientConfiguration.ts b/clients/client-pricing/src/clientConfiguration.ts new file mode 100644 index 000000000000..6e401076d6c9 --- /dev/null +++ b/clients/client-pricing/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PricingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-pricing/src/runtimeConfig.shared.ts b/clients/client-pricing/src/runtimeConfig.shared.ts index db51467b4016..330a2d345fa8 100644 --- a/clients/client-pricing/src/runtimeConfig.shared.ts +++ b/clients/client-pricing/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PricingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Pricing", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-pricing/src/runtimeExtensions.ts b/clients/client-pricing/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8f1d44beadd0 --- /dev/null +++ b/clients/client-pricing/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PricingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PricingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PricingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-privatenetworks/src/PrivateNetworksClient.ts b/clients/client-privatenetworks/src/PrivateNetworksClient.ts index 1ebedac8cd66..7d7d95e0090c 100644 --- a/clients/client-privatenetworks/src/PrivateNetworksClient.ts +++ b/clients/client-privatenetworks/src/PrivateNetworksClient.ts @@ -116,6 +116,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface PrivateNetworksClientConfig extends PrivateNetworksClientConfig */ export type PrivateNetworksClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -370,8 +377,9 @@ export class PrivateNetworksClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-privatenetworks/src/clientConfiguration.ts b/clients/client-privatenetworks/src/clientConfiguration.ts new file mode 100644 index 000000000000..e3c801abf82c --- /dev/null +++ b/clients/client-privatenetworks/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface PrivateNetworksClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-privatenetworks/src/runtimeConfig.shared.ts b/clients/client-privatenetworks/src/runtimeConfig.shared.ts index 032efd2456cb..f8d64f89c0bb 100644 --- a/clients/client-privatenetworks/src/runtimeConfig.shared.ts +++ b/clients/client-privatenetworks/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: PrivateNetworksClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "PrivateNetworks", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-privatenetworks/src/runtimeExtensions.ts b/clients/client-privatenetworks/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4dd12c9dc13b --- /dev/null +++ b/clients/client-privatenetworks/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { PrivateNetworksClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: PrivateNetworksClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: PrivateNetworksClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-proton/src/ProtonClient.ts b/clients/client-proton/src/ProtonClient.ts index 8b805f3e72e6..418fb38190ea 100644 --- a/clients/client-proton/src/ProtonClient.ts +++ b/clients/client-proton/src/ProtonClient.ts @@ -324,6 +324,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -629,6 +630,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -659,6 +665,7 @@ export interface ProtonClientConfig extends ProtonClientConfigType {} */ export type ProtonClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -825,8 +832,9 @@ export class ProtonClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-proton/src/clientConfiguration.ts b/clients/client-proton/src/clientConfiguration.ts new file mode 100644 index 000000000000..71d7842c5cbf --- /dev/null +++ b/clients/client-proton/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ProtonClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-proton/src/runtimeConfig.shared.ts b/clients/client-proton/src/runtimeConfig.shared.ts index 41cd2310342d..6a936e79d1f9 100644 --- a/clients/client-proton/src/runtimeConfig.shared.ts +++ b/clients/client-proton/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ProtonClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Proton", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-proton/src/runtimeExtensions.ts b/clients/client-proton/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5c22a6a479b1 --- /dev/null +++ b/clients/client-proton/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ProtonClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ProtonClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ProtonClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-qldb-session/src/QLDBSessionClient.ts b/clients/client-qldb-session/src/QLDBSessionClient.ts index b669b25fd867..d29c0b69cdb1 100644 --- a/clients/client-qldb-session/src/QLDBSessionClient.ts +++ b/clients/client-qldb-session/src/QLDBSessionClient.ts @@ -58,6 +58,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -189,6 +190,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -219,6 +225,7 @@ export interface QLDBSessionClientConfig extends QLDBSessionClientConfigType {} */ export type QLDBSessionClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -277,8 +284,9 @@ export class QLDBSessionClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-qldb-session/src/clientConfiguration.ts b/clients/client-qldb-session/src/clientConfiguration.ts new file mode 100644 index 000000000000..9679a85b2acd --- /dev/null +++ b/clients/client-qldb-session/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface QLDBSessionClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-qldb-session/src/runtimeConfig.shared.ts b/clients/client-qldb-session/src/runtimeConfig.shared.ts index d01a27f2b778..460aa70b568f 100644 --- a/clients/client-qldb-session/src/runtimeConfig.shared.ts +++ b/clients/client-qldb-session/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: QLDBSessionClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "QLDB Session", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-qldb-session/src/runtimeExtensions.ts b/clients/client-qldb-session/src/runtimeExtensions.ts new file mode 100644 index 000000000000..79c5596422b0 --- /dev/null +++ b/clients/client-qldb-session/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { QLDBSessionClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: QLDBSessionClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: QLDBSessionClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-qldb/src/QLDBClient.ts b/clients/client-qldb/src/QLDBClient.ts index 7233ac8cf883..2507b540bc8c 100644 --- a/clients/client-qldb/src/QLDBClient.ts +++ b/clients/client-qldb/src/QLDBClient.ts @@ -104,6 +104,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -275,6 +276,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -305,6 +311,7 @@ export interface QLDBClientConfig extends QLDBClientConfigType {} */ export type QLDBClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -343,8 +350,9 @@ export class QLDBClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-qldb/src/clientConfiguration.ts b/clients/client-qldb/src/clientConfiguration.ts new file mode 100644 index 000000000000..99f03947ad90 --- /dev/null +++ b/clients/client-qldb/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface QLDBClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-qldb/src/runtimeConfig.shared.ts b/clients/client-qldb/src/runtimeConfig.shared.ts index f403ae0f9e06..b0e6e1e401fc 100644 --- a/clients/client-qldb/src/runtimeConfig.shared.ts +++ b/clients/client-qldb/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: QLDBClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "QLDB", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-qldb/src/runtimeExtensions.ts b/clients/client-qldb/src/runtimeExtensions.ts new file mode 100644 index 000000000000..34ff1c4d0a77 --- /dev/null +++ b/clients/client-qldb/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { QLDBClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: QLDBClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: QLDBClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-quicksight/src/QuickSightClient.ts b/clients/client-quicksight/src/QuickSightClient.ts index b9eddbe4f808..ff4ff57df178 100644 --- a/clients/client-quicksight/src/QuickSightClient.ts +++ b/clients/client-quicksight/src/QuickSightClient.ts @@ -470,6 +470,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -923,6 +924,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -953,6 +959,7 @@ export interface QuickSightClientConfig extends QuickSightClientConfigType {} */ export type QuickSightClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -995,8 +1002,9 @@ export class QuickSightClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-quicksight/src/clientConfiguration.ts b/clients/client-quicksight/src/clientConfiguration.ts new file mode 100644 index 000000000000..9957273bff13 --- /dev/null +++ b/clients/client-quicksight/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface QuickSightClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-quicksight/src/runtimeConfig.shared.ts b/clients/client-quicksight/src/runtimeConfig.shared.ts index 4a53ca05ec5b..2e7fcbb24ce9 100644 --- a/clients/client-quicksight/src/runtimeConfig.shared.ts +++ b/clients/client-quicksight/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: QuickSightClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "QuickSight", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-quicksight/src/runtimeExtensions.ts b/clients/client-quicksight/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a2fde8ca7e85 --- /dev/null +++ b/clients/client-quicksight/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { QuickSightClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: QuickSightClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: QuickSightClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ram/src/RAMClient.ts b/clients/client-ram/src/RAMClient.ts index d0c1409a30bd..6f2194fed568 100644 --- a/clients/client-ram/src/RAMClient.ts +++ b/clients/client-ram/src/RAMClient.ts @@ -163,6 +163,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -362,6 +363,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -392,6 +398,7 @@ export interface RAMClientConfig extends RAMClientConfigType {} */ export type RAMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -449,8 +456,9 @@ export class RAMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ram/src/clientConfiguration.ts b/clients/client-ram/src/clientConfiguration.ts new file mode 100644 index 000000000000..20b7a3f84adb --- /dev/null +++ b/clients/client-ram/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RAMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ram/src/runtimeConfig.shared.ts b/clients/client-ram/src/runtimeConfig.shared.ts index e2dc23dca3ef..3a6b51a0e147 100644 --- a/clients/client-ram/src/runtimeConfig.shared.ts +++ b/clients/client-ram/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RAMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RAM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ram/src/runtimeExtensions.ts b/clients/client-ram/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c825078fee58 --- /dev/null +++ b/clients/client-ram/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RAMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RAMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RAMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rbin/src/RbinClient.ts b/clients/client-rbin/src/RbinClient.ts index 81a4ab333c11..675745610a95 100644 --- a/clients/client-rbin/src/RbinClient.ts +++ b/clients/client-rbin/src/RbinClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface RbinClientConfig extends RbinClientConfigType {} */ export type RbinClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -302,8 +309,9 @@ export class RbinClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rbin/src/clientConfiguration.ts b/clients/client-rbin/src/clientConfiguration.ts new file mode 100644 index 000000000000..f0cf6fc68190 --- /dev/null +++ b/clients/client-rbin/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RbinClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rbin/src/runtimeConfig.shared.ts b/clients/client-rbin/src/runtimeConfig.shared.ts index 639635ce7f47..1acf9265daee 100644 --- a/clients/client-rbin/src/runtimeConfig.shared.ts +++ b/clients/client-rbin/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RbinClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "rbin", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rbin/src/runtimeExtensions.ts b/clients/client-rbin/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e91bbbad4405 --- /dev/null +++ b/clients/client-rbin/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RbinClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RbinClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RbinClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rds-data/src/RDSDataClient.ts b/clients/client-rds-data/src/RDSDataClient.ts index 01f993f54dc5..48422abbade9 100644 --- a/clients/client-rds-data/src/RDSDataClient.ts +++ b/clients/client-rds-data/src/RDSDataClient.ts @@ -69,6 +69,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -212,6 +213,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -242,6 +248,7 @@ export interface RDSDataClientConfig extends RDSDataClientConfigType {} */ export type RDSDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -288,8 +295,9 @@ export class RDSDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rds-data/src/clientConfiguration.ts b/clients/client-rds-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..f004bd6a1633 --- /dev/null +++ b/clients/client-rds-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RDSDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rds-data/src/runtimeConfig.shared.ts b/clients/client-rds-data/src/runtimeConfig.shared.ts index 469904df8f88..a2e0313ad22a 100644 --- a/clients/client-rds-data/src/runtimeConfig.shared.ts +++ b/clients/client-rds-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RDSDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RDS Data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rds-data/src/runtimeExtensions.ts b/clients/client-rds-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..82329d2c6462 --- /dev/null +++ b/clients/client-rds-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RDSDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RDSDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RDSDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rds/src/RDSClient.ts b/clients/client-rds/src/RDSClient.ts index bec434f91ba9..de237d0b27e9 100644 --- a/clients/client-rds/src/RDSClient.ts +++ b/clients/client-rds/src/RDSClient.ts @@ -521,6 +521,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -938,6 +939,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -968,6 +974,7 @@ export interface RDSClientConfig extends RDSClientConfigType {} */ export type RDSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1058,8 +1065,9 @@ export class RDSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rds/src/clientConfiguration.ts b/clients/client-rds/src/clientConfiguration.ts new file mode 100644 index 000000000000..9853103b2578 --- /dev/null +++ b/clients/client-rds/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RDSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rds/src/runtimeConfig.shared.ts b/clients/client-rds/src/runtimeConfig.shared.ts index b099ad27f843..c0939a3921a6 100644 --- a/clients/client-rds/src/runtimeConfig.shared.ts +++ b/clients/client-rds/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RDSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RDS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rds/src/runtimeExtensions.ts b/clients/client-rds/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4d585748b686 --- /dev/null +++ b/clients/client-rds/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RDSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RDSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RDSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-redshift-data/src/RedshiftDataClient.ts b/clients/client-redshift-data/src/RedshiftDataClient.ts index 9f62d7ca76b2..f8635af19d7b 100644 --- a/clients/client-redshift-data/src/RedshiftDataClient.ts +++ b/clients/client-redshift-data/src/RedshiftDataClient.ts @@ -70,6 +70,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface RedshiftDataClientConfig extends RedshiftDataClientConfigType { */ export type RedshiftDataClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -293,8 +300,9 @@ export class RedshiftDataClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-redshift-data/src/clientConfiguration.ts b/clients/client-redshift-data/src/clientConfiguration.ts new file mode 100644 index 000000000000..2ff9ad36523b --- /dev/null +++ b/clients/client-redshift-data/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RedshiftDataClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-redshift-data/src/runtimeConfig.shared.ts b/clients/client-redshift-data/src/runtimeConfig.shared.ts index 678f7056c972..98f54d5d7494 100644 --- a/clients/client-redshift-data/src/runtimeConfig.shared.ts +++ b/clients/client-redshift-data/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RedshiftDataClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Redshift Data", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-redshift-data/src/runtimeExtensions.ts b/clients/client-redshift-data/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6e2adab357f2 --- /dev/null +++ b/clients/client-redshift-data/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RedshiftDataClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RedshiftDataClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RedshiftDataClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-redshift-serverless/src/RedshiftServerlessClient.ts b/clients/client-redshift-serverless/src/RedshiftServerlessClient.ts index 173b7cdad140..8745b4560634 100644 --- a/clients/client-redshift-serverless/src/RedshiftServerlessClient.ts +++ b/clients/client-redshift-serverless/src/RedshiftServerlessClient.ts @@ -130,6 +130,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -341,6 +342,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -371,6 +377,7 @@ export interface RedshiftServerlessClientConfig extends RedshiftServerlessClient */ export type RedshiftServerlessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -420,8 +427,9 @@ export class RedshiftServerlessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-redshift-serverless/src/clientConfiguration.ts b/clients/client-redshift-serverless/src/clientConfiguration.ts new file mode 100644 index 000000000000..3c973b9931d7 --- /dev/null +++ b/clients/client-redshift-serverless/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RedshiftServerlessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-redshift-serverless/src/runtimeConfig.shared.ts b/clients/client-redshift-serverless/src/runtimeConfig.shared.ts index 266d5f7c1569..9be0e03548b0 100644 --- a/clients/client-redshift-serverless/src/runtimeConfig.shared.ts +++ b/clients/client-redshift-serverless/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RedshiftServerlessClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Redshift Serverless", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-redshift-serverless/src/runtimeExtensions.ts b/clients/client-redshift-serverless/src/runtimeExtensions.ts new file mode 100644 index 000000000000..98eb88a44651 --- /dev/null +++ b/clients/client-redshift-serverless/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RedshiftServerlessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RedshiftServerlessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RedshiftServerlessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-redshift/src/RedshiftClient.ts b/clients/client-redshift/src/RedshiftClient.ts index fc46fe21b46c..cd3cc711dcd2 100644 --- a/clients/client-redshift/src/RedshiftClient.ts +++ b/clients/client-redshift/src/RedshiftClient.ts @@ -468,6 +468,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -845,6 +846,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -875,6 +881,7 @@ export interface RedshiftClientConfig extends RedshiftClientConfigType {} */ export type RedshiftClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -933,8 +940,9 @@ export class RedshiftClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-redshift/src/clientConfiguration.ts b/clients/client-redshift/src/clientConfiguration.ts new file mode 100644 index 000000000000..0090f8438f63 --- /dev/null +++ b/clients/client-redshift/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RedshiftClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-redshift/src/runtimeConfig.shared.ts b/clients/client-redshift/src/runtimeConfig.shared.ts index 92b7538b0fab..e341f2f94fb6 100644 --- a/clients/client-redshift/src/runtimeConfig.shared.ts +++ b/clients/client-redshift/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RedshiftClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Redshift", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-redshift/src/runtimeExtensions.ts b/clients/client-redshift/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8fd4650e4a87 --- /dev/null +++ b/clients/client-redshift/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RedshiftClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RedshiftClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RedshiftClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rekognition/src/RekognitionClient.ts b/clients/client-rekognition/src/RekognitionClient.ts index 665aeebcfb24..f5d67db039fb 100644 --- a/clients/client-rekognition/src/RekognitionClient.ts +++ b/clients/client-rekognition/src/RekognitionClient.ts @@ -216,6 +216,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -491,6 +492,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -521,6 +527,7 @@ export interface RekognitionClientConfig extends RekognitionClientConfigType {} */ export type RekognitionClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -917,8 +924,9 @@ export class RekognitionClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rekognition/src/clientConfiguration.ts b/clients/client-rekognition/src/clientConfiguration.ts new file mode 100644 index 000000000000..749b3f18157c --- /dev/null +++ b/clients/client-rekognition/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RekognitionClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rekognition/src/commands/CopyProjectVersionCommand.ts b/clients/client-rekognition/src/commands/CopyProjectVersionCommand.ts index 34f039e8b2b5..23a17591b041 100644 --- a/clients/client-rekognition/src/commands/CopyProjectVersionCommand.ts +++ b/clients/client-rekognition/src/commands/CopyProjectVersionCommand.ts @@ -128,7 +128,7 @@ export interface CopyProjectVersionCommandOutput extends CopyProjectVersionRespo * * @example CopyProjectVersion * ```javascript - * // This operation copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination project. + * // Copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination project. * const input = { * "DestinationProjectArn": "arn:aws:rekognition:us-east-1:555555555555:project/DestinationProject/1656705098765", * "KmsKeyId": "arn:1234abcd-12ab-34cd-56ef-1234567890ab", diff --git a/clients/client-rekognition/src/runtimeConfig.shared.ts b/clients/client-rekognition/src/runtimeConfig.shared.ts index 2135fa1e74c1..2b8a49ca3c32 100644 --- a/clients/client-rekognition/src/runtimeConfig.shared.ts +++ b/clients/client-rekognition/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RekognitionClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Rekognition", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rekognition/src/runtimeExtensions.ts b/clients/client-rekognition/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7ecd9ac013f6 --- /dev/null +++ b/clients/client-rekognition/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RekognitionClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RekognitionClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RekognitionClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts b/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts index cfefa1bc20db..eef284fd9c97 100644 --- a/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts +++ b/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts @@ -76,6 +76,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -213,6 +214,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -251,6 +257,7 @@ export interface RekognitionStreamingClientConfig extends RekognitionStreamingCl */ export type RekognitionStreamingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -316,8 +323,9 @@ export class RekognitionStreamingClient extends __Client< const _config_8 = resolveWebSocketConfig(_config_7); const _config_9 = resolveUserAgentConfig(_config_8); const _config_10 = resolveEventStreamSerdeConfig(_config_9); - super(_config_10); - this.config = _config_10; + const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []); + super(_config_11); + this.config = _config_11; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rekognitionstreaming/src/clientConfiguration.ts b/clients/client-rekognitionstreaming/src/clientConfiguration.ts new file mode 100644 index 000000000000..d69fe9e0747e --- /dev/null +++ b/clients/client-rekognitionstreaming/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RekognitionStreamingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rekognitionstreaming/src/runtimeConfig.shared.ts b/clients/client-rekognitionstreaming/src/runtimeConfig.shared.ts index 53b36922e2c9..403a4f7b11f5 100644 --- a/clients/client-rekognitionstreaming/src/runtimeConfig.shared.ts +++ b/clients/client-rekognitionstreaming/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RekognitionStreamingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RekognitionStreaming", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rekognitionstreaming/src/runtimeExtensions.ts b/clients/client-rekognitionstreaming/src/runtimeExtensions.ts new file mode 100644 index 000000000000..43d3f7e10ae1 --- /dev/null +++ b/clients/client-rekognitionstreaming/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RekognitionStreamingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RekognitionStreamingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RekognitionStreamingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-resiliencehub/src/ResiliencehubClient.ts b/clients/client-resiliencehub/src/ResiliencehubClient.ts index 2f0206da446c..bd5923152b38 100644 --- a/clients/client-resiliencehub/src/ResiliencehubClient.ts +++ b/clients/client-resiliencehub/src/ResiliencehubClient.ts @@ -234,6 +234,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -473,6 +474,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -503,6 +509,7 @@ export interface ResiliencehubClientConfig extends ResiliencehubClientConfigType */ export type ResiliencehubClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -545,8 +552,9 @@ export class ResiliencehubClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-resiliencehub/src/clientConfiguration.ts b/clients/client-resiliencehub/src/clientConfiguration.ts new file mode 100644 index 000000000000..f5c72b22f908 --- /dev/null +++ b/clients/client-resiliencehub/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ResiliencehubClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-resiliencehub/src/runtimeConfig.shared.ts b/clients/client-resiliencehub/src/runtimeConfig.shared.ts index 541f57dc1c12..3ae8dcf3836a 100644 --- a/clients/client-resiliencehub/src/runtimeConfig.shared.ts +++ b/clients/client-resiliencehub/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ResiliencehubClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "resiliencehub", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-resiliencehub/src/runtimeExtensions.ts b/clients/client-resiliencehub/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c4f85de62c59 --- /dev/null +++ b/clients/client-resiliencehub/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ResiliencehubClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ResiliencehubClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ResiliencehubClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-resource-explorer-2/src/ResourceExplorer2Client.ts b/clients/client-resource-explorer-2/src/ResourceExplorer2Client.ts index 34e2790ca859..c23541ac956d 100644 --- a/clients/client-resource-explorer-2/src/ResourceExplorer2Client.ts +++ b/clients/client-resource-explorer-2/src/ResourceExplorer2Client.ts @@ -88,6 +88,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -257,6 +258,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -287,6 +293,7 @@ export interface ResourceExplorer2ClientConfig extends ResourceExplorer2ClientCo */ export type ResourceExplorer2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -345,8 +352,9 @@ export class ResourceExplorer2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-resource-explorer-2/src/clientConfiguration.ts b/clients/client-resource-explorer-2/src/clientConfiguration.ts new file mode 100644 index 000000000000..b4c59cb04371 --- /dev/null +++ b/clients/client-resource-explorer-2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ResourceExplorer2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-resource-explorer-2/src/runtimeConfig.shared.ts b/clients/client-resource-explorer-2/src/runtimeConfig.shared.ts index 41f6a250acb6..8b1d6d1c76a3 100644 --- a/clients/client-resource-explorer-2/src/runtimeConfig.shared.ts +++ b/clients/client-resource-explorer-2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ResourceExplorer2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Resource Explorer 2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-resource-explorer-2/src/runtimeExtensions.ts b/clients/client-resource-explorer-2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4c9741a76346 --- /dev/null +++ b/clients/client-resource-explorer-2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ResourceExplorer2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ResourceExplorer2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ResourceExplorer2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-resource-groups-tagging-api/src/ResourceGroupsTaggingAPIClient.ts b/clients/client-resource-groups-tagging-api/src/ResourceGroupsTaggingAPIClient.ts index 7c7fd456af47..39ad9c1eae78 100644 --- a/clients/client-resource-groups-tagging-api/src/ResourceGroupsTaggingAPIClient.ts +++ b/clients/client-resource-groups-tagging-api/src/ResourceGroupsTaggingAPIClient.ts @@ -74,6 +74,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -251,6 +257,7 @@ export interface ResourceGroupsTaggingAPIClientConfig extends ResourceGroupsTagg */ export type ResourceGroupsTaggingAPIClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -290,8 +297,9 @@ export class ResourceGroupsTaggingAPIClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-resource-groups-tagging-api/src/clientConfiguration.ts b/clients/client-resource-groups-tagging-api/src/clientConfiguration.ts new file mode 100644 index 000000000000..5aac293bc8c9 --- /dev/null +++ b/clients/client-resource-groups-tagging-api/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ResourceGroupsTaggingAPIClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-resource-groups-tagging-api/src/runtimeConfig.shared.ts b/clients/client-resource-groups-tagging-api/src/runtimeConfig.shared.ts index 0aab713a71c6..ea5f72f24127 100644 --- a/clients/client-resource-groups-tagging-api/src/runtimeConfig.shared.ts +++ b/clients/client-resource-groups-tagging-api/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ResourceGroupsTaggingAPIClientConfig) = base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Resource Groups Tagging API", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-resource-groups-tagging-api/src/runtimeExtensions.ts b/clients/client-resource-groups-tagging-api/src/runtimeExtensions.ts new file mode 100644 index 000000000000..537f5e19f5e8 --- /dev/null +++ b/clients/client-resource-groups-tagging-api/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ResourceGroupsTaggingAPIClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ResourceGroupsTaggingAPIClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ResourceGroupsTaggingAPIClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-resource-groups/src/ResourceGroupsClient.ts b/clients/client-resource-groups/src/ResourceGroupsClient.ts index f45db6de91f2..1e3b5cda0900 100644 --- a/clients/client-resource-groups/src/ResourceGroupsClient.ts +++ b/clients/client-resource-groups/src/ResourceGroupsClient.ts @@ -84,6 +84,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -251,6 +252,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -281,6 +287,7 @@ export interface ResourceGroupsClientConfig extends ResourceGroupsClientConfigTy */ export type ResourceGroupsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -352,8 +359,9 @@ export class ResourceGroupsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-resource-groups/src/clientConfiguration.ts b/clients/client-resource-groups/src/clientConfiguration.ts new file mode 100644 index 000000000000..486b6322f282 --- /dev/null +++ b/clients/client-resource-groups/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ResourceGroupsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-resource-groups/src/runtimeConfig.shared.ts b/clients/client-resource-groups/src/runtimeConfig.shared.ts index 167e0027776f..4f4fc141a3df 100644 --- a/clients/client-resource-groups/src/runtimeConfig.shared.ts +++ b/clients/client-resource-groups/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ResourceGroupsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Resource Groups", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-resource-groups/src/runtimeExtensions.ts b/clients/client-resource-groups/src/runtimeExtensions.ts new file mode 100644 index 000000000000..87ad4668af8b --- /dev/null +++ b/clients/client-resource-groups/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ResourceGroupsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ResourceGroupsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ResourceGroupsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-robomaker/src/RoboMakerClient.ts b/clients/client-robomaker/src/RoboMakerClient.ts index db4539876147..205030e155ea 100644 --- a/clients/client-robomaker/src/RoboMakerClient.ts +++ b/clients/client-robomaker/src/RoboMakerClient.ts @@ -228,6 +228,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -473,6 +474,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -503,6 +509,7 @@ export interface RoboMakerClientConfig extends RoboMakerClientConfigType {} */ export type RoboMakerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -541,8 +548,9 @@ export class RoboMakerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-robomaker/src/clientConfiguration.ts b/clients/client-robomaker/src/clientConfiguration.ts new file mode 100644 index 000000000000..d576ad26fbf6 --- /dev/null +++ b/clients/client-robomaker/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RoboMakerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-robomaker/src/runtimeConfig.shared.ts b/clients/client-robomaker/src/runtimeConfig.shared.ts index a1c9a3b86098..cca07b0a9870 100644 --- a/clients/client-robomaker/src/runtimeConfig.shared.ts +++ b/clients/client-robomaker/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RoboMakerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RoboMaker", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-robomaker/src/runtimeExtensions.ts b/clients/client-robomaker/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7c9a7c1073d0 --- /dev/null +++ b/clients/client-robomaker/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RoboMakerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RoboMakerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RoboMakerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rolesanywhere/src/RolesAnywhereClient.ts b/clients/client-rolesanywhere/src/RolesAnywhereClient.ts index ca518a5b1493..7f880f1ce011 100644 --- a/clients/client-rolesanywhere/src/RolesAnywhereClient.ts +++ b/clients/client-rolesanywhere/src/RolesAnywhereClient.ts @@ -94,6 +94,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -281,6 +282,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -311,6 +317,7 @@ export interface RolesAnywhereClientConfig extends RolesAnywhereClientConfigType */ export type RolesAnywhereClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -363,8 +370,9 @@ export class RolesAnywhereClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rolesanywhere/src/clientConfiguration.ts b/clients/client-rolesanywhere/src/clientConfiguration.ts new file mode 100644 index 000000000000..b4d44f97dc0c --- /dev/null +++ b/clients/client-rolesanywhere/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RolesAnywhereClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rolesanywhere/src/runtimeConfig.shared.ts b/clients/client-rolesanywhere/src/runtimeConfig.shared.ts index 4231d188df69..968e4cae950d 100644 --- a/clients/client-rolesanywhere/src/runtimeConfig.shared.ts +++ b/clients/client-rolesanywhere/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RolesAnywhereClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RolesAnywhere", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rolesanywhere/src/runtimeExtensions.ts b/clients/client-rolesanywhere/src/runtimeExtensions.ts new file mode 100644 index 000000000000..786164e238f7 --- /dev/null +++ b/clients/client-rolesanywhere/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RolesAnywhereClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RolesAnywhereClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RolesAnywhereClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route-53-domains/src/Route53DomainsClient.ts b/clients/client-route-53-domains/src/Route53DomainsClient.ts index 6a82a40d1120..805ca0f2a447 100644 --- a/clients/client-route-53-domains/src/Route53DomainsClient.ts +++ b/clients/client-route-53-domains/src/Route53DomainsClient.ts @@ -157,6 +157,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -356,6 +357,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -386,6 +392,7 @@ export interface Route53DomainsClientConfig extends Route53DomainsClientConfigTy */ export type Route53DomainsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -425,8 +432,9 @@ export class Route53DomainsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route-53-domains/src/clientConfiguration.ts b/clients/client-route-53-domains/src/clientConfiguration.ts new file mode 100644 index 000000000000..9f9ebd7bf9fc --- /dev/null +++ b/clients/client-route-53-domains/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53DomainsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route-53-domains/src/runtimeConfig.shared.ts b/clients/client-route-53-domains/src/runtimeConfig.shared.ts index ce7962b29b3a..2fc48785a264 100644 --- a/clients/client-route-53-domains/src/runtimeConfig.shared.ts +++ b/clients/client-route-53-domains/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53DomainsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route 53 Domains", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route-53-domains/src/runtimeExtensions.ts b/clients/client-route-53-domains/src/runtimeExtensions.ts new file mode 100644 index 000000000000..78b55da688c6 --- /dev/null +++ b/clients/client-route-53-domains/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53DomainsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53DomainsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53DomainsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route-53/src/Route53Client.ts b/clients/client-route-53/src/Route53Client.ts index ac2af5531484..d4a09ba4b460 100644 --- a/clients/client-route-53/src/Route53Client.ts +++ b/clients/client-route-53/src/Route53Client.ts @@ -274,6 +274,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -545,6 +546,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -575,6 +581,7 @@ export interface Route53ClientConfig extends Route53ClientConfigType {} */ export type Route53ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -629,8 +636,9 @@ export class Route53Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route-53/src/clientConfiguration.ts b/clients/client-route-53/src/clientConfiguration.ts new file mode 100644 index 000000000000..caff64295bbc --- /dev/null +++ b/clients/client-route-53/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route-53/src/runtimeConfig.shared.ts b/clients/client-route-53/src/runtimeConfig.shared.ts index 67dd82b19331..22908c429fb4 100644 --- a/clients/client-route-53/src/runtimeConfig.shared.ts +++ b/clients/client-route-53/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route 53", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route-53/src/runtimeExtensions.ts b/clients/client-route-53/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ad1e311c22d4 --- /dev/null +++ b/clients/client-route-53/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route53-recovery-cluster/src/Route53RecoveryClusterClient.ts b/clients/client-route53-recovery-cluster/src/Route53RecoveryClusterClient.ts index e24dee93cbbe..5c6d7d6c4f98 100644 --- a/clients/client-route53-recovery-cluster/src/Route53RecoveryClusterClient.ts +++ b/clients/client-route53-recovery-cluster/src/Route53RecoveryClusterClient.ts @@ -73,6 +73,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -212,6 +213,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -242,6 +248,7 @@ export interface Route53RecoveryClusterClientConfig extends Route53RecoveryClust */ export type Route53RecoveryClusterClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -319,8 +326,9 @@ export class Route53RecoveryClusterClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route53-recovery-cluster/src/clientConfiguration.ts b/clients/client-route53-recovery-cluster/src/clientConfiguration.ts new file mode 100644 index 000000000000..3ce2462777f6 --- /dev/null +++ b/clients/client-route53-recovery-cluster/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53RecoveryClusterClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route53-recovery-cluster/src/runtimeConfig.shared.ts b/clients/client-route53-recovery-cluster/src/runtimeConfig.shared.ts index 65bf9d8c2f21..d4586f6e8499 100644 --- a/clients/client-route53-recovery-cluster/src/runtimeConfig.shared.ts +++ b/clients/client-route53-recovery-cluster/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53RecoveryClusterClientConfig) => base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route53 Recovery Cluster", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route53-recovery-cluster/src/runtimeExtensions.ts b/clients/client-route53-recovery-cluster/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0aab9753647d --- /dev/null +++ b/clients/client-route53-recovery-cluster/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53RecoveryClusterClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53RecoveryClusterClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53RecoveryClusterClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts index 8fbec71323fa..125616ea1561 100644 --- a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts +++ b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts @@ -104,6 +104,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -281,6 +282,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -311,6 +317,7 @@ export interface Route53RecoveryControlConfigClientConfig extends Route53Recover */ export type Route53RecoveryControlConfigClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -350,8 +357,9 @@ export class Route53RecoveryControlConfigClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route53-recovery-control-config/src/clientConfiguration.ts b/clients/client-route53-recovery-control-config/src/clientConfiguration.ts new file mode 100644 index 000000000000..c7cd21e0d71b --- /dev/null +++ b/clients/client-route53-recovery-control-config/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53RecoveryControlConfigClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route53-recovery-control-config/src/runtimeConfig.shared.ts b/clients/client-route53-recovery-control-config/src/runtimeConfig.shared.ts index 62c2ef37ba3a..7515582bc5de 100644 --- a/clients/client-route53-recovery-control-config/src/runtimeConfig.shared.ts +++ b/clients/client-route53-recovery-control-config/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53RecoveryControlConfigClientConfi base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route53 Recovery Control Config", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route53-recovery-control-config/src/runtimeExtensions.ts b/clients/client-route53-recovery-control-config/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d4d71286dbc9 --- /dev/null +++ b/clients/client-route53-recovery-control-config/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53RecoveryControlConfigClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53RecoveryControlConfigClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53RecoveryControlConfigClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route53-recovery-readiness/src/Route53RecoveryReadinessClient.ts b/clients/client-route53-recovery-readiness/src/Route53RecoveryReadinessClient.ts index c2b76b8791ab..5a4b93d80b36 100644 --- a/clients/client-route53-recovery-readiness/src/Route53RecoveryReadinessClient.ts +++ b/clients/client-route53-recovery-readiness/src/Route53RecoveryReadinessClient.ts @@ -137,6 +137,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -332,6 +333,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -362,6 +368,7 @@ export interface Route53RecoveryReadinessClientConfig extends Route53RecoveryRea */ export type Route53RecoveryReadinessClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -401,8 +408,9 @@ export class Route53RecoveryReadinessClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route53-recovery-readiness/src/clientConfiguration.ts b/clients/client-route53-recovery-readiness/src/clientConfiguration.ts new file mode 100644 index 000000000000..457cd124e618 --- /dev/null +++ b/clients/client-route53-recovery-readiness/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53RecoveryReadinessClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route53-recovery-readiness/src/runtimeConfig.shared.ts b/clients/client-route53-recovery-readiness/src/runtimeConfig.shared.ts index 646a22a28914..39784ee2eff0 100644 --- a/clients/client-route53-recovery-readiness/src/runtimeConfig.shared.ts +++ b/clients/client-route53-recovery-readiness/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53RecoveryReadinessClientConfig) = base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route53 Recovery Readiness", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route53-recovery-readiness/src/runtimeExtensions.ts b/clients/client-route53-recovery-readiness/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d8f3918b87b1 --- /dev/null +++ b/clients/client-route53-recovery-readiness/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53RecoveryReadinessClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53RecoveryReadinessClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53RecoveryReadinessClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-route53resolver/src/Route53ResolverClient.ts b/clients/client-route53resolver/src/Route53ResolverClient.ts index 9fb6707af7ad..b6d994d3a036 100644 --- a/clients/client-route53resolver/src/Route53ResolverClient.ts +++ b/clients/client-route53resolver/src/Route53ResolverClient.ts @@ -287,6 +287,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -554,6 +555,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -584,6 +590,7 @@ export interface Route53ResolverClientConfig extends Route53ResolverClientConfig */ export type Route53ResolverClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -648,8 +655,9 @@ export class Route53ResolverClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-route53resolver/src/clientConfiguration.ts b/clients/client-route53resolver/src/clientConfiguration.ts new file mode 100644 index 000000000000..b695258bbc4a --- /dev/null +++ b/clients/client-route53resolver/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface Route53ResolverClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-route53resolver/src/runtimeConfig.shared.ts b/clients/client-route53resolver/src/runtimeConfig.shared.ts index b4ea07c56bd4..632025c2dbca 100644 --- a/clients/client-route53resolver/src/runtimeConfig.shared.ts +++ b/clients/client-route53resolver/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: Route53ResolverClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Route53Resolver", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-route53resolver/src/runtimeExtensions.ts b/clients/client-route53resolver/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2d969880a755 --- /dev/null +++ b/clients/client-route53resolver/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { Route53ResolverClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: Route53ResolverClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: Route53ResolverClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-rum/src/RUMClient.ts b/clients/client-rum/src/RUMClient.ts index fde8f5048ab3..23a32e54cd3d 100644 --- a/clients/client-rum/src/RUMClient.ts +++ b/clients/client-rum/src/RUMClient.ts @@ -98,6 +98,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -263,6 +264,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -293,6 +299,7 @@ export interface RUMClientConfig extends RUMClientConfigType {} */ export type RUMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -338,8 +345,9 @@ export class RUMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-rum/src/clientConfiguration.ts b/clients/client-rum/src/clientConfiguration.ts new file mode 100644 index 000000000000..6bd42c152dd5 --- /dev/null +++ b/clients/client-rum/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RUMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-rum/src/runtimeConfig.shared.ts b/clients/client-rum/src/runtimeConfig.shared.ts index 6f17856ccbaa..259b0756d2a1 100644 --- a/clients/client-rum/src/runtimeConfig.shared.ts +++ b/clients/client-rum/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RUMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "RUM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-rum/src/runtimeExtensions.ts b/clients/client-rum/src/runtimeExtensions.ts new file mode 100644 index 000000000000..800b7e02ba57 --- /dev/null +++ b/clients/client-rum/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RUMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RUMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RUMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-s3-control/src/S3ControlClient.ts b/clients/client-s3-control/src/S3ControlClient.ts index e7fd4c4af39e..f34705d7a4e4 100644 --- a/clients/client-s3-control/src/S3ControlClient.ts +++ b/clients/client-s3-control/src/S3ControlClient.ts @@ -261,6 +261,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -520,6 +521,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * A function that, given a hash constructor and a stream, calculates the * hash of the streamed value. @@ -565,6 +571,7 @@ export interface S3ControlClientConfig extends S3ControlClientConfigType {} */ export type S3ControlClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -605,8 +612,9 @@ export class S3ControlClient extends __Client< const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveS3ControlConfig(_config_6); const _config_8 = resolveUserAgentConfig(_config_7); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-s3-control/src/clientConfiguration.ts b/clients/client-s3-control/src/clientConfiguration.ts new file mode 100644 index 000000000000..0d576b034871 --- /dev/null +++ b/clients/client-s3-control/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface S3ControlClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-s3-control/src/runtimeConfig.shared.ts b/clients/client-s3-control/src/runtimeConfig.shared.ts index ae190ad2662d..2a8c8e002ef2 100644 --- a/clients/client-s3-control/src/runtimeConfig.shared.ts +++ b/clients/client-s3-control/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: S3ControlClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "S3 Control", signingEscapePath: config?.signingEscapePath ?? false, diff --git a/clients/client-s3-control/src/runtimeExtensions.ts b/clients/client-s3-control/src/runtimeExtensions.ts new file mode 100644 index 000000000000..30ad7cc8875f --- /dev/null +++ b/clients/client-s3-control/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { S3ControlClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: S3ControlClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: S3ControlClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-s3/src/S3Client.ts b/clients/client-s3/src/S3Client.ts index cb298f3e811f..57d8b7200ed1 100644 --- a/clients/client-s3/src/S3Client.ts +++ b/clients/client-s3/src/S3Client.ts @@ -322,6 +322,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -675,6 +676,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -718,6 +724,7 @@ export interface S3ClientConfig extends S3ClientConfigType {} */ export type S3ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -760,8 +767,9 @@ export class S3Client extends __Client< const _config_7 = resolveS3Config(_config_6); const _config_8 = resolveUserAgentConfig(_config_7); const _config_9 = resolveEventStreamSerdeConfig(_config_8); - super(_config_9); - this.config = _config_9; + const _config_10 = resolveRuntimeExtensions(_config_9, configuration?.extensions || []); + super(_config_10); + this.config = _config_10; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-s3/src/clientConfiguration.ts b/clients/client-s3/src/clientConfiguration.ts new file mode 100644 index 000000000000..bf85403b402e --- /dev/null +++ b/clients/client-s3/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface S3ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-s3/src/runtimeConfig.shared.ts b/clients/client-s3/src/runtimeConfig.shared.ts index 93c657fe7369..d93d3d073ed9 100644 --- a/clients/client-s3/src/runtimeConfig.shared.ts +++ b/clients/client-s3/src/runtimeConfig.shared.ts @@ -18,6 +18,7 @@ export const getRuntimeConfig = (config: S3ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream, logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, diff --git a/clients/client-s3/src/runtimeExtensions.ts b/clients/client-s3/src/runtimeExtensions.ts new file mode 100644 index 000000000000..252fce0195d5 --- /dev/null +++ b/clients/client-s3/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { S3ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: S3ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: S3ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-s3outposts/src/S3OutpostsClient.ts b/clients/client-s3outposts/src/S3OutpostsClient.ts index d1273e666b4a..6a92f37777dc 100644 --- a/clients/client-s3outposts/src/S3OutpostsClient.ts +++ b/clients/client-s3outposts/src/S3OutpostsClient.ts @@ -65,6 +65,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -206,6 +207,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -236,6 +242,7 @@ export interface S3OutpostsClientConfig extends S3OutpostsClientConfigType {} */ export type S3OutpostsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -274,8 +281,9 @@ export class S3OutpostsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-s3outposts/src/clientConfiguration.ts b/clients/client-s3outposts/src/clientConfiguration.ts new file mode 100644 index 000000000000..a52ef2aacd9f --- /dev/null +++ b/clients/client-s3outposts/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface S3OutpostsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-s3outposts/src/runtimeConfig.shared.ts b/clients/client-s3outposts/src/runtimeConfig.shared.ts index e9cececf9acf..cdd1d4b64b4b 100644 --- a/clients/client-s3outposts/src/runtimeConfig.shared.ts +++ b/clients/client-s3outposts/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: S3OutpostsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "S3Outposts", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-s3outposts/src/runtimeExtensions.ts b/clients/client-s3outposts/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f0b150c9f700 --- /dev/null +++ b/clients/client-s3outposts/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { S3OutpostsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: S3OutpostsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: S3OutpostsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-a2i-runtime/src/SageMakerA2IRuntimeClient.ts b/clients/client-sagemaker-a2i-runtime/src/SageMakerA2IRuntimeClient.ts index ba2948150727..6b6cf066e19d 100644 --- a/clients/client-sagemaker-a2i-runtime/src/SageMakerA2IRuntimeClient.ts +++ b/clients/client-sagemaker-a2i-runtime/src/SageMakerA2IRuntimeClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -203,6 +204,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -233,6 +239,7 @@ export interface SageMakerA2IRuntimeClientConfig extends SageMakerA2IRuntimeClie */ export type SageMakerA2IRuntimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -296,8 +303,9 @@ export class SageMakerA2IRuntimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-a2i-runtime/src/clientConfiguration.ts b/clients/client-sagemaker-a2i-runtime/src/clientConfiguration.ts new file mode 100644 index 000000000000..7dcc00025ee8 --- /dev/null +++ b/clients/client-sagemaker-a2i-runtime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerA2IRuntimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-a2i-runtime/src/runtimeConfig.shared.ts b/clients/client-sagemaker-a2i-runtime/src/runtimeConfig.shared.ts index c84ccb661975..634708da3b61 100644 --- a/clients/client-sagemaker-a2i-runtime/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-a2i-runtime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SageMakerA2IRuntimeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SageMaker A2I Runtime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker-a2i-runtime/src/runtimeExtensions.ts b/clients/client-sagemaker-a2i-runtime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..94d4e472e8f7 --- /dev/null +++ b/clients/client-sagemaker-a2i-runtime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerA2IRuntimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerA2IRuntimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerA2IRuntimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-edge/src/SagemakerEdgeClient.ts b/clients/client-sagemaker-edge/src/SagemakerEdgeClient.ts index eda1e0c4526c..d082762bd2e1 100644 --- a/clients/client-sagemaker-edge/src/SagemakerEdgeClient.ts +++ b/clients/client-sagemaker-edge/src/SagemakerEdgeClient.ts @@ -63,6 +63,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -200,6 +201,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -230,6 +236,7 @@ export interface SagemakerEdgeClientConfig extends SagemakerEdgeClientConfigType */ export type SagemakerEdgeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -268,8 +275,9 @@ export class SagemakerEdgeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-edge/src/clientConfiguration.ts b/clients/client-sagemaker-edge/src/clientConfiguration.ts new file mode 100644 index 000000000000..511510c3e19b --- /dev/null +++ b/clients/client-sagemaker-edge/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SagemakerEdgeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-edge/src/runtimeConfig.shared.ts b/clients/client-sagemaker-edge/src/runtimeConfig.shared.ts index 91b56ce9739b..370f6bf79cea 100644 --- a/clients/client-sagemaker-edge/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-edge/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SagemakerEdgeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Sagemaker Edge", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker-edge/src/runtimeExtensions.ts b/clients/client-sagemaker-edge/src/runtimeExtensions.ts new file mode 100644 index 000000000000..40ae252cef3c --- /dev/null +++ b/clients/client-sagemaker-edge/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SagemakerEdgeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SagemakerEdgeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SagemakerEdgeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-featurestore-runtime/src/SageMakerFeatureStoreRuntimeClient.ts b/clients/client-sagemaker-featurestore-runtime/src/SageMakerFeatureStoreRuntimeClient.ts index fcd36b955274..f3421948b0c6 100644 --- a/clients/client-sagemaker-featurestore-runtime/src/SageMakerFeatureStoreRuntimeClient.ts +++ b/clients/client-sagemaker-featurestore-runtime/src/SageMakerFeatureStoreRuntimeClient.ts @@ -61,6 +61,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -200,6 +201,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -230,6 +236,7 @@ export interface SageMakerFeatureStoreRuntimeClientConfig extends SageMakerFeatu */ export type SageMakerFeatureStoreRuntimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -295,8 +302,9 @@ export class SageMakerFeatureStoreRuntimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-featurestore-runtime/src/clientConfiguration.ts b/clients/client-sagemaker-featurestore-runtime/src/clientConfiguration.ts new file mode 100644 index 000000000000..2869b3629693 --- /dev/null +++ b/clients/client-sagemaker-featurestore-runtime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerFeatureStoreRuntimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-featurestore-runtime/src/runtimeConfig.shared.ts b/clients/client-sagemaker-featurestore-runtime/src/runtimeConfig.shared.ts index c8144291bdb8..dd6b6ce07750 100644 --- a/clients/client-sagemaker-featurestore-runtime/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-featurestore-runtime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SageMakerFeatureStoreRuntimeClientConfi base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SageMaker FeatureStore Runtime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker-featurestore-runtime/src/runtimeExtensions.ts b/clients/client-sagemaker-featurestore-runtime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8135585d83e7 --- /dev/null +++ b/clients/client-sagemaker-featurestore-runtime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerFeatureStoreRuntimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerFeatureStoreRuntimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerFeatureStoreRuntimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-geospatial/src/SageMakerGeospatialClient.ts b/clients/client-sagemaker-geospatial/src/SageMakerGeospatialClient.ts index 9a0543704db6..4e66b2e7251b 100644 --- a/clients/client-sagemaker-geospatial/src/SageMakerGeospatialClient.ts +++ b/clients/client-sagemaker-geospatial/src/SageMakerGeospatialClient.ts @@ -125,6 +125,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -294,6 +295,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -330,6 +336,7 @@ export interface SageMakerGeospatialClientConfig extends SageMakerGeospatialClie */ export type SageMakerGeospatialClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -368,8 +375,9 @@ export class SageMakerGeospatialClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-geospatial/src/clientConfiguration.ts b/clients/client-sagemaker-geospatial/src/clientConfiguration.ts new file mode 100644 index 000000000000..40a8a901d92c --- /dev/null +++ b/clients/client-sagemaker-geospatial/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerGeospatialClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-geospatial/src/runtimeConfig.shared.ts b/clients/client-sagemaker-geospatial/src/runtimeConfig.shared.ts index d690a964e688..cb7a936f4e0f 100644 --- a/clients/client-sagemaker-geospatial/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-geospatial/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: SageMakerGeospatialClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "SageMaker Geospatial", diff --git a/clients/client-sagemaker-geospatial/src/runtimeExtensions.ts b/clients/client-sagemaker-geospatial/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ea69e634c6c7 --- /dev/null +++ b/clients/client-sagemaker-geospatial/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerGeospatialClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerGeospatialClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerGeospatialClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-metrics/src/SageMakerMetricsClient.ts b/clients/client-sagemaker-metrics/src/SageMakerMetricsClient.ts index dbcacc9a6865..62ed2019f304 100644 --- a/clients/client-sagemaker-metrics/src/SageMakerMetricsClient.ts +++ b/clients/client-sagemaker-metrics/src/SageMakerMetricsClient.ts @@ -58,6 +58,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -189,6 +190,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -219,6 +225,7 @@ export interface SageMakerMetricsClientConfig extends SageMakerMetricsClientConf */ export type SageMakerMetricsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -265,8 +272,9 @@ export class SageMakerMetricsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-metrics/src/clientConfiguration.ts b/clients/client-sagemaker-metrics/src/clientConfiguration.ts new file mode 100644 index 000000000000..53423a3e9ce3 --- /dev/null +++ b/clients/client-sagemaker-metrics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerMetricsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-metrics/src/runtimeConfig.shared.ts b/clients/client-sagemaker-metrics/src/runtimeConfig.shared.ts index 6dce5f27e93f..ecd7d130a33c 100644 --- a/clients/client-sagemaker-metrics/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-metrics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SageMakerMetricsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SageMaker Metrics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker-metrics/src/runtimeExtensions.ts b/clients/client-sagemaker-metrics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..15556840b355 --- /dev/null +++ b/clients/client-sagemaker-metrics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerMetricsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerMetricsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerMetricsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker-runtime/src/SageMakerRuntimeClient.ts b/clients/client-sagemaker-runtime/src/SageMakerRuntimeClient.ts index 1a9e9da4421f..7292393cbffe 100644 --- a/clients/client-sagemaker-runtime/src/SageMakerRuntimeClient.ts +++ b/clients/client-sagemaker-runtime/src/SageMakerRuntimeClient.ts @@ -62,6 +62,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -193,6 +194,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -223,6 +229,7 @@ export interface SageMakerRuntimeClientConfig extends SageMakerRuntimeClientConf */ export type SageMakerRuntimeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -261,8 +268,9 @@ export class SageMakerRuntimeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker-runtime/src/clientConfiguration.ts b/clients/client-sagemaker-runtime/src/clientConfiguration.ts new file mode 100644 index 000000000000..106839c87825 --- /dev/null +++ b/clients/client-sagemaker-runtime/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerRuntimeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker-runtime/src/runtimeConfig.shared.ts b/clients/client-sagemaker-runtime/src/runtimeConfig.shared.ts index 2713e27dc4c6..2403fd2d076b 100644 --- a/clients/client-sagemaker-runtime/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker-runtime/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SageMakerRuntimeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SageMaker Runtime", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker-runtime/src/runtimeExtensions.ts b/clients/client-sagemaker-runtime/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ee2df6f77603 --- /dev/null +++ b/clients/client-sagemaker-runtime/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerRuntimeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerRuntimeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerRuntimeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sagemaker/src/SageMakerClient.ts b/clients/client-sagemaker/src/SageMakerClient.ts index 2a5a2022d1a0..14a6b66ab4e6 100644 --- a/clients/client-sagemaker/src/SageMakerClient.ts +++ b/clients/client-sagemaker/src/SageMakerClient.ts @@ -823,6 +823,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -1562,6 +1563,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -1592,6 +1598,7 @@ export interface SageMakerClientConfig extends SageMakerClientConfigType {} */ export type SageMakerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -1645,8 +1652,9 @@ export class SageMakerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sagemaker/src/clientConfiguration.ts b/clients/client-sagemaker/src/clientConfiguration.ts new file mode 100644 index 000000000000..ab3acae0cfa3 --- /dev/null +++ b/clients/client-sagemaker/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SageMakerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sagemaker/src/runtimeConfig.shared.ts b/clients/client-sagemaker/src/runtimeConfig.shared.ts index 4a82fc4a49c4..55cda6e5e5ea 100644 --- a/clients/client-sagemaker/src/runtimeConfig.shared.ts +++ b/clients/client-sagemaker/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SageMakerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SageMaker", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sagemaker/src/runtimeExtensions.ts b/clients/client-sagemaker/src/runtimeExtensions.ts new file mode 100644 index 000000000000..93faf1fa75ac --- /dev/null +++ b/clients/client-sagemaker/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SageMakerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SageMakerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SageMakerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-savingsplans/src/SavingsplansClient.ts b/clients/client-savingsplans/src/SavingsplansClient.ts index 007538d98e91..142eff1cd623 100644 --- a/clients/client-savingsplans/src/SavingsplansClient.ts +++ b/clients/client-savingsplans/src/SavingsplansClient.ts @@ -84,6 +84,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -233,6 +234,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -263,6 +269,7 @@ export interface SavingsplansClientConfig extends SavingsplansClientConfigType { */ export type SavingsplansClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -304,8 +311,9 @@ export class SavingsplansClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-savingsplans/src/clientConfiguration.ts b/clients/client-savingsplans/src/clientConfiguration.ts new file mode 100644 index 000000000000..560a06909e81 --- /dev/null +++ b/clients/client-savingsplans/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SavingsplansClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-savingsplans/src/runtimeConfig.shared.ts b/clients/client-savingsplans/src/runtimeConfig.shared.ts index 011d3e14afdc..3c7aece2e10c 100644 --- a/clients/client-savingsplans/src/runtimeConfig.shared.ts +++ b/clients/client-savingsplans/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SavingsplansClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "savingsplans", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-savingsplans/src/runtimeExtensions.ts b/clients/client-savingsplans/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f584f4c1ee08 --- /dev/null +++ b/clients/client-savingsplans/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SavingsplansClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SavingsplansClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SavingsplansClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-scheduler/src/SchedulerClient.ts b/clients/client-scheduler/src/SchedulerClient.ts index 65521ba1dda2..316dd51202a7 100644 --- a/clients/client-scheduler/src/SchedulerClient.ts +++ b/clients/client-scheduler/src/SchedulerClient.ts @@ -78,6 +78,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -233,6 +234,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -263,6 +269,7 @@ export interface SchedulerClientConfig extends SchedulerClientConfigType {} */ export type SchedulerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -305,8 +312,9 @@ export class SchedulerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-scheduler/src/clientConfiguration.ts b/clients/client-scheduler/src/clientConfiguration.ts new file mode 100644 index 000000000000..89a20eab498b --- /dev/null +++ b/clients/client-scheduler/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SchedulerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-scheduler/src/runtimeConfig.shared.ts b/clients/client-scheduler/src/runtimeConfig.shared.ts index 426a6ace0d39..bca4b0be84d2 100644 --- a/clients/client-scheduler/src/runtimeConfig.shared.ts +++ b/clients/client-scheduler/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SchedulerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Scheduler", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-scheduler/src/runtimeExtensions.ts b/clients/client-scheduler/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ffb430dc3f5c --- /dev/null +++ b/clients/client-scheduler/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SchedulerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SchedulerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SchedulerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-schemas/src/SchemasClient.ts b/clients/client-schemas/src/SchemasClient.ts index 47fe19486650..55fc5f001aa7 100644 --- a/clients/client-schemas/src/SchemasClient.ts +++ b/clients/client-schemas/src/SchemasClient.ts @@ -106,6 +106,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface SchemasClientConfig extends SchemasClientConfigType {} */ export type SchemasClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -367,8 +374,9 @@ export class SchemasClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-schemas/src/clientConfiguration.ts b/clients/client-schemas/src/clientConfiguration.ts new file mode 100644 index 000000000000..0a9d6759550e --- /dev/null +++ b/clients/client-schemas/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SchemasClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-schemas/src/runtimeConfig.shared.ts b/clients/client-schemas/src/runtimeConfig.shared.ts index 8ba0754ecbbc..cf8ffd348165 100644 --- a/clients/client-schemas/src/runtimeConfig.shared.ts +++ b/clients/client-schemas/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SchemasClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "schemas", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-schemas/src/runtimeExtensions.ts b/clients/client-schemas/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7f76d212d099 --- /dev/null +++ b/clients/client-schemas/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SchemasClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SchemasClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SchemasClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-secrets-manager/src/SecretsManagerClient.ts b/clients/client-secrets-manager/src/SecretsManagerClient.ts index a678fa6c9cc2..5d4fc7f69299 100644 --- a/clients/client-secrets-manager/src/SecretsManagerClient.ts +++ b/clients/client-secrets-manager/src/SecretsManagerClient.ts @@ -100,6 +100,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -275,6 +276,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -305,6 +311,7 @@ export interface SecretsManagerClientConfig extends SecretsManagerClientConfigTy */ export type SecretsManagerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -368,8 +375,9 @@ export class SecretsManagerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-secrets-manager/src/clientConfiguration.ts b/clients/client-secrets-manager/src/clientConfiguration.ts new file mode 100644 index 000000000000..f1ad945730b8 --- /dev/null +++ b/clients/client-secrets-manager/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SecretsManagerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-secrets-manager/src/runtimeConfig.shared.ts b/clients/client-secrets-manager/src/runtimeConfig.shared.ts index 45fd2293b5ec..8430fb7ef65f 100644 --- a/clients/client-secrets-manager/src/runtimeConfig.shared.ts +++ b/clients/client-secrets-manager/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SecretsManagerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Secrets Manager", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-secrets-manager/src/runtimeExtensions.ts b/clients/client-secrets-manager/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5f8c89474542 --- /dev/null +++ b/clients/client-secrets-manager/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SecretsManagerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SecretsManagerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SecretsManagerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-securityhub/src/SecurityHubClient.ts b/clients/client-securityhub/src/SecurityHubClient.ts index e1d3d0388eae..1fcd2fc00f96 100644 --- a/clients/client-securityhub/src/SecurityHubClient.ts +++ b/clients/client-securityhub/src/SecurityHubClient.ts @@ -241,6 +241,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -506,6 +507,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -536,6 +542,7 @@ export interface SecurityHubClientConfig extends SecurityHubClientConfigType {} */ export type SecurityHubClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -619,8 +626,9 @@ export class SecurityHubClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-securityhub/src/clientConfiguration.ts b/clients/client-securityhub/src/clientConfiguration.ts new file mode 100644 index 000000000000..330ef6936436 --- /dev/null +++ b/clients/client-securityhub/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SecurityHubClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-securityhub/src/runtimeConfig.shared.ts b/clients/client-securityhub/src/runtimeConfig.shared.ts index 965da9bb563d..3f5c417b2493 100644 --- a/clients/client-securityhub/src/runtimeConfig.shared.ts +++ b/clients/client-securityhub/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SecurityHubClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SecurityHub", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-securityhub/src/runtimeExtensions.ts b/clients/client-securityhub/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4ff2e09718b0 --- /dev/null +++ b/clients/client-securityhub/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SecurityHubClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SecurityHubClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SecurityHubClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-securitylake/src/SecurityLakeClient.ts b/clients/client-securitylake/src/SecurityLakeClient.ts index 5eed3a2e67b9..5d93e0971e4d 100644 --- a/clients/client-securitylake/src/SecurityLakeClient.ts +++ b/clients/client-securitylake/src/SecurityLakeClient.ts @@ -136,6 +136,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -329,6 +330,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -359,6 +365,7 @@ export interface SecurityLakeClientConfig extends SecurityLakeClientConfigType { */ export type SecurityLakeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -422,8 +429,9 @@ export class SecurityLakeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-securitylake/src/clientConfiguration.ts b/clients/client-securitylake/src/clientConfiguration.ts new file mode 100644 index 000000000000..009e537afeee --- /dev/null +++ b/clients/client-securitylake/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SecurityLakeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-securitylake/src/runtimeConfig.shared.ts b/clients/client-securitylake/src/runtimeConfig.shared.ts index f36f072f1166..43a6b25ee5c4 100644 --- a/clients/client-securitylake/src/runtimeConfig.shared.ts +++ b/clients/client-securitylake/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SecurityLakeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SecurityLake", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-securitylake/src/runtimeExtensions.ts b/clients/client-securitylake/src/runtimeExtensions.ts new file mode 100644 index 000000000000..18ca41ec36c7 --- /dev/null +++ b/clients/client-securitylake/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SecurityLakeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SecurityLakeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SecurityLakeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-serverlessapplicationrepository/src/ServerlessApplicationRepositoryClient.ts b/clients/client-serverlessapplicationrepository/src/ServerlessApplicationRepositoryClient.ts index 46fb94653c7d..09fe5f6de683 100644 --- a/clients/client-serverlessapplicationrepository/src/ServerlessApplicationRepositoryClient.ts +++ b/clients/client-serverlessapplicationrepository/src/ServerlessApplicationRepositoryClient.ts @@ -95,6 +95,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -254,6 +255,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -285,6 +291,7 @@ export interface ServerlessApplicationRepositoryClientConfig extends ServerlessA export type ServerlessApplicationRepositoryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -343,8 +350,9 @@ export class ServerlessApplicationRepositoryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-serverlessapplicationrepository/src/clientConfiguration.ts b/clients/client-serverlessapplicationrepository/src/clientConfiguration.ts new file mode 100644 index 000000000000..ed0ea1dd50e3 --- /dev/null +++ b/clients/client-serverlessapplicationrepository/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ServerlessApplicationRepositoryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-serverlessapplicationrepository/src/runtimeConfig.shared.ts b/clients/client-serverlessapplicationrepository/src/runtimeConfig.shared.ts index 3ac410844282..c26300936cab 100644 --- a/clients/client-serverlessapplicationrepository/src/runtimeConfig.shared.ts +++ b/clients/client-serverlessapplicationrepository/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ServerlessApplicationRepositoryClientCo base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ServerlessApplicationRepository", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-serverlessapplicationrepository/src/runtimeExtensions.ts b/clients/client-serverlessapplicationrepository/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d2dd585ada37 --- /dev/null +++ b/clients/client-serverlessapplicationrepository/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ServerlessApplicationRepositoryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ServerlessApplicationRepositoryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ServerlessApplicationRepositoryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-service-catalog-appregistry/src/ServiceCatalogAppRegistryClient.ts b/clients/client-service-catalog-appregistry/src/ServiceCatalogAppRegistryClient.ts index 80643196aab4..b862332dbd59 100644 --- a/clients/client-service-catalog-appregistry/src/ServiceCatalogAppRegistryClient.ts +++ b/clients/client-service-catalog-appregistry/src/ServiceCatalogAppRegistryClient.ts @@ -117,6 +117,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface ServiceCatalogAppRegistryClientConfig extends ServiceCatalogApp */ export type ServiceCatalogAppRegistryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -365,8 +372,9 @@ export class ServiceCatalogAppRegistryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-service-catalog-appregistry/src/clientConfiguration.ts b/clients/client-service-catalog-appregistry/src/clientConfiguration.ts new file mode 100644 index 000000000000..6dcc30ef79aa --- /dev/null +++ b/clients/client-service-catalog-appregistry/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ServiceCatalogAppRegistryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-service-catalog-appregistry/src/runtimeConfig.shared.ts b/clients/client-service-catalog-appregistry/src/runtimeConfig.shared.ts index 73c896faac74..2c02c52ec11a 100644 --- a/clients/client-service-catalog-appregistry/src/runtimeConfig.shared.ts +++ b/clients/client-service-catalog-appregistry/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ServiceCatalogAppRegistryClientConfig) base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Service Catalog AppRegistry", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-service-catalog-appregistry/src/runtimeExtensions.ts b/clients/client-service-catalog-appregistry/src/runtimeExtensions.ts new file mode 100644 index 000000000000..609d7aacd887 --- /dev/null +++ b/clients/client-service-catalog-appregistry/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ServiceCatalogAppRegistryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ServiceCatalogAppRegistryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ServiceCatalogAppRegistryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-service-catalog/src/ServiceCatalogClient.ts b/clients/client-service-catalog/src/ServiceCatalogClient.ts index 28f46f24b24d..99c24c83778a 100644 --- a/clients/client-service-catalog/src/ServiceCatalogClient.ts +++ b/clients/client-service-catalog/src/ServiceCatalogClient.ts @@ -342,6 +342,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -653,6 +654,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -683,6 +689,7 @@ export interface ServiceCatalogClientConfig extends ServiceCatalogClientConfigTy */ export type ServiceCatalogClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -727,8 +734,9 @@ export class ServiceCatalogClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-service-catalog/src/clientConfiguration.ts b/clients/client-service-catalog/src/clientConfiguration.ts new file mode 100644 index 000000000000..4383039f9055 --- /dev/null +++ b/clients/client-service-catalog/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ServiceCatalogClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-service-catalog/src/runtimeConfig.shared.ts b/clients/client-service-catalog/src/runtimeConfig.shared.ts index 1892acfa115e..867ce9f6ae60 100644 --- a/clients/client-service-catalog/src/runtimeConfig.shared.ts +++ b/clients/client-service-catalog/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ServiceCatalogClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Service Catalog", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-service-catalog/src/runtimeExtensions.ts b/clients/client-service-catalog/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8192c63864ae --- /dev/null +++ b/clients/client-service-catalog/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ServiceCatalogClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ServiceCatalogClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ServiceCatalogClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-service-quotas/src/ServiceQuotasClient.ts b/clients/client-service-quotas/src/ServiceQuotasClient.ts index 8c02d32e729b..c35b2cacdbc0 100644 --- a/clients/client-service-quotas/src/ServiceQuotasClient.ts +++ b/clients/client-service-quotas/src/ServiceQuotasClient.ts @@ -118,6 +118,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -287,6 +288,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -317,6 +323,7 @@ export interface ServiceQuotasClientConfig extends ServiceQuotasClientConfigType */ export type ServiceQuotasClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -357,8 +364,9 @@ export class ServiceQuotasClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-service-quotas/src/clientConfiguration.ts b/clients/client-service-quotas/src/clientConfiguration.ts new file mode 100644 index 000000000000..a2aac63cd64d --- /dev/null +++ b/clients/client-service-quotas/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ServiceQuotasClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-service-quotas/src/runtimeConfig.shared.ts b/clients/client-service-quotas/src/runtimeConfig.shared.ts index 6aa2426d00e9..baacbdf316c6 100644 --- a/clients/client-service-quotas/src/runtimeConfig.shared.ts +++ b/clients/client-service-quotas/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ServiceQuotasClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Service Quotas", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-service-quotas/src/runtimeExtensions.ts b/clients/client-service-quotas/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b0485077e06b --- /dev/null +++ b/clients/client-service-quotas/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ServiceQuotasClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ServiceQuotasClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ServiceQuotasClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts b/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts index 7296f67a5fce..6314daf4a873 100644 --- a/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts +++ b/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts @@ -110,6 +110,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -293,6 +294,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -323,6 +329,7 @@ export interface ServiceDiscoveryClientConfig extends ServiceDiscoveryClientConf */ export type ServiceDiscoveryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -367,8 +374,9 @@ export class ServiceDiscoveryClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-servicediscovery/src/clientConfiguration.ts b/clients/client-servicediscovery/src/clientConfiguration.ts new file mode 100644 index 000000000000..84c0f9c4f441 --- /dev/null +++ b/clients/client-servicediscovery/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ServiceDiscoveryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-servicediscovery/src/runtimeConfig.shared.ts b/clients/client-servicediscovery/src/runtimeConfig.shared.ts index 3fefd94da915..df31dd44b566 100644 --- a/clients/client-servicediscovery/src/runtimeConfig.shared.ts +++ b/clients/client-servicediscovery/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ServiceDiscoveryClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "ServiceDiscovery", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-servicediscovery/src/runtimeExtensions.ts b/clients/client-servicediscovery/src/runtimeExtensions.ts new file mode 100644 index 000000000000..74d1d0623256 --- /dev/null +++ b/clients/client-servicediscovery/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ServiceDiscoveryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ServiceDiscoveryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ServiceDiscoveryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ses/src/SESClient.ts b/clients/client-ses/src/SESClient.ts index 1afb62ee4593..9cc041065228 100644 --- a/clients/client-ses/src/SESClient.ts +++ b/clients/client-ses/src/SESClient.ts @@ -278,6 +278,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -551,6 +552,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -581,6 +587,7 @@ export interface SESClientConfig extends SESClientConfigType {} */ export type SESClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -652,8 +659,9 @@ export class SESClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ses/src/clientConfiguration.ts b/clients/client-ses/src/clientConfiguration.ts new file mode 100644 index 000000000000..1f7096d14d3b --- /dev/null +++ b/clients/client-ses/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SESClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ses/src/runtimeConfig.shared.ts b/clients/client-ses/src/runtimeConfig.shared.ts index 4a493a40298e..8efb6be34ab2 100644 --- a/clients/client-ses/src/runtimeConfig.shared.ts +++ b/clients/client-ses/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SESClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SES", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ses/src/runtimeExtensions.ts b/clients/client-ses/src/runtimeExtensions.ts new file mode 100644 index 000000000000..33ff2ec09952 --- /dev/null +++ b/clients/client-ses/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SESClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SESClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SESClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sesv2/src/SESv2Client.ts b/clients/client-sesv2/src/SESv2Client.ts index 98d751da2d2a..d5496ad28465 100644 --- a/clients/client-sesv2/src/SESv2Client.ts +++ b/clients/client-sesv2/src/SESv2Client.ts @@ -327,6 +327,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -632,6 +633,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -662,6 +668,7 @@ export interface SESv2ClientConfig extends SESv2ClientConfigType {} */ export type SESv2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -706,8 +713,9 @@ export class SESv2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sesv2/src/clientConfiguration.ts b/clients/client-sesv2/src/clientConfiguration.ts new file mode 100644 index 000000000000..97010273049f --- /dev/null +++ b/clients/client-sesv2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SESv2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sesv2/src/runtimeConfig.shared.ts b/clients/client-sesv2/src/runtimeConfig.shared.ts index b02380b82ad4..3f68c2ffd0ea 100644 --- a/clients/client-sesv2/src/runtimeConfig.shared.ts +++ b/clients/client-sesv2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SESv2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SESv2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sesv2/src/runtimeExtensions.ts b/clients/client-sesv2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a19a429f1cab --- /dev/null +++ b/clients/client-sesv2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SESv2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SESv2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SESv2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sfn/src/SFNClient.ts b/clients/client-sfn/src/SFNClient.ts index a686a484d21c..32618fecb316 100644 --- a/clients/client-sfn/src/SFNClient.ts +++ b/clients/client-sfn/src/SFNClient.ts @@ -127,6 +127,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -326,6 +327,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -356,6 +362,7 @@ export interface SFNClientConfig extends SFNClientConfigType {} */ export type SFNClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -409,8 +416,9 @@ export class SFNClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sfn/src/clientConfiguration.ts b/clients/client-sfn/src/clientConfiguration.ts new file mode 100644 index 000000000000..be5db9749bf0 --- /dev/null +++ b/clients/client-sfn/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SFNClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sfn/src/runtimeConfig.shared.ts b/clients/client-sfn/src/runtimeConfig.shared.ts index 070f2eb883c3..e5fa345a5908 100644 --- a/clients/client-sfn/src/runtimeConfig.shared.ts +++ b/clients/client-sfn/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SFNClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SFN", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sfn/src/runtimeExtensions.ts b/clients/client-sfn/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d50cd1eaaff5 --- /dev/null +++ b/clients/client-sfn/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SFNClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SFNClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SFNClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-shield/src/ShieldClient.ts b/clients/client-shield/src/ShieldClient.ts index d6a8d2ce6241..b334d1baa348 100644 --- a/clients/client-shield/src/ShieldClient.ts +++ b/clients/client-shield/src/ShieldClient.ts @@ -162,6 +162,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -365,6 +366,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -395,6 +401,7 @@ export interface ShieldClientConfig extends ShieldClientConfigType {} */ export type ShieldClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -436,8 +443,9 @@ export class ShieldClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-shield/src/clientConfiguration.ts b/clients/client-shield/src/clientConfiguration.ts new file mode 100644 index 000000000000..08305e4e1fcc --- /dev/null +++ b/clients/client-shield/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface ShieldClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-shield/src/runtimeConfig.shared.ts b/clients/client-shield/src/runtimeConfig.shared.ts index 5a4342cb82ce..30722c8cacd1 100644 --- a/clients/client-shield/src/runtimeConfig.shared.ts +++ b/clients/client-shield/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: ShieldClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Shield", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-shield/src/runtimeExtensions.ts b/clients/client-shield/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b47e50c9eb70 --- /dev/null +++ b/clients/client-shield/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { ShieldClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: ShieldClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: ShieldClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-signer/src/SignerClient.ts b/clients/client-signer/src/SignerClient.ts index 1be33ace313a..e27ad3d68c77 100644 --- a/clients/client-signer/src/SignerClient.ts +++ b/clients/client-signer/src/SignerClient.ts @@ -103,6 +103,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -272,6 +273,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -302,6 +308,7 @@ export interface SignerClientConfig extends SignerClientConfigType {} */ export type SignerClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -354,8 +361,9 @@ export class SignerClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-signer/src/clientConfiguration.ts b/clients/client-signer/src/clientConfiguration.ts new file mode 100644 index 000000000000..1dccf175627f --- /dev/null +++ b/clients/client-signer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SignerClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-signer/src/runtimeConfig.shared.ts b/clients/client-signer/src/runtimeConfig.shared.ts index 0d1e9d9322fd..b622416deb48 100644 --- a/clients/client-signer/src/runtimeConfig.shared.ts +++ b/clients/client-signer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SignerClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "signer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-signer/src/runtimeExtensions.ts b/clients/client-signer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a67811d255e7 --- /dev/null +++ b/clients/client-signer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SignerClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SignerClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SignerClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-simspaceweaver/src/SimSpaceWeaverClient.ts b/clients/client-simspaceweaver/src/SimSpaceWeaverClient.ts index 243d0aa32771..402ce5db5e12 100644 --- a/clients/client-simspaceweaver/src/SimSpaceWeaverClient.ts +++ b/clients/client-simspaceweaver/src/SimSpaceWeaverClient.ts @@ -76,6 +76,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -239,6 +240,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -269,6 +275,7 @@ export interface SimSpaceWeaverClientConfig extends SimSpaceWeaverClientConfigTy */ export type SimSpaceWeaverClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -318,8 +325,9 @@ export class SimSpaceWeaverClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-simspaceweaver/src/clientConfiguration.ts b/clients/client-simspaceweaver/src/clientConfiguration.ts new file mode 100644 index 000000000000..53bc9834283c --- /dev/null +++ b/clients/client-simspaceweaver/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SimSpaceWeaverClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-simspaceweaver/src/runtimeConfig.shared.ts b/clients/client-simspaceweaver/src/runtimeConfig.shared.ts index 2173182b54b5..59a4794e7935 100644 --- a/clients/client-simspaceweaver/src/runtimeConfig.shared.ts +++ b/clients/client-simspaceweaver/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SimSpaceWeaverClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SimSpaceWeaver", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-simspaceweaver/src/runtimeExtensions.ts b/clients/client-simspaceweaver/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ecf3d6985b0a --- /dev/null +++ b/clients/client-simspaceweaver/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SimSpaceWeaverClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SimSpaceWeaverClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SimSpaceWeaverClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sms/src/SMSClient.ts b/clients/client-sms/src/SMSClient.ts index 8330b05fec52..5497832b893b 100644 --- a/clients/client-sms/src/SMSClient.ts +++ b/clients/client-sms/src/SMSClient.ts @@ -152,6 +152,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -353,6 +354,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -383,6 +389,7 @@ export interface SMSClientConfig extends SMSClientConfigType {} */ export type SMSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -447,8 +454,9 @@ export class SMSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sms/src/clientConfiguration.ts b/clients/client-sms/src/clientConfiguration.ts new file mode 100644 index 000000000000..0a679b481dca --- /dev/null +++ b/clients/client-sms/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SMSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sms/src/runtimeConfig.shared.ts b/clients/client-sms/src/runtimeConfig.shared.ts index 4e8d9190c318..e00b421b5556 100644 --- a/clients/client-sms/src/runtimeConfig.shared.ts +++ b/clients/client-sms/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SMSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SMS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sms/src/runtimeExtensions.ts b/clients/client-sms/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6cf46a343a1f --- /dev/null +++ b/clients/client-sms/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SMSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SMSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SMSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-snow-device-management/src/SnowDeviceManagementClient.ts b/clients/client-snow-device-management/src/SnowDeviceManagementClient.ts index 6e6781055a24..2e7bb6340d6d 100644 --- a/clients/client-snow-device-management/src/SnowDeviceManagementClient.ts +++ b/clients/client-snow-device-management/src/SnowDeviceManagementClient.ts @@ -79,6 +79,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -236,6 +237,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -266,6 +272,7 @@ export interface SnowDeviceManagementClientConfig extends SnowDeviceManagementCl */ export type SnowDeviceManagementClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -304,8 +311,9 @@ export class SnowDeviceManagementClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-snow-device-management/src/clientConfiguration.ts b/clients/client-snow-device-management/src/clientConfiguration.ts new file mode 100644 index 000000000000..dd7fdb6c62ed --- /dev/null +++ b/clients/client-snow-device-management/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SnowDeviceManagementClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-snow-device-management/src/runtimeConfig.shared.ts b/clients/client-snow-device-management/src/runtimeConfig.shared.ts index 30bd189da3d3..39e08e998a17 100644 --- a/clients/client-snow-device-management/src/runtimeConfig.shared.ts +++ b/clients/client-snow-device-management/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SnowDeviceManagementClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Snow Device Management", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-snow-device-management/src/runtimeExtensions.ts b/clients/client-snow-device-management/src/runtimeExtensions.ts new file mode 100644 index 000000000000..4232e6d57744 --- /dev/null +++ b/clients/client-snow-device-management/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SnowDeviceManagementClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SnowDeviceManagementClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SnowDeviceManagementClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-snowball/src/SnowballClient.ts b/clients/client-snowball/src/SnowballClient.ts index 75b191e722a9..1b2c6ae87c21 100644 --- a/clients/client-snowball/src/SnowballClient.ts +++ b/clients/client-snowball/src/SnowballClient.ts @@ -111,6 +111,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -296,6 +297,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -326,6 +332,7 @@ export interface SnowballClientConfig extends SnowballClientConfigType {} */ export type SnowballClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -369,8 +376,9 @@ export class SnowballClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-snowball/src/clientConfiguration.ts b/clients/client-snowball/src/clientConfiguration.ts new file mode 100644 index 000000000000..4a150982c31b --- /dev/null +++ b/clients/client-snowball/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SnowballClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-snowball/src/runtimeConfig.shared.ts b/clients/client-snowball/src/runtimeConfig.shared.ts index fdcefeb000a2..3d7b2818da57 100644 --- a/clients/client-snowball/src/runtimeConfig.shared.ts +++ b/clients/client-snowball/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SnowballClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Snowball", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-snowball/src/runtimeExtensions.ts b/clients/client-snowball/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b47ceb709aa2 --- /dev/null +++ b/clients/client-snowball/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SnowballClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SnowballClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SnowballClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sns/src/SNSClient.ts b/clients/client-sns/src/SNSClient.ts index bc2b2c146739..4bdfd4d28507 100644 --- a/clients/client-sns/src/SNSClient.ts +++ b/clients/client-sns/src/SNSClient.ts @@ -171,6 +171,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -386,6 +387,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -416,6 +422,7 @@ export interface SNSClientConfig extends SNSClientConfigType {} */ export type SNSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -466,8 +473,9 @@ export class SNSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sns/src/clientConfiguration.ts b/clients/client-sns/src/clientConfiguration.ts new file mode 100644 index 000000000000..7886eb516615 --- /dev/null +++ b/clients/client-sns/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SNSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sns/src/runtimeConfig.shared.ts b/clients/client-sns/src/runtimeConfig.shared.ts index ce452cfb3bfb..942c5218282f 100644 --- a/clients/client-sns/src/runtimeConfig.shared.ts +++ b/clients/client-sns/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SNSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SNS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sns/src/runtimeExtensions.ts b/clients/client-sns/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f3b8b007b7e0 --- /dev/null +++ b/clients/client-sns/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SNSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SNSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SNSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sqs/src/SQSClient.ts b/clients/client-sqs/src/SQSClient.ts index 0582fde858eb..80198f2ac446 100644 --- a/clients/client-sqs/src/SQSClient.ts +++ b/clients/client-sqs/src/SQSClient.ts @@ -98,6 +98,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -282,6 +283,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -312,6 +318,7 @@ export interface SQSClientConfig extends SQSClientConfigType {} */ export type SQSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -421,8 +428,9 @@ export class SQSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sqs/src/clientConfiguration.ts b/clients/client-sqs/src/clientConfiguration.ts new file mode 100644 index 000000000000..1dd16af62231 --- /dev/null +++ b/clients/client-sqs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SQSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sqs/src/runtimeConfig.shared.ts b/clients/client-sqs/src/runtimeConfig.shared.ts index 815d69ab1b04..d0c057936a68 100644 --- a/clients/client-sqs/src/runtimeConfig.shared.ts +++ b/clients/client-sqs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SQSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SQS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sqs/src/runtimeExtensions.ts b/clients/client-sqs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..65f41da67b98 --- /dev/null +++ b/clients/client-sqs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SQSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SQSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SQSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ssm-contacts/src/SSMContactsClient.ts b/clients/client-ssm-contacts/src/SSMContactsClient.ts index 4844d448ff5e..e32cc65ee3ef 100644 --- a/clients/client-ssm-contacts/src/SSMContactsClient.ts +++ b/clients/client-ssm-contacts/src/SSMContactsClient.ts @@ -138,6 +138,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -377,6 +383,7 @@ export interface SSMContactsClientConfig extends SSMContactsClientConfigType {} */ export type SSMContactsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -422,8 +429,9 @@ export class SSMContactsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ssm-contacts/src/clientConfiguration.ts b/clients/client-ssm-contacts/src/clientConfiguration.ts new file mode 100644 index 000000000000..3bedf146462f --- /dev/null +++ b/clients/client-ssm-contacts/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSMContactsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ssm-contacts/src/runtimeConfig.shared.ts b/clients/client-ssm-contacts/src/runtimeConfig.shared.ts index 476666d7aad1..2530ff8752d7 100644 --- a/clients/client-ssm-contacts/src/runtimeConfig.shared.ts +++ b/clients/client-ssm-contacts/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSMContactsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSM Contacts", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ssm-contacts/src/runtimeExtensions.ts b/clients/client-ssm-contacts/src/runtimeExtensions.ts new file mode 100644 index 000000000000..e8317cb1be18 --- /dev/null +++ b/clients/client-ssm-contacts/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSMContactsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSMContactsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSMContactsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ssm-incidents/src/SSMIncidentsClient.ts b/clients/client-ssm-incidents/src/SSMIncidentsClient.ts index 03baea127185..0a15cbea9af4 100644 --- a/clients/client-ssm-incidents/src/SSMIncidentsClient.ts +++ b/clients/client-ssm-incidents/src/SSMIncidentsClient.ts @@ -128,6 +128,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -317,6 +318,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -347,6 +353,7 @@ export interface SSMIncidentsClientConfig extends SSMIncidentsClientConfigType { */ export type SSMIncidentsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -392,8 +399,9 @@ export class SSMIncidentsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ssm-incidents/src/clientConfiguration.ts b/clients/client-ssm-incidents/src/clientConfiguration.ts new file mode 100644 index 000000000000..82b073c3afb4 --- /dev/null +++ b/clients/client-ssm-incidents/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSMIncidentsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ssm-incidents/src/runtimeConfig.shared.ts b/clients/client-ssm-incidents/src/runtimeConfig.shared.ts index ecd5e9761345..bd23244c578d 100644 --- a/clients/client-ssm-incidents/src/runtimeConfig.shared.ts +++ b/clients/client-ssm-incidents/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSMIncidentsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSM Incidents", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ssm-incidents/src/runtimeExtensions.ts b/clients/client-ssm-incidents/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0897e5084640 --- /dev/null +++ b/clients/client-ssm-incidents/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSMIncidentsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSMIncidentsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSMIncidentsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ssm-sap/src/SsmSapClient.ts b/clients/client-ssm-sap/src/SsmSapClient.ts index c0aa9be5281f..4d90ae921c1f 100644 --- a/clients/client-ssm-sap/src/SsmSapClient.ts +++ b/clients/client-ssm-sap/src/SsmSapClient.ts @@ -99,6 +99,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -266,6 +267,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -296,6 +302,7 @@ export interface SsmSapClientConfig extends SsmSapClientConfigType {} */ export type SsmSapClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -336,8 +343,9 @@ export class SsmSapClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ssm-sap/src/clientConfiguration.ts b/clients/client-ssm-sap/src/clientConfiguration.ts new file mode 100644 index 000000000000..aa61cdcc6721 --- /dev/null +++ b/clients/client-ssm-sap/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SsmSapClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ssm-sap/src/runtimeConfig.shared.ts b/clients/client-ssm-sap/src/runtimeConfig.shared.ts index 85e2b099de27..c66232fe9091 100644 --- a/clients/client-ssm-sap/src/runtimeConfig.shared.ts +++ b/clients/client-ssm-sap/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SsmSapClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Ssm Sap", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ssm-sap/src/runtimeExtensions.ts b/clients/client-ssm-sap/src/runtimeExtensions.ts new file mode 100644 index 000000000000..600e3c729d46 --- /dev/null +++ b/clients/client-ssm-sap/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SsmSapClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SsmSapClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SsmSapClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-ssm/src/SSMClient.ts b/clients/client-ssm/src/SSMClient.ts index 6df34ab3f3f6..c0dd0e6ad664 100644 --- a/clients/client-ssm/src/SSMClient.ts +++ b/clients/client-ssm/src/SSMClient.ts @@ -471,6 +471,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -878,6 +879,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -908,6 +914,7 @@ export interface SSMClientConfig extends SSMClientConfigType {} */ export type SSMClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -981,8 +988,9 @@ export class SSMClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-ssm/src/clientConfiguration.ts b/clients/client-ssm/src/clientConfiguration.ts new file mode 100644 index 000000000000..40c4ad427990 --- /dev/null +++ b/clients/client-ssm/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSMClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-ssm/src/runtimeConfig.shared.ts b/clients/client-ssm/src/runtimeConfig.shared.ts index bcf5e394a88e..18784871f842 100644 --- a/clients/client-ssm/src/runtimeConfig.shared.ts +++ b/clients/client-ssm/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSMClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSM", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-ssm/src/runtimeExtensions.ts b/clients/client-ssm/src/runtimeExtensions.ts new file mode 100644 index 000000000000..00e33753455e --- /dev/null +++ b/clients/client-ssm/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSMClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSMClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSMClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sso-admin/src/SSOAdminClient.ts b/clients/client-sso-admin/src/SSOAdminClient.ts index 46f9768b1f2b..9579f7eaa78a 100644 --- a/clients/client-sso-admin/src/SSOAdminClient.ts +++ b/clients/client-sso-admin/src/SSOAdminClient.ts @@ -193,6 +193,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -398,6 +399,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -428,6 +434,7 @@ export interface SSOAdminClientConfig extends SSOAdminClientConfigType {} */ export type SSOAdminClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -487,8 +494,9 @@ export class SSOAdminClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sso-admin/src/clientConfiguration.ts b/clients/client-sso-admin/src/clientConfiguration.ts new file mode 100644 index 000000000000..51e20c1514b7 --- /dev/null +++ b/clients/client-sso-admin/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSOAdminClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sso-admin/src/runtimeConfig.shared.ts b/clients/client-sso-admin/src/runtimeConfig.shared.ts index f6d73cae1c5a..ad35bd3e1e05 100644 --- a/clients/client-sso-admin/src/runtimeConfig.shared.ts +++ b/clients/client-sso-admin/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSOAdminClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSO Admin", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sso-admin/src/runtimeExtensions.ts b/clients/client-sso-admin/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6fa2a5e105d2 --- /dev/null +++ b/clients/client-sso-admin/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSOAdminClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSOAdminClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSOAdminClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sso-oidc/src/SSOOIDCClient.ts b/clients/client-sso-oidc/src/SSOOIDCClient.ts index 81f549fceb82..240f56e1d835 100644 --- a/clients/client-sso-oidc/src/SSOOIDCClient.ts +++ b/clients/client-sso-oidc/src/SSOOIDCClient.ts @@ -56,6 +56,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -187,6 +188,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -216,6 +222,7 @@ export interface SSOOIDCClientConfig extends SSOOIDCClientConfigType {} */ export type SSOOIDCClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -291,8 +298,9 @@ export class SSOOIDCClient extends __Client< const _config_4 = resolveRetryConfig(_config_3); const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + const _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []); + 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-sso-oidc/src/clientConfiguration.ts b/clients/client-sso-oidc/src/clientConfiguration.ts new file mode 100644 index 000000000000..c42bf6c76ee2 --- /dev/null +++ b/clients/client-sso-oidc/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSOOIDCClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sso-oidc/src/runtimeConfig.shared.ts b/clients/client-sso-oidc/src/runtimeConfig.shared.ts index 8a4b3ac7396d..b541acb1476d 100644 --- a/clients/client-sso-oidc/src/runtimeConfig.shared.ts +++ b/clients/client-sso-oidc/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSOOIDCClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSO OIDC", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sso-oidc/src/runtimeExtensions.ts b/clients/client-sso-oidc/src/runtimeExtensions.ts new file mode 100644 index 000000000000..0767239e2b1c --- /dev/null +++ b/clients/client-sso-oidc/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSOOIDCClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSOOIDCClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSOOIDCClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sso/src/SSOClient.ts b/clients/client-sso/src/SSOClient.ts index 983fd1fef617..add4b6fc399f 100644 --- a/clients/client-sso/src/SSOClient.ts +++ b/clients/client-sso/src/SSOClient.ts @@ -54,6 +54,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -187,6 +188,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -216,6 +222,7 @@ export interface SSOClientConfig extends SSOClientConfigType {} */ export type SSOClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -270,8 +277,9 @@ export class SSOClient extends __Client< const _config_4 = resolveRetryConfig(_config_3); const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + const _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []); + 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-sso/src/clientConfiguration.ts b/clients/client-sso/src/clientConfiguration.ts new file mode 100644 index 000000000000..4b94b3d6210c --- /dev/null +++ b/clients/client-sso/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SSOClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sso/src/runtimeConfig.shared.ts b/clients/client-sso/src/runtimeConfig.shared.ts index 4b23e6e2ac96..a23663512fed 100644 --- a/clients/client-sso/src/runtimeConfig.shared.ts +++ b/clients/client-sso/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SSOClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SSO", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sso/src/runtimeExtensions.ts b/clients/client-sso/src/runtimeExtensions.ts new file mode 100644 index 000000000000..6ded2ccd52dc --- /dev/null +++ b/clients/client-sso/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SSOClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SSOClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SSOClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-storage-gateway/src/StorageGatewayClient.ts b/clients/client-storage-gateway/src/StorageGatewayClient.ts index 921649ce8f48..2077ed0e8d49 100644 --- a/clients/client-storage-gateway/src/StorageGatewayClient.ts +++ b/clients/client-storage-gateway/src/StorageGatewayClient.ts @@ -300,6 +300,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -611,6 +612,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -641,6 +647,7 @@ export interface StorageGatewayClientConfig extends StorageGatewayClientConfigTy */ export type StorageGatewayClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -746,8 +753,9 @@ export class StorageGatewayClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-storage-gateway/src/clientConfiguration.ts b/clients/client-storage-gateway/src/clientConfiguration.ts new file mode 100644 index 000000000000..9c2a066e15db --- /dev/null +++ b/clients/client-storage-gateway/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface StorageGatewayClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-storage-gateway/src/runtimeConfig.shared.ts b/clients/client-storage-gateway/src/runtimeConfig.shared.ts index a3af09761107..7d8eb2f4786d 100644 --- a/clients/client-storage-gateway/src/runtimeConfig.shared.ts +++ b/clients/client-storage-gateway/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: StorageGatewayClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Storage Gateway", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-storage-gateway/src/runtimeExtensions.ts b/clients/client-storage-gateway/src/runtimeExtensions.ts new file mode 100644 index 000000000000..75eb8c86477d --- /dev/null +++ b/clients/client-storage-gateway/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { StorageGatewayClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: StorageGatewayClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: StorageGatewayClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-sts/src/STSClient.ts b/clients/client-sts/src/STSClient.ts index 82c01ea3b857..22f10c320cf9 100644 --- a/clients/client-sts/src/STSClient.ts +++ b/clients/client-sts/src/STSClient.ts @@ -66,6 +66,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -213,6 +214,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -243,6 +249,7 @@ export interface STSClientConfig extends STSClientConfigType {} */ export type STSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -284,8 +291,9 @@ export class STSClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveStsAuthConfig(_config_5, { stsClientCtor: STSClient }); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-sts/src/clientConfiguration.ts b/clients/client-sts/src/clientConfiguration.ts new file mode 100644 index 000000000000..364259c31d39 --- /dev/null +++ b/clients/client-sts/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface STSClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-sts/src/runtimeConfig.shared.ts b/clients/client-sts/src/runtimeConfig.shared.ts index 8e9c0fe20dad..1bd2c6baf8fd 100644 --- a/clients/client-sts/src/runtimeConfig.shared.ts +++ b/clients/client-sts/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: STSClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "STS", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-sts/src/runtimeExtensions.ts b/clients/client-sts/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f6b4ecac30e7 --- /dev/null +++ b/clients/client-sts/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { STSClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: STSClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: STSClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-support-app/src/SupportAppClient.ts b/clients/client-support-app/src/SupportAppClient.ts index dcbf0c0e0219..a4aaf73fabae 100644 --- a/clients/client-support-app/src/SupportAppClient.ts +++ b/clients/client-support-app/src/SupportAppClient.ts @@ -88,6 +88,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -239,6 +240,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -269,6 +275,7 @@ export interface SupportAppClientConfig extends SupportAppClientConfigType {} */ export type SupportAppClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -360,8 +367,9 @@ export class SupportAppClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-support-app/src/clientConfiguration.ts b/clients/client-support-app/src/clientConfiguration.ts new file mode 100644 index 000000000000..c074b7e3d3e6 --- /dev/null +++ b/clients/client-support-app/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SupportAppClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-support-app/src/runtimeConfig.shared.ts b/clients/client-support-app/src/runtimeConfig.shared.ts index fa5dff21ce86..6a2e880ef94a 100644 --- a/clients/client-support-app/src/runtimeConfig.shared.ts +++ b/clients/client-support-app/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SupportAppClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Support App", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-support-app/src/runtimeExtensions.ts b/clients/client-support-app/src/runtimeExtensions.ts new file mode 100644 index 000000000000..34e25ab40644 --- /dev/null +++ b/clients/client-support-app/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SupportAppClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SupportAppClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SupportAppClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-support/src/SupportClient.ts b/clients/client-support/src/SupportClient.ts index b77d11127b8a..1f112c7f9a6a 100644 --- a/clients/client-support/src/SupportClient.ts +++ b/clients/client-support/src/SupportClient.ts @@ -106,6 +106,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -269,6 +270,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -299,6 +305,7 @@ export interface SupportClientConfig extends SupportClientConfigType {} */ export type SupportClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -380,8 +387,9 @@ export class SupportClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-support/src/clientConfiguration.ts b/clients/client-support/src/clientConfiguration.ts new file mode 100644 index 000000000000..c8c9e34ae795 --- /dev/null +++ b/clients/client-support/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SupportClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-support/src/runtimeConfig.shared.ts b/clients/client-support/src/runtimeConfig.shared.ts index 7c7897a3bc3f..e8672320f309 100644 --- a/clients/client-support/src/runtimeConfig.shared.ts +++ b/clients/client-support/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SupportClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Support", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-support/src/runtimeExtensions.ts b/clients/client-support/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8b9be8b2ca15 --- /dev/null +++ b/clients/client-support/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SupportClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SupportClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SupportClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-swf/src/SWFClient.ts b/clients/client-swf/src/SWFClient.ts index 9ec54fdec236..168475845ea2 100644 --- a/clients/client-swf/src/SWFClient.ts +++ b/clients/client-swf/src/SWFClient.ts @@ -178,6 +178,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -383,6 +384,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -413,6 +419,7 @@ export interface SWFClientConfig extends SWFClientConfigType {} */ export type SWFClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -463,8 +470,9 @@ export class SWFClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-swf/src/clientConfiguration.ts b/clients/client-swf/src/clientConfiguration.ts new file mode 100644 index 000000000000..df189efd479b --- /dev/null +++ b/clients/client-swf/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SWFClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-swf/src/runtimeConfig.shared.ts b/clients/client-swf/src/runtimeConfig.shared.ts index 86c4acde8ee3..e212629e6dda 100644 --- a/clients/client-swf/src/runtimeConfig.shared.ts +++ b/clients/client-swf/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SWFClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "SWF", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-swf/src/runtimeExtensions.ts b/clients/client-swf/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b989c108055c --- /dev/null +++ b/clients/client-swf/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SWFClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SWFClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SWFClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-synthetics/src/SyntheticsClient.ts b/clients/client-synthetics/src/SyntheticsClient.ts index 1e3fa8282778..e0faff209b5e 100644 --- a/clients/client-synthetics/src/SyntheticsClient.ts +++ b/clients/client-synthetics/src/SyntheticsClient.ts @@ -93,6 +93,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -266,6 +267,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -296,6 +302,7 @@ export interface SyntheticsClientConfig extends SyntheticsClientConfigType {} */ export type SyntheticsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -349,8 +356,9 @@ export class SyntheticsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-synthetics/src/clientConfiguration.ts b/clients/client-synthetics/src/clientConfiguration.ts new file mode 100644 index 000000000000..ce78e05999a1 --- /dev/null +++ b/clients/client-synthetics/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface SyntheticsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-synthetics/src/runtimeConfig.shared.ts b/clients/client-synthetics/src/runtimeConfig.shared.ts index acadf07f43db..95054c1f492c 100644 --- a/clients/client-synthetics/src/runtimeConfig.shared.ts +++ b/clients/client-synthetics/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: SyntheticsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "synthetics", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-synthetics/src/runtimeExtensions.ts b/clients/client-synthetics/src/runtimeExtensions.ts new file mode 100644 index 000000000000..175fd88843a4 --- /dev/null +++ b/clients/client-synthetics/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { SyntheticsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: SyntheticsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: SyntheticsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-textract/src/TextractClient.ts b/clients/client-textract/src/TextractClient.ts index 1f092b59080a..f41e8dd46d68 100644 --- a/clients/client-textract/src/TextractClient.ts +++ b/clients/client-textract/src/TextractClient.ts @@ -91,6 +91,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -248,6 +249,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -278,6 +284,7 @@ export interface TextractClientConfig extends TextractClientConfigType {} */ export type TextractClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -318,8 +325,9 @@ export class TextractClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-textract/src/clientConfiguration.ts b/clients/client-textract/src/clientConfiguration.ts new file mode 100644 index 000000000000..1d2159b57c47 --- /dev/null +++ b/clients/client-textract/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TextractClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-textract/src/runtimeConfig.shared.ts b/clients/client-textract/src/runtimeConfig.shared.ts index 4402bd582a95..441fa36d3964 100644 --- a/clients/client-textract/src/runtimeConfig.shared.ts +++ b/clients/client-textract/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TextractClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Textract", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-textract/src/runtimeExtensions.ts b/clients/client-textract/src/runtimeExtensions.ts new file mode 100644 index 000000000000..79ff3fbf0af9 --- /dev/null +++ b/clients/client-textract/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TextractClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TextractClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TextractClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-timestream-query/src/TimestreamQueryClient.ts b/clients/client-timestream-query/src/TimestreamQueryClient.ts index 5d9bb6181aa6..d4966fb0dabd 100644 --- a/clients/client-timestream-query/src/TimestreamQueryClient.ts +++ b/clients/client-timestream-query/src/TimestreamQueryClient.ts @@ -100,6 +100,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -264,6 +265,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -295,6 +301,7 @@ export interface TimestreamQueryClientConfig extends TimestreamQueryClientConfig */ export type TimestreamQueryClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -339,8 +346,9 @@ export class TimestreamQueryClient extends __Client< const _config_8 = resolveEndpointDiscoveryConfig(_config_7, { endpointDiscoveryCommandCtor: DescribeEndpointsCommand, }); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; 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/src/clientConfiguration.ts b/clients/client-timestream-query/src/clientConfiguration.ts new file mode 100644 index 000000000000..4cc64728c8d1 --- /dev/null +++ b/clients/client-timestream-query/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TimestreamQueryClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-timestream-query/src/runtimeConfig.shared.ts b/clients/client-timestream-query/src/runtimeConfig.shared.ts index 2a4485951386..84fd7dbe3880 100644 --- a/clients/client-timestream-query/src/runtimeConfig.shared.ts +++ b/clients/client-timestream-query/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TimestreamQueryClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Timestream Query", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-timestream-query/src/runtimeExtensions.ts b/clients/client-timestream-query/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5ee44ed3660a --- /dev/null +++ b/clients/client-timestream-query/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TimestreamQueryClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TimestreamQueryClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TimestreamQueryClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-timestream-write/src/TimestreamWriteClient.ts b/clients/client-timestream-write/src/TimestreamWriteClient.ts index b6831d39f918..4abe3e108e00 100644 --- a/clients/client-timestream-write/src/TimestreamWriteClient.ts +++ b/clients/client-timestream-write/src/TimestreamWriteClient.ts @@ -97,6 +97,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -273,6 +274,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -304,6 +310,7 @@ export interface TimestreamWriteClientConfig extends TimestreamWriteClientConfig */ export type TimestreamWriteClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -358,8 +365,9 @@ export class TimestreamWriteClient extends __Client< const _config_8 = resolveEndpointDiscoveryConfig(_config_7, { endpointDiscoveryCommandCtor: DescribeEndpointsCommand, }); - super(_config_8); - this.config = _config_8; + const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []); + super(_config_9); + this.config = _config_9; 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/src/clientConfiguration.ts b/clients/client-timestream-write/src/clientConfiguration.ts new file mode 100644 index 000000000000..7589c2dbcc1f --- /dev/null +++ b/clients/client-timestream-write/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TimestreamWriteClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-timestream-write/src/runtimeConfig.shared.ts b/clients/client-timestream-write/src/runtimeConfig.shared.ts index be55b2192391..f9a99ebea464 100644 --- a/clients/client-timestream-write/src/runtimeConfig.shared.ts +++ b/clients/client-timestream-write/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TimestreamWriteClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Timestream Write", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-timestream-write/src/runtimeExtensions.ts b/clients/client-timestream-write/src/runtimeExtensions.ts new file mode 100644 index 000000000000..99d263d7c616 --- /dev/null +++ b/clients/client-timestream-write/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TimestreamWriteClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TimestreamWriteClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TimestreamWriteClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-tnb/src/TnbClient.ts b/clients/client-tnb/src/TnbClient.ts index d14099cbe1c0..3364efe5d280 100644 --- a/clients/client-tnb/src/TnbClient.ts +++ b/clients/client-tnb/src/TnbClient.ts @@ -183,6 +183,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -380,6 +381,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -410,6 +416,7 @@ export interface TnbClientConfig extends TnbClientConfigType {} */ export type TnbClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -448,8 +455,9 @@ export class TnbClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-tnb/src/clientConfiguration.ts b/clients/client-tnb/src/clientConfiguration.ts new file mode 100644 index 000000000000..ab10a6318188 --- /dev/null +++ b/clients/client-tnb/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TnbClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-tnb/src/runtimeConfig.shared.ts b/clients/client-tnb/src/runtimeConfig.shared.ts index 8501fb3d27d6..69eb8766095f 100644 --- a/clients/client-tnb/src/runtimeConfig.shared.ts +++ b/clients/client-tnb/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TnbClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "tnb", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-tnb/src/runtimeExtensions.ts b/clients/client-tnb/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3c524fe4f03c --- /dev/null +++ b/clients/client-tnb/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TnbClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TnbClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TnbClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-transcribe-streaming/src/TranscribeStreamingClient.ts b/clients/client-transcribe-streaming/src/TranscribeStreamingClient.ts index d87f49a12713..a9bea0e83494 100644 --- a/clients/client-transcribe-streaming/src/TranscribeStreamingClient.ts +++ b/clients/client-transcribe-streaming/src/TranscribeStreamingClient.ts @@ -85,6 +85,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -228,6 +229,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The function that provides necessary utilities for generating and parsing event stream */ @@ -266,6 +272,7 @@ export interface TranscribeStreamingClientConfig extends TranscribeStreamingClie */ export type TranscribeStreamingClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -332,8 +339,9 @@ export class TranscribeStreamingClient extends __Client< const _config_8 = resolveWebSocketConfig(_config_7); const _config_9 = resolveUserAgentConfig(_config_8); const _config_10 = resolveEventStreamSerdeConfig(_config_9); - super(_config_10); - this.config = _config_10; + const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []); + super(_config_11); + this.config = _config_11; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-transcribe-streaming/src/clientConfiguration.ts b/clients/client-transcribe-streaming/src/clientConfiguration.ts new file mode 100644 index 000000000000..fc4d332c018d --- /dev/null +++ b/clients/client-transcribe-streaming/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TranscribeStreamingClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-transcribe-streaming/src/runtimeConfig.shared.ts b/clients/client-transcribe-streaming/src/runtimeConfig.shared.ts index a06befc79d79..32c108e2be42 100644 --- a/clients/client-transcribe-streaming/src/runtimeConfig.shared.ts +++ b/clients/client-transcribe-streaming/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TranscribeStreamingClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Transcribe Streaming", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-transcribe-streaming/src/runtimeExtensions.ts b/clients/client-transcribe-streaming/src/runtimeExtensions.ts new file mode 100644 index 000000000000..3172c06a675c --- /dev/null +++ b/clients/client-transcribe-streaming/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TranscribeStreamingClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TranscribeStreamingClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TranscribeStreamingClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-transcribe/src/TranscribeClient.ts b/clients/client-transcribe/src/TranscribeClient.ts index 6a68531fd6e4..021f44adfd02 100644 --- a/clients/client-transcribe/src/TranscribeClient.ts +++ b/clients/client-transcribe/src/TranscribeClient.ts @@ -189,6 +189,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -398,6 +399,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -428,6 +434,7 @@ export interface TranscribeClientConfig extends TranscribeClientConfigType {} */ export type TranscribeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -487,8 +494,9 @@ export class TranscribeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-transcribe/src/clientConfiguration.ts b/clients/client-transcribe/src/clientConfiguration.ts new file mode 100644 index 000000000000..a61a52aca931 --- /dev/null +++ b/clients/client-transcribe/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TranscribeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-transcribe/src/runtimeConfig.shared.ts b/clients/client-transcribe/src/runtimeConfig.shared.ts index 4a13df8592f9..8c7654236e47 100644 --- a/clients/client-transcribe/src/runtimeConfig.shared.ts +++ b/clients/client-transcribe/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TranscribeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Transcribe", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-transcribe/src/runtimeExtensions.ts b/clients/client-transcribe/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c92b56ecf3a2 --- /dev/null +++ b/clients/client-transcribe/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TranscribeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TranscribeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TranscribeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-transfer/src/TransferClient.ts b/clients/client-transfer/src/TransferClient.ts index ec95e686c193..046eba47d3c7 100644 --- a/clients/client-transfer/src/TransferClient.ts +++ b/clients/client-transfer/src/TransferClient.ts @@ -134,6 +134,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -383,6 +384,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -413,6 +419,7 @@ export interface TransferClientConfig extends TransferClientConfigType {} */ export type TransferClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -460,8 +467,9 @@ export class TransferClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-transfer/src/clientConfiguration.ts b/clients/client-transfer/src/clientConfiguration.ts new file mode 100644 index 000000000000..eee57a2850a4 --- /dev/null +++ b/clients/client-transfer/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TransferClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-transfer/src/runtimeConfig.shared.ts b/clients/client-transfer/src/runtimeConfig.shared.ts index a3efd86c7aa4..bcaf4e4c6123 100644 --- a/clients/client-transfer/src/runtimeConfig.shared.ts +++ b/clients/client-transfer/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TransferClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Transfer", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-transfer/src/runtimeExtensions.ts b/clients/client-transfer/src/runtimeExtensions.ts new file mode 100644 index 000000000000..1841b92f53d8 --- /dev/null +++ b/clients/client-transfer/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TransferClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TransferClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TransferClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-translate/src/TranslateClient.ts b/clients/client-translate/src/TranslateClient.ts index bfbc1ec37b48..e54cf7a0b437 100644 --- a/clients/client-translate/src/TranslateClient.ts +++ b/clients/client-translate/src/TranslateClient.ts @@ -91,6 +91,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -290,6 +296,7 @@ export interface TranslateClientConfig extends TranslateClientConfigType {} */ export type TranslateClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -328,8 +335,9 @@ export class TranslateClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-translate/src/clientConfiguration.ts b/clients/client-translate/src/clientConfiguration.ts new file mode 100644 index 000000000000..db4c2b6845fd --- /dev/null +++ b/clients/client-translate/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface TranslateClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-translate/src/runtimeConfig.shared.ts b/clients/client-translate/src/runtimeConfig.shared.ts index e468a6c0feee..58ae7387b15a 100644 --- a/clients/client-translate/src/runtimeConfig.shared.ts +++ b/clients/client-translate/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: TranslateClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Translate", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-translate/src/runtimeExtensions.ts b/clients/client-translate/src/runtimeExtensions.ts new file mode 100644 index 000000000000..9964fd10b4ed --- /dev/null +++ b/clients/client-translate/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { TranslateClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: TranslateClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: TranslateClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-verifiedpermissions/src/VerifiedPermissionsClient.ts b/clients/client-verifiedpermissions/src/VerifiedPermissionsClient.ts index a1a45f553267..7dceb7f0961f 100644 --- a/clients/client-verifiedpermissions/src/VerifiedPermissionsClient.ts +++ b/clients/client-verifiedpermissions/src/VerifiedPermissionsClient.ts @@ -108,6 +108,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -287,6 +288,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -317,6 +323,7 @@ export interface VerifiedPermissionsClientConfig extends VerifiedPermissionsClie */ export type VerifiedPermissionsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -419,8 +426,9 @@ export class VerifiedPermissionsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-verifiedpermissions/src/clientConfiguration.ts b/clients/client-verifiedpermissions/src/clientConfiguration.ts new file mode 100644 index 000000000000..d01031ff69e3 --- /dev/null +++ b/clients/client-verifiedpermissions/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface VerifiedPermissionsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-verifiedpermissions/src/runtimeConfig.shared.ts b/clients/client-verifiedpermissions/src/runtimeConfig.shared.ts index 94c81ea44ace..8dc7d1e4e3bb 100644 --- a/clients/client-verifiedpermissions/src/runtimeConfig.shared.ts +++ b/clients/client-verifiedpermissions/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: VerifiedPermissionsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "VerifiedPermissions", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-verifiedpermissions/src/runtimeExtensions.ts b/clients/client-verifiedpermissions/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ed554eb7f6af --- /dev/null +++ b/clients/client-verifiedpermissions/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { VerifiedPermissionsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: VerifiedPermissionsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: VerifiedPermissionsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-voice-id/src/VoiceIDClient.ts b/clients/client-voice-id/src/VoiceIDClient.ts index 3a511700bb2b..a51c3b69ebd7 100644 --- a/clients/client-voice-id/src/VoiceIDClient.ts +++ b/clients/client-voice-id/src/VoiceIDClient.ts @@ -110,6 +110,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -299,6 +300,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -329,6 +335,7 @@ export interface VoiceIDClientConfig extends VoiceIDClientConfigType {} */ export type VoiceIDClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -368,8 +375,9 @@ export class VoiceIDClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-voice-id/src/clientConfiguration.ts b/clients/client-voice-id/src/clientConfiguration.ts new file mode 100644 index 000000000000..e2e1b61a17a6 --- /dev/null +++ b/clients/client-voice-id/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface VoiceIDClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-voice-id/src/runtimeConfig.shared.ts b/clients/client-voice-id/src/runtimeConfig.shared.ts index 5cf4d4881838..c95051be86ce 100644 --- a/clients/client-voice-id/src/runtimeConfig.shared.ts +++ b/clients/client-voice-id/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: VoiceIDClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Voice ID", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-voice-id/src/runtimeExtensions.ts b/clients/client-voice-id/src/runtimeExtensions.ts new file mode 100644 index 000000000000..c07397be08fb --- /dev/null +++ b/clients/client-voice-id/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { VoiceIDClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: VoiceIDClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: VoiceIDClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-vpc-lattice/src/VPCLatticeClient.ts b/clients/client-vpc-lattice/src/VPCLatticeClient.ts index da32ec0d1ff9..3234e3394280 100644 --- a/clients/client-vpc-lattice/src/VPCLatticeClient.ts +++ b/clients/client-vpc-lattice/src/VPCLatticeClient.ts @@ -169,6 +169,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -404,6 +405,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -434,6 +440,7 @@ export interface VPCLatticeClientConfig extends VPCLatticeClientConfigType {} */ export type VPCLatticeClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -476,8 +483,9 @@ export class VPCLatticeClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-vpc-lattice/src/clientConfiguration.ts b/clients/client-vpc-lattice/src/clientConfiguration.ts new file mode 100644 index 000000000000..37ddf92e8b31 --- /dev/null +++ b/clients/client-vpc-lattice/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface VPCLatticeClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-vpc-lattice/src/runtimeConfig.shared.ts b/clients/client-vpc-lattice/src/runtimeConfig.shared.ts index 65ffba30bdd7..1d3fdf4a3266 100644 --- a/clients/client-vpc-lattice/src/runtimeConfig.shared.ts +++ b/clients/client-vpc-lattice/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: VPCLatticeClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "VPC Lattice", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-vpc-lattice/src/runtimeExtensions.ts b/clients/client-vpc-lattice/src/runtimeExtensions.ts new file mode 100644 index 000000000000..59e440a5da4e --- /dev/null +++ b/clients/client-vpc-lattice/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { VPCLatticeClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: VPCLatticeClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: VPCLatticeClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-waf-regional/src/WAFRegionalClient.ts b/clients/client-waf-regional/src/WAFRegionalClient.ts index 1d8acfabade8..861147f582f0 100644 --- a/clients/client-waf-regional/src/WAFRegionalClient.ts +++ b/clients/client-waf-regional/src/WAFRegionalClient.ts @@ -243,6 +243,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -536,6 +537,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -566,6 +572,7 @@ export interface WAFRegionalClientConfig extends WAFRegionalClientConfigType {} */ export type WAFRegionalClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -614,8 +621,9 @@ export class WAFRegionalClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-waf-regional/src/clientConfiguration.ts b/clients/client-waf-regional/src/clientConfiguration.ts new file mode 100644 index 000000000000..1ac219695703 --- /dev/null +++ b/clients/client-waf-regional/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WAFRegionalClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-waf-regional/src/runtimeConfig.shared.ts b/clients/client-waf-regional/src/runtimeConfig.shared.ts index bb2b17a82229..11eee53780db 100644 --- a/clients/client-waf-regional/src/runtimeConfig.shared.ts +++ b/clients/client-waf-regional/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WAFRegionalClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WAF Regional", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-waf-regional/src/runtimeExtensions.ts b/clients/client-waf-regional/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d4ccf0ab5043 --- /dev/null +++ b/clients/client-waf-regional/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WAFRegionalClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WAFRegionalClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WAFRegionalClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-waf/src/WAFClient.ts b/clients/client-waf/src/WAFClient.ts index 16e2131ed2c5..3cf74d4eaeeb 100644 --- a/clients/client-waf/src/WAFClient.ts +++ b/clients/client-waf/src/WAFClient.ts @@ -233,6 +233,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -518,6 +519,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -548,6 +554,7 @@ export interface WAFClientConfig extends WAFClientConfigType {} */ export type WAFClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -596,8 +603,9 @@ export class WAFClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-waf/src/clientConfiguration.ts b/clients/client-waf/src/clientConfiguration.ts new file mode 100644 index 000000000000..0aac912146d5 --- /dev/null +++ b/clients/client-waf/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WAFClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-waf/src/runtimeConfig.shared.ts b/clients/client-waf/src/runtimeConfig.shared.ts index 63dc85312daa..da0209f02a73 100644 --- a/clients/client-waf/src/runtimeConfig.shared.ts +++ b/clients/client-waf/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WAFClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WAF", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-waf/src/runtimeExtensions.ts b/clients/client-waf/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d53dfd2c060c --- /dev/null +++ b/clients/client-waf/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WAFClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WAFClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WAFClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-wafv2/src/WAFV2Client.ts b/clients/client-wafv2/src/WAFV2Client.ts index 1f9e1506fb3b..0300802dd99e 100644 --- a/clients/client-wafv2/src/WAFV2Client.ts +++ b/clients/client-wafv2/src/WAFV2Client.ts @@ -191,6 +191,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -428,6 +429,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -458,6 +464,7 @@ export interface WAFV2ClientConfig extends WAFV2ClientConfigType {} */ export type WAFV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -553,8 +560,9 @@ export class WAFV2Client extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-wafv2/src/clientConfiguration.ts b/clients/client-wafv2/src/clientConfiguration.ts new file mode 100644 index 000000000000..da9e2372ffcb --- /dev/null +++ b/clients/client-wafv2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WAFV2ClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-wafv2/src/runtimeConfig.shared.ts b/clients/client-wafv2/src/runtimeConfig.shared.ts index bd953e647702..011d2fee80a2 100644 --- a/clients/client-wafv2/src/runtimeConfig.shared.ts +++ b/clients/client-wafv2/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WAFV2ClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WAFV2", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-wafv2/src/runtimeExtensions.ts b/clients/client-wafv2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..7d888e4a04c9 --- /dev/null +++ b/clients/client-wafv2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WAFV2ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WAFV2ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WAFV2ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-wellarchitected/src/WellArchitectedClient.ts b/clients/client-wellarchitected/src/WellArchitectedClient.ts index 9e1c92174267..68d79a43edba 100644 --- a/clients/client-wellarchitected/src/WellArchitectedClient.ts +++ b/clients/client-wellarchitected/src/WellArchitectedClient.ts @@ -155,6 +155,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -398,6 +399,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -428,6 +434,7 @@ export interface WellArchitectedClientConfig extends WellArchitectedClientConfig */ export type WellArchitectedClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -471,8 +478,9 @@ export class WellArchitectedClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-wellarchitected/src/clientConfiguration.ts b/clients/client-wellarchitected/src/clientConfiguration.ts new file mode 100644 index 000000000000..05fd068dd4e3 --- /dev/null +++ b/clients/client-wellarchitected/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WellArchitectedClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-wellarchitected/src/runtimeConfig.shared.ts b/clients/client-wellarchitected/src/runtimeConfig.shared.ts index 15566a3a1afd..0cd5e30e80d2 100644 --- a/clients/client-wellarchitected/src/runtimeConfig.shared.ts +++ b/clients/client-wellarchitected/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WellArchitectedClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WellArchitected", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-wellarchitected/src/runtimeExtensions.ts b/clients/client-wellarchitected/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b7131cf1b057 --- /dev/null +++ b/clients/client-wellarchitected/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WellArchitectedClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WellArchitectedClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WellArchitectedClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-wisdom/src/WisdomClient.ts b/clients/client-wisdom/src/WisdomClient.ts index 6a3eb94b3a30..2f528cb441cc 100644 --- a/clients/client-wisdom/src/WisdomClient.ts +++ b/clients/client-wisdom/src/WisdomClient.ts @@ -118,6 +118,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -311,6 +312,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -341,6 +347,7 @@ export interface WisdomClientConfig extends WisdomClientConfigType {} */ export type WisdomClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -382,8 +389,9 @@ export class WisdomClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-wisdom/src/clientConfiguration.ts b/clients/client-wisdom/src/clientConfiguration.ts new file mode 100644 index 000000000000..7894e1ae654f --- /dev/null +++ b/clients/client-wisdom/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WisdomClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-wisdom/src/runtimeConfig.shared.ts b/clients/client-wisdom/src/runtimeConfig.shared.ts index 80f48f9198a9..176f9b441834 100644 --- a/clients/client-wisdom/src/runtimeConfig.shared.ts +++ b/clients/client-wisdom/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WisdomClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "Wisdom", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-wisdom/src/runtimeExtensions.ts b/clients/client-wisdom/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5f05f5d917ca --- /dev/null +++ b/clients/client-wisdom/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WisdomClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WisdomClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WisdomClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-workdocs/src/WorkDocsClient.ts b/clients/client-workdocs/src/WorkDocsClient.ts index a401794fcf6f..98490943e5ef 100644 --- a/clients/client-workdocs/src/WorkDocsClient.ts +++ b/clients/client-workdocs/src/WorkDocsClient.ts @@ -155,6 +155,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -374,6 +375,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -404,6 +410,7 @@ export interface WorkDocsClientConfig extends WorkDocsClientConfigType {} */ export type WorkDocsClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -500,8 +507,9 @@ export class WorkDocsClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-workdocs/src/clientConfiguration.ts b/clients/client-workdocs/src/clientConfiguration.ts new file mode 100644 index 000000000000..53fe144eadfe --- /dev/null +++ b/clients/client-workdocs/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkDocsClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-workdocs/src/runtimeConfig.shared.ts b/clients/client-workdocs/src/runtimeConfig.shared.ts index 0ad703765948..3d409755f920 100644 --- a/clients/client-workdocs/src/runtimeConfig.shared.ts +++ b/clients/client-workdocs/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WorkDocsClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WorkDocs", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-workdocs/src/runtimeExtensions.ts b/clients/client-workdocs/src/runtimeExtensions.ts new file mode 100644 index 000000000000..72df819a7183 --- /dev/null +++ b/clients/client-workdocs/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkDocsClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkDocsClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkDocsClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-worklink/src/WorkLinkClient.ts b/clients/client-worklink/src/WorkLinkClient.ts index 76fc9f61fc39..1f25adf0a63a 100644 --- a/clients/client-worklink/src/WorkLinkClient.ts +++ b/clients/client-worklink/src/WorkLinkClient.ts @@ -150,6 +150,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -347,6 +348,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -377,6 +383,7 @@ export interface WorkLinkClientConfig extends WorkLinkClientConfigType {} */ export type WorkLinkClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -421,8 +428,9 @@ export class WorkLinkClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-worklink/src/clientConfiguration.ts b/clients/client-worklink/src/clientConfiguration.ts new file mode 100644 index 000000000000..559797f7c5cb --- /dev/null +++ b/clients/client-worklink/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkLinkClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-worklink/src/runtimeConfig.shared.ts b/clients/client-worklink/src/runtimeConfig.shared.ts index abd9a322e5df..7f256a10c672 100644 --- a/clients/client-worklink/src/runtimeConfig.shared.ts +++ b/clients/client-worklink/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WorkLinkClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WorkLink", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-worklink/src/runtimeExtensions.ts b/clients/client-worklink/src/runtimeExtensions.ts new file mode 100644 index 000000000000..fdb67c46990c --- /dev/null +++ b/clients/client-worklink/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkLinkClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkLinkClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkLinkClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-workmail/src/WorkMailClient.ts b/clients/client-workmail/src/WorkMailClient.ts index 183cafeb0816..edb704bf4ad7 100644 --- a/clients/client-workmail/src/WorkMailClient.ts +++ b/clients/client-workmail/src/WorkMailClient.ts @@ -287,6 +287,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -578,6 +579,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -608,6 +614,7 @@ export interface WorkMailClientConfig extends WorkMailClientConfigType {} */ export type WorkMailClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -681,8 +688,9 @@ export class WorkMailClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-workmail/src/clientConfiguration.ts b/clients/client-workmail/src/clientConfiguration.ts new file mode 100644 index 000000000000..b5141e06f548 --- /dev/null +++ b/clients/client-workmail/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkMailClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-workmail/src/runtimeConfig.shared.ts b/clients/client-workmail/src/runtimeConfig.shared.ts index bf7da7602d1b..bbce37ab0d9a 100644 --- a/clients/client-workmail/src/runtimeConfig.shared.ts +++ b/clients/client-workmail/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WorkMailClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WorkMail", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-workmail/src/runtimeExtensions.ts b/clients/client-workmail/src/runtimeExtensions.ts new file mode 100644 index 000000000000..8f21e9fc7c56 --- /dev/null +++ b/clients/client-workmail/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkMailClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkMailClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkMailClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-workmailmessageflow/src/WorkMailMessageFlowClient.ts b/clients/client-workmailmessageflow/src/WorkMailMessageFlowClient.ts index 911a6d3e18fc..9ecd5a5b9966 100644 --- a/clients/client-workmailmessageflow/src/WorkMailMessageFlowClient.ts +++ b/clients/client-workmailmessageflow/src/WorkMailMessageFlowClient.ts @@ -66,6 +66,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -197,6 +198,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -233,6 +239,7 @@ export interface WorkMailMessageFlowClientConfig extends WorkMailMessageFlowClie */ export type WorkMailMessageFlowClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -275,8 +282,9 @@ export class WorkMailMessageFlowClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-workmailmessageflow/src/clientConfiguration.ts b/clients/client-workmailmessageflow/src/clientConfiguration.ts new file mode 100644 index 000000000000..814065d497f3 --- /dev/null +++ b/clients/client-workmailmessageflow/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkMailMessageFlowClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-workmailmessageflow/src/runtimeConfig.shared.ts b/clients/client-workmailmessageflow/src/runtimeConfig.shared.ts index be6ad0aba547..135a143df74a 100644 --- a/clients/client-workmailmessageflow/src/runtimeConfig.shared.ts +++ b/clients/client-workmailmessageflow/src/runtimeConfig.shared.ts @@ -17,6 +17,7 @@ export const getRuntimeConfig = (config: WorkMailMessageFlowClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, serviceId: config?.serviceId ?? "WorkMailMessageFlow", diff --git a/clients/client-workmailmessageflow/src/runtimeExtensions.ts b/clients/client-workmailmessageflow/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2eb3f85b1fc0 --- /dev/null +++ b/clients/client-workmailmessageflow/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkMailMessageFlowClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkMailMessageFlowClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkMailMessageFlowClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-workspaces-web/src/WorkSpacesWebClient.ts b/clients/client-workspaces-web/src/WorkSpacesWebClient.ts index d49759f0c831..e50cc94585f1 100644 --- a/clients/client-workspaces-web/src/WorkSpacesWebClient.ts +++ b/clients/client-workspaces-web/src/WorkSpacesWebClient.ts @@ -232,6 +232,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -479,6 +480,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -509,6 +515,7 @@ export interface WorkSpacesWebClientConfig extends WorkSpacesWebClientConfigType */ export type WorkSpacesWebClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -552,8 +559,9 @@ export class WorkSpacesWebClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-workspaces-web/src/clientConfiguration.ts b/clients/client-workspaces-web/src/clientConfiguration.ts new file mode 100644 index 000000000000..1ac882f5ca37 --- /dev/null +++ b/clients/client-workspaces-web/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkSpacesWebClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-workspaces-web/src/runtimeConfig.shared.ts b/clients/client-workspaces-web/src/runtimeConfig.shared.ts index 5ea435d5a561..129b77fd9788 100644 --- a/clients/client-workspaces-web/src/runtimeConfig.shared.ts +++ b/clients/client-workspaces-web/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WorkSpacesWebClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WorkSpaces Web", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-workspaces-web/src/runtimeExtensions.ts b/clients/client-workspaces-web/src/runtimeExtensions.ts new file mode 100644 index 000000000000..448091447bd5 --- /dev/null +++ b/clients/client-workspaces-web/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkSpacesWebClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkSpacesWebClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkSpacesWebClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-workspaces/src/WorkSpacesClient.ts b/clients/client-workspaces/src/WorkSpacesClient.ts index ee88164197cb..76105d105329 100644 --- a/clients/client-workspaces/src/WorkSpacesClient.ts +++ b/clients/client-workspaces/src/WorkSpacesClient.ts @@ -257,6 +257,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -518,6 +519,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -548,6 +554,7 @@ export interface WorkSpacesClientConfig extends WorkSpacesClientConfigType {} */ export type WorkSpacesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -602,8 +609,9 @@ export class WorkSpacesClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-workspaces/src/clientConfiguration.ts b/clients/client-workspaces/src/clientConfiguration.ts new file mode 100644 index 000000000000..3f8924097d4f --- /dev/null +++ b/clients/client-workspaces/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface WorkSpacesClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-workspaces/src/runtimeConfig.shared.ts b/clients/client-workspaces/src/runtimeConfig.shared.ts index 1a1aa8527e38..ac8e4a9fe6be 100644 --- a/clients/client-workspaces/src/runtimeConfig.shared.ts +++ b/clients/client-workspaces/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: WorkSpacesClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "WorkSpaces", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-workspaces/src/runtimeExtensions.ts b/clients/client-workspaces/src/runtimeExtensions.ts new file mode 100644 index 000000000000..dc34ccc91399 --- /dev/null +++ b/clients/client-workspaces/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { WorkSpacesClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: WorkSpacesClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: WorkSpacesClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/clients/client-xray/src/XRayClient.ts b/clients/client-xray/src/XRayClient.ts index a00530c0c8f8..4dc1aa87746d 100644 --- a/clients/client-xray/src/XRayClient.ts +++ b/clients/client-xray/src/XRayClient.ts @@ -117,6 +117,7 @@ import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -308,6 +309,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -338,6 +344,7 @@ export interface XRayClientConfig extends XRayClientConfigType {} */ export type XRayClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig & RetryResolvedConfig & @@ -377,8 +384,9 @@ export class XRayClient extends __Client< const _config_5 = resolveHostHeaderConfig(_config_4); const _config_6 = resolveAwsAuthConfig(_config_5); const _config_7 = resolveUserAgentConfig(_config_6); - super(_config_7); - this.config = _config_7; + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/clients/client-xray/src/clientConfiguration.ts b/clients/client-xray/src/clientConfiguration.ts new file mode 100644 index 000000000000..52f281665462 --- /dev/null +++ b/clients/client-xray/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface XRayClientConfiguration extends DefaultClientConfiguration {} diff --git a/clients/client-xray/src/runtimeConfig.shared.ts b/clients/client-xray/src/runtimeConfig.shared.ts index c3074393c343..41b475ae8f09 100644 --- a/clients/client-xray/src/runtimeConfig.shared.ts +++ b/clients/client-xray/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: XRayClientConfig) => ({ base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), serviceId: config?.serviceId ?? "XRay", urlParser: config?.urlParser ?? parseUrl, diff --git a/clients/client-xray/src/runtimeExtensions.ts b/clients/client-xray/src/runtimeExtensions.ts new file mode 100644 index 000000000000..5ef008f6cf64 --- /dev/null +++ b/clients/client-xray/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { XRayClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: XRayClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: XRayClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-echo-service/src/EchoServiceClient.ts b/private/aws-echo-service/src/EchoServiceClient.ts index 67c3753096a1..553be50907bf 100644 --- a/private/aws-echo-service/src/EchoServiceClient.ts +++ b/private/aws-echo-service/src/EchoServiceClient.ts @@ -2,6 +2,7 @@ import { EchoCommandInput, EchoCommandOutput } from "./commands/EchoCommand"; import { LengthCommandInput, LengthCommandOutput } from "./commands/LengthCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { RuntimeExtension, RuntimeExtensionsConfig, resolveRuntimeExtensions } from "./runtimeExtensions"; import { HostHeaderInputConfig, HostHeaderResolvedConfig, @@ -151,6 +152,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -178,6 +184,7 @@ export interface EchoServiceClientConfig extends EchoServiceClientConfigType {} */ export type EchoServiceClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & CustomEndpointsResolvedConfig & RetryResolvedConfig & HostHeaderResolvedConfig & @@ -209,8 +216,9 @@ export class EchoServiceClient extends __Client< let _config_2 = resolveRetryConfig(_config_1); let _config_3 = resolveHostHeaderConfig(_config_2); let _config_4 = resolveUserAgentConfig(_config_3); - super(_config_4); - this.config = _config_4; + let _config_5 = resolveRuntimeExtensions(_config_4, configuration?.extensions || []); + super(_config_5); + this.config = _config_5; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-echo-service/src/clientConfiguration.ts b/private/aws-echo-service/src/clientConfiguration.ts new file mode 100644 index 000000000000..42e0714467b9 --- /dev/null +++ b/private/aws-echo-service/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EchoServiceClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-echo-service/src/runtimeConfig.shared.ts b/private/aws-echo-service/src/runtimeConfig.shared.ts index 5db79fcb7091..49e61049a8ea 100644 --- a/private/aws-echo-service/src/runtimeConfig.shared.ts +++ b/private/aws-echo-service/src/runtimeConfig.shared.ts @@ -13,6 +13,7 @@ export const getRuntimeConfig = (config: EchoServiceClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), urlParser: config?.urlParser ?? parseUrl, utf8Decoder: config?.utf8Decoder ?? fromUtf8, diff --git a/private/aws-echo-service/src/runtimeExtensions.ts b/private/aws-echo-service/src/runtimeExtensions.ts new file mode 100644 index 000000000000..b86e63ca1cb0 --- /dev/null +++ b/private/aws-echo-service/src/runtimeExtensions.ts @@ -0,0 +1,35 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; +import { EchoServiceClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EchoServiceClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EchoServiceClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-ec2/src/EC2ProtocolClient.ts b/private/aws-protocoltests-ec2/src/EC2ProtocolClient.ts index d01bba880aca..d35cbed85f57 100644 --- a/private/aws-protocoltests-ec2/src/EC2ProtocolClient.ts +++ b/private/aws-protocoltests-ec2/src/EC2ProtocolClient.ts @@ -96,6 +96,7 @@ import { XmlListsCommandInput, XmlListsCommandOutput } from "./commands/XmlLists import { XmlNamespacesCommandInput, XmlNamespacesCommandOutput } from "./commands/XmlNamespacesCommand"; import { XmlTimestampsCommandInput, XmlTimestampsCommandOutput } from "./commands/XmlTimestampsCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -272,6 +273,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -300,6 +306,7 @@ export interface EC2ProtocolClientConfig extends EC2ProtocolClientConfigType {} */ export type EC2ProtocolClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -334,8 +341,9 @@ export class EC2ProtocolClient extends __Client< const _config_3 = resolveRetryConfig(_config_2); const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveUserAgentConfig(_config_4); - super(_config_5); - this.config = _config_5; + const _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []); + super(_config_6); + this.config = _config_6; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-protocoltests-ec2/src/clientConfiguration.ts b/private/aws-protocoltests-ec2/src/clientConfiguration.ts new file mode 100644 index 000000000000..a55bd1e0464c --- /dev/null +++ b/private/aws-protocoltests-ec2/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface EC2ProtocolClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-ec2/src/endpoints.ts b/private/aws-protocoltests-ec2/src/endpoints.ts index d123ea013ac8..5e1b8709c2c8 100644 --- a/private/aws-protocoltests-ec2/src/endpoints.ts +++ b/private/aws-protocoltests-ec2/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "awsec2.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-ec2/src/runtimeConfig.shared.ts b/private/aws-protocoltests-ec2/src/runtimeConfig.shared.ts index d497dc79a36e..c1244681f99a 100644 --- a/private/aws-protocoltests-ec2/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-ec2/src/runtimeConfig.shared.ts @@ -15,6 +15,7 @@ export const getRuntimeConfig = (config: EC2ProtocolClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "EC2 Protocol", diff --git a/private/aws-protocoltests-ec2/src/runtimeExtensions.ts b/private/aws-protocoltests-ec2/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2e9c0356ae4a --- /dev/null +++ b/private/aws-protocoltests-ec2/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { EC2ProtocolClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: EC2ProtocolClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: EC2ProtocolClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-json-10/src/JSONRPC10Client.ts b/private/aws-protocoltests-json-10/src/JSONRPC10Client.ts index 05efffe0b589..a90cab04ba20 100644 --- a/private/aws-protocoltests-json-10/src/JSONRPC10Client.ts +++ b/private/aws-protocoltests-json-10/src/JSONRPC10Client.ts @@ -75,6 +75,7 @@ import { SimpleScalarPropertiesCommandOutput, } from "./commands/SimpleScalarPropertiesCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -221,6 +222,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -249,6 +255,7 @@ export interface JSONRPC10ClientConfig extends JSONRPC10ClientConfigType {} */ export type JSONRPC10ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -282,8 +289,9 @@ export class JSONRPC10Client extends __Client< const _config_3 = resolveRetryConfig(_config_2); const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveUserAgentConfig(_config_4); - super(_config_5); - this.config = _config_5; + const _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []); + super(_config_6); + this.config = _config_6; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-protocoltests-json-10/src/clientConfiguration.ts b/private/aws-protocoltests-json-10/src/clientConfiguration.ts new file mode 100644 index 000000000000..d646275dd105 --- /dev/null +++ b/private/aws-protocoltests-json-10/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface JSONRPC10ClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-json-10/src/endpoints.ts b/private/aws-protocoltests-json-10/src/endpoints.ts index d4ba93af5abc..d0d995868ba3 100644 --- a/private/aws-protocoltests-json-10/src/endpoints.ts +++ b/private/aws-protocoltests-json-10/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "jsonrpc10.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-json-10/src/runtimeConfig.shared.ts b/private/aws-protocoltests-json-10/src/runtimeConfig.shared.ts index a127f7381749..bd22c75f51ea 100644 --- a/private/aws-protocoltests-json-10/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-json-10/src/runtimeConfig.shared.ts @@ -15,6 +15,7 @@ export const getRuntimeConfig = (config: JSONRPC10ClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "JSON RPC 10", diff --git a/private/aws-protocoltests-json-10/src/runtimeExtensions.ts b/private/aws-protocoltests-json-10/src/runtimeExtensions.ts new file mode 100644 index 000000000000..2135daee84fa --- /dev/null +++ b/private/aws-protocoltests-json-10/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { JSONRPC10ClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: JSONRPC10ClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: JSONRPC10ClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-json/src/JsonProtocolClient.ts b/private/aws-protocoltests-json/src/JsonProtocolClient.ts index e5fe18b15031..a19336db2df9 100644 --- a/private/aws-protocoltests-json/src/JsonProtocolClient.ts +++ b/private/aws-protocoltests-json/src/JsonProtocolClient.ts @@ -93,6 +93,7 @@ import { SimpleScalarPropertiesCommandOutput, } from "./commands/SimpleScalarPropertiesCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -260,6 +261,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -289,6 +295,7 @@ export interface JsonProtocolClientConfig extends JsonProtocolClientConfigType { */ export type JsonProtocolClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -324,8 +331,9 @@ export class JsonProtocolClient extends __Client< const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveAwsAuthConfig(_config_4); const _config_6 = resolveUserAgentConfig(_config_5); - super(_config_6); - this.config = _config_6; + const _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []); + 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/private/aws-protocoltests-json/src/clientConfiguration.ts b/private/aws-protocoltests-json/src/clientConfiguration.ts new file mode 100644 index 000000000000..2f951dc00afa --- /dev/null +++ b/private/aws-protocoltests-json/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface JsonProtocolClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-json/src/endpoints.ts b/private/aws-protocoltests-json/src/endpoints.ts index 0d17f55c69fc..db7af1ecb62b 100644 --- a/private/aws-protocoltests-json/src/endpoints.ts +++ b/private/aws-protocoltests-json/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "jsonprotocol.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-json/src/runtimeConfig.shared.ts b/private/aws-protocoltests-json/src/runtimeConfig.shared.ts index a049ce2db737..7a7e8893924b 100644 --- a/private/aws-protocoltests-json/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-json/src/runtimeConfig.shared.ts @@ -15,6 +15,7 @@ export const getRuntimeConfig = (config: JsonProtocolClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "Json Protocol", diff --git a/private/aws-protocoltests-json/src/runtimeExtensions.ts b/private/aws-protocoltests-json/src/runtimeExtensions.ts new file mode 100644 index 000000000000..d6549619155a --- /dev/null +++ b/private/aws-protocoltests-json/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { JsonProtocolClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: JsonProtocolClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: JsonProtocolClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-query/src/QueryProtocolClient.ts b/private/aws-protocoltests-query/src/QueryProtocolClient.ts index 09a836168a05..74dade3301a6 100644 --- a/private/aws-protocoltests-query/src/QueryProtocolClient.ts +++ b/private/aws-protocoltests-query/src/QueryProtocolClient.ts @@ -110,6 +110,7 @@ import { XmlMapsXmlNameCommandInput, XmlMapsXmlNameCommandOutput } from "./comma import { XmlNamespacesCommandInput, XmlNamespacesCommandOutput } from "./commands/XmlNamespacesCommand"; import { XmlTimestampsCommandInput, XmlTimestampsCommandOutput } from "./commands/XmlTimestampsCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -302,6 +303,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -330,6 +336,7 @@ export interface QueryProtocolClientConfig extends QueryProtocolClientConfigType */ export type QueryProtocolClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -364,8 +371,9 @@ export class QueryProtocolClient extends __Client< const _config_3 = resolveRetryConfig(_config_2); const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveUserAgentConfig(_config_4); - super(_config_5); - this.config = _config_5; + const _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []); + super(_config_6); + this.config = _config_6; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-protocoltests-query/src/clientConfiguration.ts b/private/aws-protocoltests-query/src/clientConfiguration.ts new file mode 100644 index 000000000000..a51cf41ed92a --- /dev/null +++ b/private/aws-protocoltests-query/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface QueryProtocolClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-query/src/endpoints.ts b/private/aws-protocoltests-query/src/endpoints.ts index c951ac49eaba..80bbdf18baac 100644 --- a/private/aws-protocoltests-query/src/endpoints.ts +++ b/private/aws-protocoltests-query/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "awsquery.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-query/src/runtimeConfig.shared.ts b/private/aws-protocoltests-query/src/runtimeConfig.shared.ts index bf56e0389004..7e169cb1cd3a 100644 --- a/private/aws-protocoltests-query/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-query/src/runtimeConfig.shared.ts @@ -15,6 +15,7 @@ export const getRuntimeConfig = (config: QueryProtocolClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "Query Protocol", diff --git a/private/aws-protocoltests-query/src/runtimeExtensions.ts b/private/aws-protocoltests-query/src/runtimeExtensions.ts new file mode 100644 index 000000000000..a115e5674aca --- /dev/null +++ b/private/aws-protocoltests-query/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { QueryProtocolClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: QueryProtocolClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: QueryProtocolClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-restjson/src/RestJsonProtocolClient.ts b/private/aws-protocoltests-restjson/src/RestJsonProtocolClient.ts index 65f2b3ae7cf9..d8dea22c9f22 100644 --- a/private/aws-protocoltests-restjson/src/RestJsonProtocolClient.ts +++ b/private/aws-protocoltests-restjson/src/RestJsonProtocolClient.ts @@ -297,6 +297,7 @@ import { } from "./commands/TimestampFormatHeadersCommand"; import { UnitInputAndOutputCommandInput, UnitInputAndOutputCommandOutput } from "./commands/UnitInputAndOutputCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -605,6 +606,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * A function that, given a hash constructor and a stream, calculates the * hash of the streamed value. @@ -653,6 +659,7 @@ export interface RestJsonProtocolClientConfig extends RestJsonProtocolClientConf */ export type RestJsonProtocolClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -687,8 +694,9 @@ export class RestJsonProtocolClient extends __Client< const _config_3 = resolveRetryConfig(_config_2); const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveUserAgentConfig(_config_4); - super(_config_5); - this.config = _config_5; + const _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []); + super(_config_6); + this.config = _config_6; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-protocoltests-restjson/src/clientConfiguration.ts b/private/aws-protocoltests-restjson/src/clientConfiguration.ts new file mode 100644 index 000000000000..61bd706fd66e --- /dev/null +++ b/private/aws-protocoltests-restjson/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RestJsonProtocolClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-restjson/src/endpoints.ts b/private/aws-protocoltests-restjson/src/endpoints.ts index e25006a0ddb3..d612eb27f6b3 100644 --- a/private/aws-protocoltests-restjson/src/endpoints.ts +++ b/private/aws-protocoltests-restjson/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "restjson.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-restjson/src/runtimeConfig.shared.ts b/private/aws-protocoltests-restjson/src/runtimeConfig.shared.ts index db7fd8a60752..633975a25446 100644 --- a/private/aws-protocoltests-restjson/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-restjson/src/runtimeConfig.shared.ts @@ -16,6 +16,7 @@ export const getRuntimeConfig = (config: RestJsonProtocolClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin, diff --git a/private/aws-protocoltests-restjson/src/runtimeExtensions.ts b/private/aws-protocoltests-restjson/src/runtimeExtensions.ts new file mode 100644 index 000000000000..405b1fd2df73 --- /dev/null +++ b/private/aws-protocoltests-restjson/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RestJsonProtocolClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RestJsonProtocolClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RestJsonProtocolClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-protocoltests-restxml/src/RestXmlProtocolClient.ts b/private/aws-protocoltests-restxml/src/RestXmlProtocolClient.ts index cce4cd06e93d..d4dc45f6775c 100644 --- a/private/aws-protocoltests-restxml/src/RestXmlProtocolClient.ts +++ b/private/aws-protocoltests-restxml/src/RestXmlProtocolClient.ts @@ -194,6 +194,7 @@ import { XmlNamespacesCommandInput, XmlNamespacesCommandOutput } from "./command import { XmlTimestampsCommandInput, XmlTimestampsCommandOutput } from "./commands/XmlTimestampsCommand"; import { XmlUnionsCommandInput, XmlUnionsCommandOutput } from "./commands/XmlUnionsCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; @@ -434,6 +435,11 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ logger?: __Logger; + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ @@ -462,6 +468,7 @@ export interface RestXmlProtocolClientConfig extends RestXmlProtocolClientConfig */ export type RestXmlProtocolClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & + RuntimeExtensionsConfig & RegionResolvedConfig & EndpointsResolvedConfig & RetryResolvedConfig & @@ -496,8 +503,9 @@ export class RestXmlProtocolClient extends __Client< const _config_3 = resolveRetryConfig(_config_2); const _config_4 = resolveHostHeaderConfig(_config_3); const _config_5 = resolveUserAgentConfig(_config_4); - super(_config_5); - this.config = _config_5; + const _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []); + super(_config_6); + this.config = _config_6; this.middlewareStack.use(getRetryPlugin(this.config)); this.middlewareStack.use(getContentLengthPlugin(this.config)); this.middlewareStack.use(getHostHeaderPlugin(this.config)); diff --git a/private/aws-protocoltests-restxml/src/clientConfiguration.ts b/private/aws-protocoltests-restxml/src/clientConfiguration.ts new file mode 100644 index 000000000000..71cd5f13cbd6 --- /dev/null +++ b/private/aws-protocoltests-restxml/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RestXmlProtocolClientConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-protocoltests-restxml/src/endpoints.ts b/private/aws-protocoltests-restxml/src/endpoints.ts index 69cabd663b91..1ab735db55df 100644 --- a/private/aws-protocoltests-restxml/src/endpoints.ts +++ b/private/aws-protocoltests-restxml/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "eu-west-1", "eu-west-2", "eu-west-3", + "il-central-1", "me-central-1", "me-south-1", "sa-east-1", @@ -35,7 +36,7 @@ const partitionHash: PartitionHash = { "us-west-1", "us-west-2", ], - regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + regionRegex: "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$", variants: [ { hostname: "restxml.{region}.amazonaws.com", diff --git a/private/aws-protocoltests-restxml/src/runtimeConfig.shared.ts b/private/aws-protocoltests-restxml/src/runtimeConfig.shared.ts index b6781ec4b6e8..c3496a9dbe41 100644 --- a/private/aws-protocoltests-restxml/src/runtimeConfig.shared.ts +++ b/private/aws-protocoltests-restxml/src/runtimeConfig.shared.ts @@ -15,6 +15,7 @@ export const getRuntimeConfig = (config: RestXmlProtocolClientConfig) => ({ base64Decoder: config?.base64Decoder ?? fromBase64, base64Encoder: config?.base64Encoder ?? toBase64, disableHostPrefix: config?.disableHostPrefix ?? false, + extensions: config?.extensions ?? [], logger: config?.logger ?? new NoOpLogger(), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "Rest Xml Protocol", diff --git a/private/aws-protocoltests-restxml/src/runtimeExtensions.ts b/private/aws-protocoltests-restxml/src/runtimeExtensions.ts new file mode 100644 index 000000000000..f63c0f8fe849 --- /dev/null +++ b/private/aws-protocoltests-restxml/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RestXmlProtocolClientConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RestXmlProtocolClientConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RestXmlProtocolClientConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-restjson-server/src/clientConfiguration.ts b/private/aws-restjson-server/src/clientConfiguration.ts new file mode 100644 index 000000000000..7b5789124162 --- /dev/null +++ b/private/aws-restjson-server/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RestJsonServiceConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-restjson-server/src/runtimeExtensions.ts b/private/aws-restjson-server/src/runtimeExtensions.ts new file mode 100644 index 000000000000..164b0ea11b07 --- /dev/null +++ b/private/aws-restjson-server/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RestJsonServiceConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RestJsonServiceConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RestJsonServiceConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +}; diff --git a/private/aws-restjson-validation-server/src/clientConfiguration.ts b/private/aws-restjson-validation-server/src/clientConfiguration.ts new file mode 100644 index 000000000000..ba2d1f84d359 --- /dev/null +++ b/private/aws-restjson-validation-server/src/clientConfiguration.ts @@ -0,0 +1,7 @@ +// smithy-typescript generated code +import { DefaultClientConfiguration } from "@smithy/types"; + +/** + * @internal + */ +export interface RestJsonValidationServiceConfiguration extends DefaultClientConfiguration {} diff --git a/private/aws-restjson-validation-server/src/runtimeExtensions.ts b/private/aws-restjson-validation-server/src/runtimeExtensions.ts new file mode 100644 index 000000000000..ede8757bc17e --- /dev/null +++ b/private/aws-restjson-validation-server/src/runtimeExtensions.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +import { getDefaultClientConfiguration, resolveDefaultRuntimeConfig } from "@smithy/types"; + +import { RestJsonValidationServiceConfiguration } from "./clientConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configureClient(clientConfiguration: RestJsonValidationServiceConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const clientConfiguration: RestJsonValidationServiceConfiguration = { + ...asPartial(getDefaultClientConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configureClient(clientConfiguration)); + + return { + ...runtimeConfig, + ...resolveDefaultRuntimeConfig(clientConfiguration), + }; +};