@aws-sdk/client-s3-control 3.489.0 → 3.491.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist-cjs/S3ControlClient.js +18 -5
  2. package/dist-cjs/auth/httpAuthExtensionConfiguration.js +43 -0
  3. package/dist-cjs/auth/httpAuthSchemeProvider.js +47 -0
  4. package/dist-cjs/endpoint/ruleset.js +3 -3
  5. package/dist-cjs/runtimeConfig.shared.js +10 -0
  6. package/dist-cjs/runtimeExtensions.js +3 -0
  7. package/dist-es/S3ControlClient.js +18 -5
  8. package/dist-es/auth/httpAuthExtensionConfiguration.js +38 -0
  9. package/dist-es/auth/httpAuthSchemeProvider.js +41 -0
  10. package/dist-es/endpoint/ruleset.js +3 -3
  11. package/dist-es/runtimeConfig.shared.js +10 -0
  12. package/dist-es/runtimeExtensions.js +3 -0
  13. package/dist-types/S3ControlClient.d.ts +13 -11
  14. package/dist-types/auth/httpAuthExtensionConfiguration.d.ts +29 -0
  15. package/dist-types/auth/httpAuthSchemeProvider.d.ts +61 -0
  16. package/dist-types/extensionConfiguration.d.ts +2 -1
  17. package/dist-types/runtimeConfig.browser.d.ts +6 -4
  18. package/dist-types/runtimeConfig.d.ts +6 -4
  19. package/dist-types/runtimeConfig.native.d.ts +7 -5
  20. package/dist-types/runtimeConfig.shared.d.ts +2 -0
  21. package/dist-types/ts3.4/S3ControlClient.d.ts +11 -9
  22. package/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +32 -0
  23. package/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +44 -0
  24. package/dist-types/ts3.4/extensionConfiguration.d.ts +3 -1
  25. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -9
  26. package/dist-types/ts3.4/runtimeConfig.d.ts +9 -9
  27. package/dist-types/ts3.4/runtimeConfig.native.d.ts +12 -12
  28. package/dist-types/ts3.4/runtimeConfig.shared.d.ts +2 -0
  29. package/package.json +5 -5
@@ -5,14 +5,15 @@ const middleware_host_header_1 = require("@aws-sdk/middleware-host-header");
5
5
  const middleware_logger_1 = require("@aws-sdk/middleware-logger");
6
6
  const middleware_recursion_detection_1 = require("@aws-sdk/middleware-recursion-detection");
7
7
  const middleware_sdk_s3_control_1 = require("@aws-sdk/middleware-sdk-s3-control");
8
- const middleware_signing_1 = require("@aws-sdk/middleware-signing");
9
8
  const middleware_user_agent_1 = require("@aws-sdk/middleware-user-agent");
10
9
  const config_resolver_1 = require("@smithy/config-resolver");
10
+ const core_1 = require("@smithy/core");
11
11
  const middleware_content_length_1 = require("@smithy/middleware-content-length");
12
12
  const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
13
13
  const middleware_retry_1 = require("@smithy/middleware-retry");
14
14
  const smithy_client_1 = require("@smithy/smithy-client");
15
15
  Object.defineProperty(exports, "__Client", { enumerable: true, get: function () { return smithy_client_1.Client; } });
16
+ const httpAuthSchemeProvider_1 = require("./auth/httpAuthSchemeProvider");
16
17
  const EndpointParameters_1 = require("./endpoint/EndpointParameters");
17
18
  const runtimeConfig_1 = require("./runtimeConfig");
18
19
  const runtimeExtensions_1 = require("./runtimeExtensions");
@@ -24,9 +25,9 @@ class S3ControlClient extends smithy_client_1.Client {
24
25
  const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);
25
26
  const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);
26
27
  const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);
27
- const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);
28
- const _config_7 = (0, middleware_sdk_s3_control_1.resolveS3ControlConfig)(_config_6);
29
- const _config_8 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_7);
28
+ const _config_6 = (0, middleware_sdk_s3_control_1.resolveS3ControlConfig)(_config_5);
29
+ const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);
30
+ const _config_8 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_7);
30
31
  const _config_9 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_8, configuration?.extensions || []);
31
32
  super(_config_9);
32
33
  this.config = _config_9;
@@ -35,12 +36,24 @@ class S3ControlClient extends smithy_client_1.Client {
35
36
  this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));
36
37
  this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));
37
38
  this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));
38
- this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(this.config));
39
39
  this.middlewareStack.use((0, middleware_sdk_s3_control_1.getHostPrefixDeduplicationPlugin)(this.config));
40
40
  this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));
41
+ this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {
42
+ httpAuthSchemeParametersProvider: this.getDefaultHttpAuthSchemeParametersProvider(),
43
+ identityProviderConfigProvider: this.getIdentityProviderConfigProvider(),
44
+ }));
45
+ this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));
41
46
  }
42
47
  destroy() {
43
48
  super.destroy();
44
49
  }
50
+ getDefaultHttpAuthSchemeParametersProvider() {
51
+ return httpAuthSchemeProvider_1.defaultS3ControlHttpAuthSchemeParametersProvider;
52
+ }
53
+ getIdentityProviderConfigProvider() {
54
+ return async (config) => new core_1.DefaultIdentityProviderConfig({
55
+ "aws.auth#sigv4": config.credentials,
56
+ });
57
+ }
45
58
  }
46
59
  exports.S3ControlClient = S3ControlClient;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;
4
+ const getHttpAuthExtensionConfiguration = (runtimeConfig) => {
5
+ const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;
6
+ let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;
7
+ let _credentials = runtimeConfig.credentials;
8
+ return {
9
+ setHttpAuthScheme(httpAuthScheme) {
10
+ const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);
11
+ if (index === -1) {
12
+ _httpAuthSchemes.push(httpAuthScheme);
13
+ }
14
+ else {
15
+ _httpAuthSchemes.splice(index, 1, httpAuthScheme);
16
+ }
17
+ },
18
+ httpAuthSchemes() {
19
+ return _httpAuthSchemes;
20
+ },
21
+ setHttpAuthSchemeProvider(httpAuthSchemeProvider) {
22
+ _httpAuthSchemeProvider = httpAuthSchemeProvider;
23
+ },
24
+ httpAuthSchemeProvider() {
25
+ return _httpAuthSchemeProvider;
26
+ },
27
+ setCredentials(credentials) {
28
+ _credentials = credentials;
29
+ },
30
+ credentials() {
31
+ return _credentials;
32
+ },
33
+ };
34
+ };
35
+ exports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;
36
+ const resolveHttpAuthRuntimeConfig = (config) => {
37
+ return {
38
+ httpAuthSchemes: config.httpAuthSchemes(),
39
+ httpAuthSchemeProvider: config.httpAuthSchemeProvider(),
40
+ credentials: config.credentials(),
41
+ };
42
+ };
43
+ exports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHttpAuthSchemeConfig = exports.defaultS3ControlHttpAuthSchemeProvider = exports.defaultS3ControlHttpAuthSchemeParametersProvider = void 0;
4
+ const core_1 = require("@aws-sdk/core");
5
+ const util_middleware_1 = require("@smithy/util-middleware");
6
+ const defaultS3ControlHttpAuthSchemeParametersProvider = async (config, context, input) => {
7
+ return {
8
+ operation: (0, util_middleware_1.getSmithyContext)(context).operation,
9
+ region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||
10
+ (() => {
11
+ throw new Error("expected `region` to be configured for `aws.auth#sigv4`");
12
+ })(),
13
+ };
14
+ };
15
+ exports.defaultS3ControlHttpAuthSchemeParametersProvider = defaultS3ControlHttpAuthSchemeParametersProvider;
16
+ function createAwsAuthSigv4HttpAuthOption(authParameters) {
17
+ return {
18
+ schemeId: "aws.auth#sigv4",
19
+ signingProperties: {
20
+ name: "s3",
21
+ region: authParameters.region,
22
+ },
23
+ propertiesExtractor: (config, context) => ({
24
+ signingProperties: {
25
+ config,
26
+ context,
27
+ },
28
+ }),
29
+ };
30
+ }
31
+ const defaultS3ControlHttpAuthSchemeProvider = (authParameters) => {
32
+ const options = [];
33
+ switch (authParameters.operation) {
34
+ default: {
35
+ options.push(createAwsAuthSigv4HttpAuthOption(authParameters));
36
+ }
37
+ }
38
+ return options;
39
+ };
40
+ exports.defaultS3ControlHttpAuthSchemeProvider = defaultS3ControlHttpAuthSchemeProvider;
41
+ const resolveHttpAuthSchemeConfig = (config) => {
42
+ const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);
43
+ return {
44
+ ...config_0,
45
+ };
46
+ };
47
+ exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ruleSet = void 0;
4
- const aC = "required", aD = "type", aE = "conditions", aF = "fn", aG = "argv", aH = "ref", aI = "assign", aJ = "authSchemes", aK = "disableDoubleEncoding", aL = "name", aM = "signingName", aN = "signingRegion", aO = "x-amz-account-id", aP = "x-amz-outpost-id";
5
- const a = false, b = true, c = "isSet", d = "stringEquals", e = "aws.partition", f = "error", g = "{Region}", h = "endpoint", i = "tree", j = "getAttr", k = "not", l = "isValidHostLabel", m = "{url#scheme}://{url#authority}{url#path}", n = "s3-outposts", o = "aws.parseArn", p = "accessPointArn", q = "resourceId[0]", r = "arnType", s = "service", t = "resourceId[1]", u = "outpostId", v = "arnPartition", w = "{accessPointArn#accountId}", x = "resourceId[2]", y = "outpostType", z = "resourceId[3]", A = "bucketArn", B = "{bucketArn#accountId}", C = { [aC]: false, [aD]: "String" }, D = { [aC]: true, "default": false, [aD]: "Boolean" }, E = { [aC]: false, [aD]: "Boolean" }, F = { [aH]: "Region" }, G = { [aF]: c, [aG]: [{ [aH]: "Endpoint" }] }, H = { [aF]: "parseURL", [aG]: [{ [aH]: "Endpoint" }], [aI]: "url" }, I = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseDualStack" }, true] }, J = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseFIPS" }, true] }, K = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: "s3", [aN]: g }] }, L = {}, M = { [aH]: "OutpostId" }, N = { [aE]: [J, { [aF]: d, [aG]: [{ [aF]: j, [aG]: [{ [aH]: "partitionResult" }, "name"] }, "aws-cn"] }], [f]: "Partition does not support FIPS", [aD]: f }, O = { [aE]: [{ [aF]: c, [aG]: [{ [aH]: "RequiresAccountId" }] }, { [aF]: "booleanEquals", [aG]: [{ [aH]: "RequiresAccountId" }, true] }, { [aF]: k, [aG]: [{ [aF]: c, [aG]: [{ [aH]: "AccountId" }] }] }], [f]: "AccountId is required but not set", [aD]: f }, P = { [aF]: c, [aG]: [{ [aH]: "RequiresAccountId" }] }, Q = { [aF]: "booleanEquals", [aG]: [{ [aH]: "RequiresAccountId" }, true] }, R = { [aF]: c, [aG]: [{ [aH]: "AccountId" }] }, S = { [aH]: "AccountId" }, T = { [aE]: [R, { [aF]: k, [aG]: [{ [aF]: l, [aG]: [S, false] }] }], [f]: "AccountId must only contain a-z, A-Z, 0-9 and `-`.", [aD]: f }, U = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: g }] }, V = { [f]: "Invalid region: region was not a valid DNS name.", [aD]: f }, W = { [aH]: p }, X = { [aF]: k, [aG]: [{ [aF]: d, [aG]: [{ [aH]: r }, ""] }] }, Y = { [aF]: c, [aG]: [{ [aH]: "UseArnRegion" }] }, Z = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseArnRegion" }, false] }, aa = { [aF]: j, [aG]: [W, "region"] }, ab = { [aF]: j, [aG]: [W, "accountId"] }, ac = { [aH]: y }, ad = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: "{accessPointArn#region}" }] }, ae = { [aO]: [w], [aP]: ["{outpostId}"] }, af = { [f]: "Invalid ARN: Expected a 4-component resource", [aD]: f }, ag = { [f]: "Invalid ARN: missing account ID", [aD]: f }, ah = { [f]: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", [aD]: f }, ai = { [f]: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", [aD]: f }, aj = { [f]: "Invalid ARN: The Outpost Id was not set", [aD]: f }, ak = { [f]: "Invalid ARN: No ARN type specified", [aD]: f }, al = { [aH]: A }, am = { [aF]: j, [aG]: [al, "region"] }, an = { [aF]: j, [aG]: [al, "accountId"] }, ao = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: "{bucketArn#region}" }] }, ap = { [aO]: [B], [aP]: ["{outpostId}"] }, aq = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseDualStack" }, false] }, ar = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseFIPS" }, false] }, as = [F], at = [{ [aF]: e, [aG]: [F], [aI]: "partitionResult" }], au = [I], av = [J], aw = [{ [aF]: l, [aG]: [F, true] }], ax = [G, H], ay = [{ [aH]: "AccessPointName" }], az = [{ [aF]: l, [aG]: [{ [aH]: u }, false] }], aA = [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [{ [aH]: v }, "name"] }, { [aF]: j, [aG]: [{ [aH]: "partitionResult" }, "name"] }] }], aB = [{ [aH]: "Bucket" }];
6
- const _data = { version: "1.0", parameters: { Region: C, UseFIPS: D, UseDualStack: D, Endpoint: C, AccountId: C, RequiresAccountId: E, OutpostId: C, Bucket: C, AccessPointName: C, UseArnRegion: E }, rules: [{ [aE]: [{ [aF]: c, [aG]: as }], rules: [{ [aE]: [{ [aF]: d, [aG]: [F, "snow"] }, G, H], rules: [{ [aE]: at, rules: [{ [aE]: au, error: "S3 Snow does not support DualStack", [aD]: f }, { [aE]: av, error: "S3 Snow does not support FIPS", [aD]: f }, { endpoint: { url: "{url#scheme}://{url#authority}", properties: K, headers: L }, [aD]: h }], [aD]: i }], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: [M] }], rules: [{ [aE]: at, rules: [N, O, T, { [aE]: [{ [aF]: k, [aG]: [{ [aF]: l, [aG]: [M, a] }] }], error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", [aD]: f }, { [aE]: aw, rules: [{ [aE]: au, error: "Invalid configuration: Outposts do not support dual-stack", [aD]: f }, { [aE]: ax, endpoint: { url: m, properties: U, headers: L }, [aD]: h }, { [aE]: av, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", properties: U, headers: L }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", properties: U, headers: L }, [aD]: h }], [aD]: i }, V], [aD]: i }], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: ay }, { [aF]: o, [aG]: ay, [aI]: p }], rules: [{ [aE]: [{ [aF]: j, [aG]: [W, q], [aI]: r }, X], rules: [{ [aE]: [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [W, s] }, n] }], rules: [{ [aE]: au, error: "Invalid configuration: Outpost Access Points do not support dual-stack", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [W, t], [aI]: u }], rules: [{ [aE]: az, rules: [{ [aE]: [Y, Z, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [aa, g] }] }], error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aD]: f }, { [aE]: at, rules: [{ [aE]: [{ [aF]: e, [aG]: [aa], [aI]: v }], rules: [{ [aE]: aA, rules: [{ [aE]: [{ [aF]: l, [aG]: [aa, b] }], rules: [{ [aE]: [{ [aF]: k, [aG]: [{ [aF]: d, [aG]: [ab, ""] }] }], rules: [{ [aE]: [{ [aF]: l, [aG]: [ab, a] }], rules: [{ [aE]: [R, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [S, w] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [W, x], [aI]: y }], rules: [{ [aE]: [{ [aF]: j, [aG]: [W, z], [aI]: "accessPointName" }], rules: [{ [aE]: [{ [aF]: d, [aG]: [ac, "accesspoint"] }], rules: [{ [aE]: av, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: ad, headers: ae }, [aD]: h }, { [aE]: ax, endpoint: { url: m, properties: ad, headers: ae }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: ad, headers: ae }, [aD]: h }], [aD]: i }, { error: "Expected an outpost type `accesspoint`, found `{outpostType}`", [aD]: f }], [aD]: i }, { error: "Invalid ARN: expected an access point name", [aD]: f }], [aD]: i }, af], [aD]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", [aD]: f }], [aD]: i }, ag], [aD]: i }, { error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", [aD]: f }], [aD]: i }, ah], [aD]: i }], [aD]: i }], [aD]: i }, ai], [aD]: i }, aj], [aD]: i }], [aD]: i }, ak], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: aB }, { [aF]: o, [aG]: aB, [aI]: A }], rules: [{ [aE]: [{ [aF]: j, [aG]: [al, q], [aI]: r }, X], rules: [{ [aE]: [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [al, s] }, n] }], rules: [{ [aE]: au, error: "Invalid configuration: Outpost buckets do not support dual-stack", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [al, t], [aI]: u }], rules: [{ [aE]: az, rules: [{ [aE]: [Y, Z, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [am, g] }] }], error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aD]: f }, { [aE]: [{ [aF]: e, [aG]: [am], [aI]: v }], rules: [{ [aE]: at, rules: [{ [aE]: aA, rules: [{ [aE]: [{ [aF]: l, [aG]: [am, b] }], rules: [{ [aE]: [{ [aF]: k, [aG]: [{ [aF]: d, [aG]: [an, ""] }] }], rules: [{ [aE]: [{ [aF]: l, [aG]: [an, a] }], rules: [{ [aE]: [R, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [S, B] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [al, x], [aI]: y }], rules: [{ [aE]: [{ [aF]: j, [aG]: [al, z], [aI]: "bucketName" }], rules: [{ [aE]: [{ [aF]: d, [aG]: [ac, "bucket"] }], rules: [{ [aE]: av, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: ao, headers: ap }, [aD]: h }, { [aE]: ax, endpoint: { url: m, properties: ao, headers: ap }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: ao, headers: ap }, [aD]: h }], [aD]: i }, { error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", [aD]: f }], [aD]: i }, { error: "Invalid ARN: expected a bucket name", [aD]: f }], [aD]: i }, af], [aD]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [aD]: f }], [aD]: i }, ag], [aD]: i }, { error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [aD]: f }], [aD]: i }, ah], [aD]: i }], [aD]: i }], [aD]: i }, ai], [aD]: i }, aj], [aD]: i }], [aD]: i }, ak], [aD]: i }, { [aE]: at, rules: [{ [aE]: aw, rules: [N, O, T, { [aE]: ax, rules: [{ [aE]: au, error: "Invalid Configuration: DualStack and custom endpoint are not supported", [aD]: f }, { [aE]: [P, Q, R], endpoint: { url: "{url#scheme}://{AccountId}.{url#authority}{url#path}", properties: K, headers: L }, [aD]: h }, { endpoint: { url: m, properties: K, headers: L }, [aD]: h }], [aD]: i }, { [aE]: [J, I, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, I], endpoint: { url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, aq, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, aq], endpoint: { url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, I, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, I], endpoint: { url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, aq, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, aq], endpoint: { url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }], [aD]: i }, V], [aD]: i }], [aD]: i }, { error: "Region must be set", [aD]: f }] };
4
+ const aF = "required", aG = "type", aH = "conditions", aI = "fn", aJ = "argv", aK = "ref", aL = "assign", aM = "authSchemes", aN = "disableDoubleEncoding", aO = "name", aP = "signingName", aQ = "signingRegion", aR = "x-amz-account-id", aS = "x-amz-outpost-id";
5
+ const a = false, b = true, c = "isSet", d = "stringEquals", e = "aws.partition", f = "error", g = "{Region}", h = "endpoint", i = "tree", j = "getAttr", k = "not", l = "isValidHostLabel", m = "Invalid Configuration: DualStack and custom endpoint are not supported", n = "{url#scheme}://{url#authority}{url#path}", o = "s3-outposts", p = "aws.parseArn", q = "accessPointArn", r = "resourceId[0]", s = "arnType", t = "service", u = "resourceId[1]", v = "outpostId", w = "arnPartition", x = "{accessPointArn#accountId}", y = "resourceId[2]", z = "outpostType", A = "resourceId[3]", B = "bucketArn", C = "{bucketArn#accountId}", D = { [aF]: false, [aG]: "String" }, E = { [aF]: true, "default": false, [aG]: "Boolean" }, F = { [aF]: false, [aG]: "Boolean" }, G = { [aK]: "Region" }, H = { [aI]: c, [aJ]: [{ [aK]: "Endpoint" }] }, I = { [aI]: "parseURL", [aJ]: [{ [aK]: "Endpoint" }], [aL]: "url" }, J = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseDualStack" }, true] }, K = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseFIPS" }, true] }, L = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: "s3", [aQ]: g }] }, M = {}, N = { [aK]: "OutpostId" }, O = { [aH]: [K, { [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [{ [aK]: "partitionResult" }, "name"] }, "aws-cn"] }], [f]: "Partition does not support FIPS", [aG]: f }, P = { [aH]: [{ [aI]: c, [aJ]: [{ [aK]: "RequiresAccountId" }] }, { [aI]: "booleanEquals", [aJ]: [{ [aK]: "RequiresAccountId" }, true] }, { [aI]: k, [aJ]: [{ [aI]: c, [aJ]: [{ [aK]: "AccountId" }] }] }], [f]: "AccountId is required but not set", [aG]: f }, Q = { [aI]: c, [aJ]: [{ [aK]: "RequiresAccountId" }] }, R = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "RequiresAccountId" }, true] }, S = { [aI]: c, [aJ]: [{ [aK]: "AccountId" }] }, T = { [aK]: "AccountId" }, U = { [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: l, [aJ]: [T, false] }] }], [f]: "AccountId must only contain a-z, A-Z, 0-9 and `-`.", [aG]: f }, V = { [aH]: [H, J], [f]: m, [aG]: f }, W = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: g }] }, X = { [f]: "Invalid region: region was not a valid DNS name.", [aG]: f }, Y = { [aK]: q }, Z = { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [{ [aK]: s }, ""] }] }, aa = { [aI]: c, [aJ]: [{ [aK]: "UseArnRegion" }] }, ab = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseArnRegion" }, false] }, ac = { [aI]: j, [aJ]: [Y, "region"] }, ad = { [aI]: j, [aJ]: [Y, "accountId"] }, ae = { [aK]: z }, af = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: "{accessPointArn#region}" }] }, ag = { [aR]: [x], [aS]: ["{outpostId}"] }, ah = { [f]: "Invalid ARN: Expected a 4-component resource", [aG]: f }, ai = { [f]: "Invalid ARN: missing account ID", [aG]: f }, aj = { [f]: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", [aG]: f }, ak = { [f]: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", [aG]: f }, al = { [f]: "Invalid ARN: The Outpost Id was not set", [aG]: f }, am = { [f]: "Invalid ARN: No ARN type specified", [aG]: f }, an = { [aK]: B }, ao = { [aI]: j, [aJ]: [an, "region"] }, ap = { [aI]: j, [aJ]: [an, "accountId"] }, aq = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: "{bucketArn#region}" }] }, ar = { [aR]: [C], [aS]: ["{outpostId}"] }, as = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseDualStack" }, false] }, at = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseFIPS" }, false] }, au = [G], av = [{ [aI]: e, [aJ]: [G], [aL]: "partitionResult" }], aw = [J], ax = [K], ay = [{ [aI]: l, [aJ]: [G, true] }], az = [H, I], aA = [K, J], aB = [{ [aK]: "AccessPointName" }], aC = [{ [aI]: l, [aJ]: [{ [aK]: v }, false] }], aD = [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [{ [aK]: w }, "name"] }, { [aI]: j, [aJ]: [{ [aK]: "partitionResult" }, "name"] }] }], aE = [{ [aK]: "Bucket" }];
6
+ const _data = { version: "1.0", parameters: { Region: D, UseFIPS: E, UseDualStack: E, Endpoint: D, AccountId: D, RequiresAccountId: F, OutpostId: D, Bucket: D, AccessPointName: D, UseArnRegion: F }, rules: [{ [aH]: [{ [aI]: c, [aJ]: au }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [G, "snow"] }, H, I], rules: [{ [aH]: av, rules: [{ [aH]: aw, error: "S3 Snow does not support DualStack", [aG]: f }, { [aH]: ax, error: "S3 Snow does not support FIPS", [aG]: f }, { endpoint: { url: "{url#scheme}://{url#authority}", properties: L, headers: M }, [aG]: h }], [aG]: i }], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: [N] }], rules: [{ [aH]: av, rules: [O, P, U, { [aH]: [{ [aI]: k, [aJ]: [{ [aI]: l, [aJ]: [N, a] }] }], error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", [aG]: f }, V, { [aH]: ay, rules: [{ [aH]: az, endpoint: { url: n, properties: W, headers: M }, [aG]: h }, { [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dualStackDnsSuffix}", properties: W, headers: M }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", properties: W, headers: M }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dualStackDnsSuffix}", properties: W, headers: M }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", properties: W, headers: M }, [aG]: h }], [aG]: i }, X], [aG]: i }], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: aB }, { [aI]: p, [aJ]: aB, [aL]: q }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, r], [aL]: s }, Z], rules: [{ [aH]: [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [Y, t] }, o] }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, u], [aL]: v }], rules: [{ [aH]: aC, rules: [V, { [aH]: [aa, ab, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ac, g] }] }], error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aG]: f }, { [aH]: av, rules: [{ [aH]: [{ [aI]: e, [aJ]: [ac], [aL]: w }], rules: [{ [aH]: aD, rules: [{ [aH]: [{ [aI]: l, [aJ]: [ac, b] }], rules: [{ [aH]: [{ [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ad, ""] }] }], rules: [{ [aH]: [{ [aI]: l, [aJ]: [ad, a] }], rules: [{ [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [T, x] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", [aG]: f }, { [aH]: [{ [aI]: j, [aJ]: [Y, y], [aL]: z }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, A], [aL]: "accessPointName" }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [ae, "accesspoint"] }], rules: [{ [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: az, endpoint: { url: n, properties: af, headers: ag }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: af, headers: ag }, [aG]: h }], [aG]: i }, { error: "Expected an outpost type `accesspoint`, found `{outpostType}`", [aG]: f }], [aG]: i }, { error: "Invalid ARN: expected an access point name", [aG]: f }], [aG]: i }, ah], [aG]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", [aG]: f }], [aG]: i }, ai], [aG]: i }, { error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", [aG]: f }], [aG]: i }, aj], [aG]: i }], [aG]: i }], [aG]: i }, ak], [aG]: i }, al], [aG]: i }], [aG]: i }, am], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: aE }, { [aI]: p, [aJ]: aE, [aL]: B }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, r], [aL]: s }, Z], rules: [{ [aH]: [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [an, t] }, o] }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, u], [aL]: v }], rules: [{ [aH]: aC, rules: [V, { [aH]: [aa, ab, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ao, g] }] }], error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aG]: f }, { [aH]: [{ [aI]: e, [aJ]: [ao], [aL]: w }], rules: [{ [aH]: av, rules: [{ [aH]: aD, rules: [{ [aH]: [{ [aI]: l, [aJ]: [ao, b] }], rules: [{ [aH]: [{ [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ap, ""] }] }], rules: [{ [aH]: [{ [aI]: l, [aJ]: [ap, a] }], rules: [{ [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [T, C] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", [aG]: f }, { [aH]: [{ [aI]: j, [aJ]: [an, y], [aL]: z }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, A], [aL]: "bucketName" }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [ae, "bucket"] }], rules: [{ [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: az, endpoint: { url: n, properties: aq, headers: ar }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: aq, headers: ar }, [aG]: h }], [aG]: i }, { error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", [aG]: f }], [aG]: i }, { error: "Invalid ARN: expected a bucket name", [aG]: f }], [aG]: i }, ah], [aG]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [aG]: f }], [aG]: i }, ai], [aG]: i }, { error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [aG]: f }], [aG]: i }, aj], [aG]: i }], [aG]: i }], [aG]: i }, ak], [aG]: i }, al], [aG]: i }], [aG]: i }, am], [aG]: i }, { [aH]: av, rules: [{ [aH]: ay, rules: [O, P, U, { [aH]: az, rules: [{ [aH]: aw, error: m, [aG]: f }, { [aH]: [Q, R, S], endpoint: { url: "{url#scheme}://{AccountId}.{url#authority}{url#path}", properties: L, headers: M }, [aG]: h }, { endpoint: { url: n, properties: L, headers: M }, [aG]: h }], [aG]: i }, { [aH]: [K, J, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: aA, endpoint: { url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [K, as, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [K, as], endpoint: { url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, J, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, J], endpoint: { url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, as, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, as], endpoint: { url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }], [aG]: i }, X], [aG]: i }], [aG]: i }, { error: "Region must be set", [aG]: f }] };
7
7
  exports.ruleSet = _data;
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRuntimeConfig = void 0;
4
+ const core_1 = require("@aws-sdk/core");
4
5
  const smithy_client_1 = require("@smithy/smithy-client");
5
6
  const url_parser_1 = require("@smithy/url-parser");
6
7
  const util_base64_1 = require("@smithy/util-base64");
7
8
  const util_utf8_1 = require("@smithy/util-utf8");
9
+ const httpAuthSchemeProvider_1 = require("./auth/httpAuthSchemeProvider");
8
10
  const endpointResolver_1 = require("./endpoint/endpointResolver");
9
11
  const getRuntimeConfig = (config) => {
10
12
  return {
@@ -14,6 +16,14 @@ const getRuntimeConfig = (config) => {
14
16
  disableHostPrefix: config?.disableHostPrefix ?? false,
15
17
  endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,
16
18
  extensions: config?.extensions ?? [],
19
+ httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultS3ControlHttpAuthSchemeProvider,
20
+ httpAuthSchemes: config?.httpAuthSchemes ?? [
21
+ {
22
+ schemeId: "aws.auth#sigv4",
23
+ identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
24
+ signer: new core_1.AwsSdkSigV4Signer(),
25
+ },
26
+ ],
17
27
  logger: config?.logger ?? new smithy_client_1.NoOpLogger(),
18
28
  serviceId: config?.serviceId ?? "S3 Control",
19
29
  signingEscapePath: config?.signingEscapePath ?? false,
@@ -4,12 +4,14 @@ exports.resolveRuntimeExtensions = void 0;
4
4
  const region_config_resolver_1 = require("@aws-sdk/region-config-resolver");
5
5
  const protocol_http_1 = require("@smithy/protocol-http");
6
6
  const smithy_client_1 = require("@smithy/smithy-client");
7
+ const httpAuthExtensionConfiguration_1 = require("./auth/httpAuthExtensionConfiguration");
7
8
  const asPartial = (t) => t;
8
9
  const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
9
10
  const extensionConfiguration = {
10
11
  ...asPartial((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig)),
11
12
  ...asPartial((0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig)),
12
13
  ...asPartial((0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig)),
14
+ ...asPartial((0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig)),
13
15
  };
14
16
  extensions.forEach((extension) => extension.configure(extensionConfiguration));
15
17
  return {
@@ -17,6 +19,7 @@ const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
17
19
  ...(0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),
18
20
  ...(0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration),
19
21
  ...(0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),
22
+ ...(0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration),
20
23
  };
21
24
  };
22
25
  exports.resolveRuntimeExtensions = resolveRuntimeExtensions;
@@ -2,13 +2,14 @@ import { getHostHeaderPlugin, resolveHostHeaderConfig, } from "@aws-sdk/middlewa
2
2
  import { getLoggerPlugin } from "@aws-sdk/middleware-logger";
3
3
  import { getRecursionDetectionPlugin } from "@aws-sdk/middleware-recursion-detection";
4
4
  import { getHostPrefixDeduplicationPlugin, resolveS3ControlConfig, } from "@aws-sdk/middleware-sdk-s3-control";
5
- import { getAwsAuthPlugin, resolveAwsAuthConfig, } from "@aws-sdk/middleware-signing";
6
5
  import { getUserAgentPlugin, resolveUserAgentConfig, } from "@aws-sdk/middleware-user-agent";
7
6
  import { resolveRegionConfig } from "@smithy/config-resolver";
7
+ import { DefaultIdentityProviderConfig, getHttpAuthSchemeEndpointRuleSetPlugin, getHttpSigningPlugin, } from "@smithy/core";
8
8
  import { getContentLengthPlugin } from "@smithy/middleware-content-length";
9
9
  import { resolveEndpointConfig } from "@smithy/middleware-endpoint";
10
10
  import { getRetryPlugin, resolveRetryConfig } from "@smithy/middleware-retry";
11
11
  import { Client as __Client, } from "@smithy/smithy-client";
12
+ import { defaultS3ControlHttpAuthSchemeParametersProvider, resolveHttpAuthSchemeConfig, } from "./auth/httpAuthSchemeProvider";
12
13
  import { resolveClientEndpointParameters, } from "./endpoint/EndpointParameters";
13
14
  import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
14
15
  import { resolveRuntimeExtensions } from "./runtimeExtensions";
@@ -21,9 +22,9 @@ export class S3ControlClient extends __Client {
21
22
  const _config_3 = resolveEndpointConfig(_config_2);
22
23
  const _config_4 = resolveRetryConfig(_config_3);
23
24
  const _config_5 = resolveHostHeaderConfig(_config_4);
24
- const _config_6 = resolveAwsAuthConfig(_config_5);
25
- const _config_7 = resolveS3ControlConfig(_config_6);
26
- const _config_8 = resolveUserAgentConfig(_config_7);
25
+ const _config_6 = resolveS3ControlConfig(_config_5);
26
+ const _config_7 = resolveUserAgentConfig(_config_6);
27
+ const _config_8 = resolveHttpAuthSchemeConfig(_config_7);
27
28
  const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);
28
29
  super(_config_9);
29
30
  this.config = _config_9;
@@ -32,11 +33,23 @@ export class S3ControlClient extends __Client {
32
33
  this.middlewareStack.use(getHostHeaderPlugin(this.config));
33
34
  this.middlewareStack.use(getLoggerPlugin(this.config));
34
35
  this.middlewareStack.use(getRecursionDetectionPlugin(this.config));
35
- this.middlewareStack.use(getAwsAuthPlugin(this.config));
36
36
  this.middlewareStack.use(getHostPrefixDeduplicationPlugin(this.config));
37
37
  this.middlewareStack.use(getUserAgentPlugin(this.config));
38
+ this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {
39
+ httpAuthSchemeParametersProvider: this.getDefaultHttpAuthSchemeParametersProvider(),
40
+ identityProviderConfigProvider: this.getIdentityProviderConfigProvider(),
41
+ }));
42
+ this.middlewareStack.use(getHttpSigningPlugin(this.config));
38
43
  }
39
44
  destroy() {
40
45
  super.destroy();
41
46
  }
47
+ getDefaultHttpAuthSchemeParametersProvider() {
48
+ return defaultS3ControlHttpAuthSchemeParametersProvider;
49
+ }
50
+ getIdentityProviderConfigProvider() {
51
+ return async (config) => new DefaultIdentityProviderConfig({
52
+ "aws.auth#sigv4": config.credentials,
53
+ });
54
+ }
42
55
  }
@@ -0,0 +1,38 @@
1
+ export const getHttpAuthExtensionConfiguration = (runtimeConfig) => {
2
+ const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;
3
+ let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;
4
+ let _credentials = runtimeConfig.credentials;
5
+ return {
6
+ setHttpAuthScheme(httpAuthScheme) {
7
+ const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);
8
+ if (index === -1) {
9
+ _httpAuthSchemes.push(httpAuthScheme);
10
+ }
11
+ else {
12
+ _httpAuthSchemes.splice(index, 1, httpAuthScheme);
13
+ }
14
+ },
15
+ httpAuthSchemes() {
16
+ return _httpAuthSchemes;
17
+ },
18
+ setHttpAuthSchemeProvider(httpAuthSchemeProvider) {
19
+ _httpAuthSchemeProvider = httpAuthSchemeProvider;
20
+ },
21
+ httpAuthSchemeProvider() {
22
+ return _httpAuthSchemeProvider;
23
+ },
24
+ setCredentials(credentials) {
25
+ _credentials = credentials;
26
+ },
27
+ credentials() {
28
+ return _credentials;
29
+ },
30
+ };
31
+ };
32
+ export const resolveHttpAuthRuntimeConfig = (config) => {
33
+ return {
34
+ httpAuthSchemes: config.httpAuthSchemes(),
35
+ httpAuthSchemeProvider: config.httpAuthSchemeProvider(),
36
+ credentials: config.credentials(),
37
+ };
38
+ };
@@ -0,0 +1,41 @@
1
+ import { resolveAwsSdkSigV4Config, } from "@aws-sdk/core";
2
+ import { getSmithyContext, normalizeProvider } from "@smithy/util-middleware";
3
+ export const defaultS3ControlHttpAuthSchemeParametersProvider = async (config, context, input) => {
4
+ return {
5
+ operation: getSmithyContext(context).operation,
6
+ region: (await normalizeProvider(config.region)()) ||
7
+ (() => {
8
+ throw new Error("expected `region` to be configured for `aws.auth#sigv4`");
9
+ })(),
10
+ };
11
+ };
12
+ function createAwsAuthSigv4HttpAuthOption(authParameters) {
13
+ return {
14
+ schemeId: "aws.auth#sigv4",
15
+ signingProperties: {
16
+ name: "s3",
17
+ region: authParameters.region,
18
+ },
19
+ propertiesExtractor: (config, context) => ({
20
+ signingProperties: {
21
+ config,
22
+ context,
23
+ },
24
+ }),
25
+ };
26
+ }
27
+ export const defaultS3ControlHttpAuthSchemeProvider = (authParameters) => {
28
+ const options = [];
29
+ switch (authParameters.operation) {
30
+ default: {
31
+ options.push(createAwsAuthSigv4HttpAuthOption(authParameters));
32
+ }
33
+ }
34
+ return options;
35
+ };
36
+ export const resolveHttpAuthSchemeConfig = (config) => {
37
+ const config_0 = resolveAwsSdkSigV4Config(config);
38
+ return {
39
+ ...config_0,
40
+ };
41
+ };
@@ -1,4 +1,4 @@
1
- const aC = "required", aD = "type", aE = "conditions", aF = "fn", aG = "argv", aH = "ref", aI = "assign", aJ = "authSchemes", aK = "disableDoubleEncoding", aL = "name", aM = "signingName", aN = "signingRegion", aO = "x-amz-account-id", aP = "x-amz-outpost-id";
2
- const a = false, b = true, c = "isSet", d = "stringEquals", e = "aws.partition", f = "error", g = "{Region}", h = "endpoint", i = "tree", j = "getAttr", k = "not", l = "isValidHostLabel", m = "{url#scheme}://{url#authority}{url#path}", n = "s3-outposts", o = "aws.parseArn", p = "accessPointArn", q = "resourceId[0]", r = "arnType", s = "service", t = "resourceId[1]", u = "outpostId", v = "arnPartition", w = "{accessPointArn#accountId}", x = "resourceId[2]", y = "outpostType", z = "resourceId[3]", A = "bucketArn", B = "{bucketArn#accountId}", C = { [aC]: false, [aD]: "String" }, D = { [aC]: true, "default": false, [aD]: "Boolean" }, E = { [aC]: false, [aD]: "Boolean" }, F = { [aH]: "Region" }, G = { [aF]: c, [aG]: [{ [aH]: "Endpoint" }] }, H = { [aF]: "parseURL", [aG]: [{ [aH]: "Endpoint" }], [aI]: "url" }, I = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseDualStack" }, true] }, J = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseFIPS" }, true] }, K = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: "s3", [aN]: g }] }, L = {}, M = { [aH]: "OutpostId" }, N = { [aE]: [J, { [aF]: d, [aG]: [{ [aF]: j, [aG]: [{ [aH]: "partitionResult" }, "name"] }, "aws-cn"] }], [f]: "Partition does not support FIPS", [aD]: f }, O = { [aE]: [{ [aF]: c, [aG]: [{ [aH]: "RequiresAccountId" }] }, { [aF]: "booleanEquals", [aG]: [{ [aH]: "RequiresAccountId" }, true] }, { [aF]: k, [aG]: [{ [aF]: c, [aG]: [{ [aH]: "AccountId" }] }] }], [f]: "AccountId is required but not set", [aD]: f }, P = { [aF]: c, [aG]: [{ [aH]: "RequiresAccountId" }] }, Q = { [aF]: "booleanEquals", [aG]: [{ [aH]: "RequiresAccountId" }, true] }, R = { [aF]: c, [aG]: [{ [aH]: "AccountId" }] }, S = { [aH]: "AccountId" }, T = { [aE]: [R, { [aF]: k, [aG]: [{ [aF]: l, [aG]: [S, false] }] }], [f]: "AccountId must only contain a-z, A-Z, 0-9 and `-`.", [aD]: f }, U = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: g }] }, V = { [f]: "Invalid region: region was not a valid DNS name.", [aD]: f }, W = { [aH]: p }, X = { [aF]: k, [aG]: [{ [aF]: d, [aG]: [{ [aH]: r }, ""] }] }, Y = { [aF]: c, [aG]: [{ [aH]: "UseArnRegion" }] }, Z = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseArnRegion" }, false] }, aa = { [aF]: j, [aG]: [W, "region"] }, ab = { [aF]: j, [aG]: [W, "accountId"] }, ac = { [aH]: y }, ad = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: "{accessPointArn#region}" }] }, ae = { [aO]: [w], [aP]: ["{outpostId}"] }, af = { [f]: "Invalid ARN: Expected a 4-component resource", [aD]: f }, ag = { [f]: "Invalid ARN: missing account ID", [aD]: f }, ah = { [f]: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", [aD]: f }, ai = { [f]: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", [aD]: f }, aj = { [f]: "Invalid ARN: The Outpost Id was not set", [aD]: f }, ak = { [f]: "Invalid ARN: No ARN type specified", [aD]: f }, al = { [aH]: A }, am = { [aF]: j, [aG]: [al, "region"] }, an = { [aF]: j, [aG]: [al, "accountId"] }, ao = { [aJ]: [{ [aK]: true, [aL]: "sigv4", [aM]: n, [aN]: "{bucketArn#region}" }] }, ap = { [aO]: [B], [aP]: ["{outpostId}"] }, aq = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseDualStack" }, false] }, ar = { [aF]: "booleanEquals", [aG]: [{ [aH]: "UseFIPS" }, false] }, as = [F], at = [{ [aF]: e, [aG]: [F], [aI]: "partitionResult" }], au = [I], av = [J], aw = [{ [aF]: l, [aG]: [F, true] }], ax = [G, H], ay = [{ [aH]: "AccessPointName" }], az = [{ [aF]: l, [aG]: [{ [aH]: u }, false] }], aA = [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [{ [aH]: v }, "name"] }, { [aF]: j, [aG]: [{ [aH]: "partitionResult" }, "name"] }] }], aB = [{ [aH]: "Bucket" }];
3
- const _data = { version: "1.0", parameters: { Region: C, UseFIPS: D, UseDualStack: D, Endpoint: C, AccountId: C, RequiresAccountId: E, OutpostId: C, Bucket: C, AccessPointName: C, UseArnRegion: E }, rules: [{ [aE]: [{ [aF]: c, [aG]: as }], rules: [{ [aE]: [{ [aF]: d, [aG]: [F, "snow"] }, G, H], rules: [{ [aE]: at, rules: [{ [aE]: au, error: "S3 Snow does not support DualStack", [aD]: f }, { [aE]: av, error: "S3 Snow does not support FIPS", [aD]: f }, { endpoint: { url: "{url#scheme}://{url#authority}", properties: K, headers: L }, [aD]: h }], [aD]: i }], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: [M] }], rules: [{ [aE]: at, rules: [N, O, T, { [aE]: [{ [aF]: k, [aG]: [{ [aF]: l, [aG]: [M, a] }] }], error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", [aD]: f }, { [aE]: aw, rules: [{ [aE]: au, error: "Invalid configuration: Outposts do not support dual-stack", [aD]: f }, { [aE]: ax, endpoint: { url: m, properties: U, headers: L }, [aD]: h }, { [aE]: av, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", properties: U, headers: L }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", properties: U, headers: L }, [aD]: h }], [aD]: i }, V], [aD]: i }], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: ay }, { [aF]: o, [aG]: ay, [aI]: p }], rules: [{ [aE]: [{ [aF]: j, [aG]: [W, q], [aI]: r }, X], rules: [{ [aE]: [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [W, s] }, n] }], rules: [{ [aE]: au, error: "Invalid configuration: Outpost Access Points do not support dual-stack", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [W, t], [aI]: u }], rules: [{ [aE]: az, rules: [{ [aE]: [Y, Z, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [aa, g] }] }], error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aD]: f }, { [aE]: at, rules: [{ [aE]: [{ [aF]: e, [aG]: [aa], [aI]: v }], rules: [{ [aE]: aA, rules: [{ [aE]: [{ [aF]: l, [aG]: [aa, b] }], rules: [{ [aE]: [{ [aF]: k, [aG]: [{ [aF]: d, [aG]: [ab, ""] }] }], rules: [{ [aE]: [{ [aF]: l, [aG]: [ab, a] }], rules: [{ [aE]: [R, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [S, w] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [W, x], [aI]: y }], rules: [{ [aE]: [{ [aF]: j, [aG]: [W, z], [aI]: "accessPointName" }], rules: [{ [aE]: [{ [aF]: d, [aG]: [ac, "accesspoint"] }], rules: [{ [aE]: av, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: ad, headers: ae }, [aD]: h }, { [aE]: ax, endpoint: { url: m, properties: ad, headers: ae }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: ad, headers: ae }, [aD]: h }], [aD]: i }, { error: "Expected an outpost type `accesspoint`, found `{outpostType}`", [aD]: f }], [aD]: i }, { error: "Invalid ARN: expected an access point name", [aD]: f }], [aD]: i }, af], [aD]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", [aD]: f }], [aD]: i }, ag], [aD]: i }, { error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", [aD]: f }], [aD]: i }, ah], [aD]: i }], [aD]: i }], [aD]: i }, ai], [aD]: i }, aj], [aD]: i }], [aD]: i }, ak], [aD]: i }, { [aE]: [{ [aF]: c, [aG]: aB }, { [aF]: o, [aG]: aB, [aI]: A }], rules: [{ [aE]: [{ [aF]: j, [aG]: [al, q], [aI]: r }, X], rules: [{ [aE]: [{ [aF]: d, [aG]: [{ [aF]: j, [aG]: [al, s] }, n] }], rules: [{ [aE]: au, error: "Invalid configuration: Outpost buckets do not support dual-stack", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [al, t], [aI]: u }], rules: [{ [aE]: az, rules: [{ [aE]: [Y, Z, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [am, g] }] }], error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aD]: f }, { [aE]: [{ [aF]: e, [aG]: [am], [aI]: v }], rules: [{ [aE]: at, rules: [{ [aE]: aA, rules: [{ [aE]: [{ [aF]: l, [aG]: [am, b] }], rules: [{ [aE]: [{ [aF]: k, [aG]: [{ [aF]: d, [aG]: [an, ""] }] }], rules: [{ [aE]: [{ [aF]: l, [aG]: [an, a] }], rules: [{ [aE]: [R, { [aF]: k, [aG]: [{ [aF]: d, [aG]: [S, B] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", [aD]: f }, { [aE]: [{ [aF]: j, [aG]: [al, x], [aI]: y }], rules: [{ [aE]: [{ [aF]: j, [aG]: [al, z], [aI]: "bucketName" }], rules: [{ [aE]: [{ [aF]: d, [aG]: [ac, "bucket"] }], rules: [{ [aE]: av, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: ao, headers: ap }, [aD]: h }, { [aE]: ax, endpoint: { url: m, properties: ao, headers: ap }, [aD]: h }, { endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: ao, headers: ap }, [aD]: h }], [aD]: i }, { error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", [aD]: f }], [aD]: i }, { error: "Invalid ARN: expected a bucket name", [aD]: f }], [aD]: i }, af], [aD]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [aD]: f }], [aD]: i }, ag], [aD]: i }, { error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [aD]: f }], [aD]: i }, ah], [aD]: i }], [aD]: i }], [aD]: i }, ai], [aD]: i }, aj], [aD]: i }], [aD]: i }, ak], [aD]: i }, { [aE]: at, rules: [{ [aE]: aw, rules: [N, O, T, { [aE]: ax, rules: [{ [aE]: au, error: "Invalid Configuration: DualStack and custom endpoint are not supported", [aD]: f }, { [aE]: [P, Q, R], endpoint: { url: "{url#scheme}://{AccountId}.{url#authority}{url#path}", properties: K, headers: L }, [aD]: h }, { endpoint: { url: m, properties: K, headers: L }, [aD]: h }], [aD]: i }, { [aE]: [J, I, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, I], endpoint: { url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, aq, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [J, aq], endpoint: { url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, I, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, I], endpoint: { url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, aq, P, Q, R], endpoint: { url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }, { [aE]: [ar, aq], endpoint: { url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}", properties: K, headers: L }, [aD]: h }], [aD]: i }, V], [aD]: i }], [aD]: i }, { error: "Region must be set", [aD]: f }] };
1
+ const aF = "required", aG = "type", aH = "conditions", aI = "fn", aJ = "argv", aK = "ref", aL = "assign", aM = "authSchemes", aN = "disableDoubleEncoding", aO = "name", aP = "signingName", aQ = "signingRegion", aR = "x-amz-account-id", aS = "x-amz-outpost-id";
2
+ const a = false, b = true, c = "isSet", d = "stringEquals", e = "aws.partition", f = "error", g = "{Region}", h = "endpoint", i = "tree", j = "getAttr", k = "not", l = "isValidHostLabel", m = "Invalid Configuration: DualStack and custom endpoint are not supported", n = "{url#scheme}://{url#authority}{url#path}", o = "s3-outposts", p = "aws.parseArn", q = "accessPointArn", r = "resourceId[0]", s = "arnType", t = "service", u = "resourceId[1]", v = "outpostId", w = "arnPartition", x = "{accessPointArn#accountId}", y = "resourceId[2]", z = "outpostType", A = "resourceId[3]", B = "bucketArn", C = "{bucketArn#accountId}", D = { [aF]: false, [aG]: "String" }, E = { [aF]: true, "default": false, [aG]: "Boolean" }, F = { [aF]: false, [aG]: "Boolean" }, G = { [aK]: "Region" }, H = { [aI]: c, [aJ]: [{ [aK]: "Endpoint" }] }, I = { [aI]: "parseURL", [aJ]: [{ [aK]: "Endpoint" }], [aL]: "url" }, J = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseDualStack" }, true] }, K = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseFIPS" }, true] }, L = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: "s3", [aQ]: g }] }, M = {}, N = { [aK]: "OutpostId" }, O = { [aH]: [K, { [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [{ [aK]: "partitionResult" }, "name"] }, "aws-cn"] }], [f]: "Partition does not support FIPS", [aG]: f }, P = { [aH]: [{ [aI]: c, [aJ]: [{ [aK]: "RequiresAccountId" }] }, { [aI]: "booleanEquals", [aJ]: [{ [aK]: "RequiresAccountId" }, true] }, { [aI]: k, [aJ]: [{ [aI]: c, [aJ]: [{ [aK]: "AccountId" }] }] }], [f]: "AccountId is required but not set", [aG]: f }, Q = { [aI]: c, [aJ]: [{ [aK]: "RequiresAccountId" }] }, R = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "RequiresAccountId" }, true] }, S = { [aI]: c, [aJ]: [{ [aK]: "AccountId" }] }, T = { [aK]: "AccountId" }, U = { [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: l, [aJ]: [T, false] }] }], [f]: "AccountId must only contain a-z, A-Z, 0-9 and `-`.", [aG]: f }, V = { [aH]: [H, J], [f]: m, [aG]: f }, W = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: g }] }, X = { [f]: "Invalid region: region was not a valid DNS name.", [aG]: f }, Y = { [aK]: q }, Z = { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [{ [aK]: s }, ""] }] }, aa = { [aI]: c, [aJ]: [{ [aK]: "UseArnRegion" }] }, ab = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseArnRegion" }, false] }, ac = { [aI]: j, [aJ]: [Y, "region"] }, ad = { [aI]: j, [aJ]: [Y, "accountId"] }, ae = { [aK]: z }, af = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: "{accessPointArn#region}" }] }, ag = { [aR]: [x], [aS]: ["{outpostId}"] }, ah = { [f]: "Invalid ARN: Expected a 4-component resource", [aG]: f }, ai = { [f]: "Invalid ARN: missing account ID", [aG]: f }, aj = { [f]: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", [aG]: f }, ak = { [f]: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", [aG]: f }, al = { [f]: "Invalid ARN: The Outpost Id was not set", [aG]: f }, am = { [f]: "Invalid ARN: No ARN type specified", [aG]: f }, an = { [aK]: B }, ao = { [aI]: j, [aJ]: [an, "region"] }, ap = { [aI]: j, [aJ]: [an, "accountId"] }, aq = { [aM]: [{ [aN]: true, [aO]: "sigv4", [aP]: o, [aQ]: "{bucketArn#region}" }] }, ar = { [aR]: [C], [aS]: ["{outpostId}"] }, as = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseDualStack" }, false] }, at = { [aI]: "booleanEquals", [aJ]: [{ [aK]: "UseFIPS" }, false] }, au = [G], av = [{ [aI]: e, [aJ]: [G], [aL]: "partitionResult" }], aw = [J], ax = [K], ay = [{ [aI]: l, [aJ]: [G, true] }], az = [H, I], aA = [K, J], aB = [{ [aK]: "AccessPointName" }], aC = [{ [aI]: l, [aJ]: [{ [aK]: v }, false] }], aD = [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [{ [aK]: w }, "name"] }, { [aI]: j, [aJ]: [{ [aK]: "partitionResult" }, "name"] }] }], aE = [{ [aK]: "Bucket" }];
3
+ const _data = { version: "1.0", parameters: { Region: D, UseFIPS: E, UseDualStack: E, Endpoint: D, AccountId: D, RequiresAccountId: F, OutpostId: D, Bucket: D, AccessPointName: D, UseArnRegion: F }, rules: [{ [aH]: [{ [aI]: c, [aJ]: au }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [G, "snow"] }, H, I], rules: [{ [aH]: av, rules: [{ [aH]: aw, error: "S3 Snow does not support DualStack", [aG]: f }, { [aH]: ax, error: "S3 Snow does not support FIPS", [aG]: f }, { endpoint: { url: "{url#scheme}://{url#authority}", properties: L, headers: M }, [aG]: h }], [aG]: i }], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: [N] }], rules: [{ [aH]: av, rules: [O, P, U, { [aH]: [{ [aI]: k, [aJ]: [{ [aI]: l, [aJ]: [N, a] }] }], error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", [aG]: f }, V, { [aH]: ay, rules: [{ [aH]: az, endpoint: { url: n, properties: W, headers: M }, [aG]: h }, { [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dualStackDnsSuffix}", properties: W, headers: M }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", properties: W, headers: M }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dualStackDnsSuffix}", properties: W, headers: M }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", properties: W, headers: M }, [aG]: h }], [aG]: i }, X], [aG]: i }], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: aB }, { [aI]: p, [aJ]: aB, [aL]: q }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, r], [aL]: s }, Z], rules: [{ [aH]: [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [Y, t] }, o] }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, u], [aL]: v }], rules: [{ [aH]: aC, rules: [V, { [aH]: [aa, ab, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ac, g] }] }], error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aG]: f }, { [aH]: av, rules: [{ [aH]: [{ [aI]: e, [aJ]: [ac], [aL]: w }], rules: [{ [aH]: aD, rules: [{ [aH]: [{ [aI]: l, [aJ]: [ac, b] }], rules: [{ [aH]: [{ [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ad, ""] }] }], rules: [{ [aH]: [{ [aI]: l, [aJ]: [ad, a] }], rules: [{ [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [T, x] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", [aG]: f }, { [aH]: [{ [aI]: j, [aJ]: [Y, y], [aL]: z }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [Y, A], [aL]: "accessPointName" }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [ae, "accesspoint"] }], rules: [{ [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", properties: af, headers: ag }, [aG]: h }, { [aH]: az, endpoint: { url: n, properties: af, headers: ag }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: af, headers: ag }, [aG]: h }], [aG]: i }, { error: "Expected an outpost type `accesspoint`, found `{outpostType}`", [aG]: f }], [aG]: i }, { error: "Invalid ARN: expected an access point name", [aG]: f }], [aG]: i }, ah], [aG]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", [aG]: f }], [aG]: i }, ai], [aG]: i }, { error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", [aG]: f }], [aG]: i }, aj], [aG]: i }], [aG]: i }], [aG]: i }, ak], [aG]: i }, al], [aG]: i }], [aG]: i }, am], [aG]: i }, { [aH]: [{ [aI]: c, [aJ]: aE }, { [aI]: p, [aJ]: aE, [aL]: B }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, r], [aL]: s }, Z], rules: [{ [aH]: [{ [aI]: d, [aJ]: [{ [aI]: j, [aJ]: [an, t] }, o] }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, u], [aL]: v }], rules: [{ [aH]: aC, rules: [V, { [aH]: [aa, ab, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ao, g] }] }], error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aG]: f }, { [aH]: [{ [aI]: e, [aJ]: [ao], [aL]: w }], rules: [{ [aH]: av, rules: [{ [aH]: aD, rules: [{ [aH]: [{ [aI]: l, [aJ]: [ao, b] }], rules: [{ [aH]: [{ [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [ap, ""] }] }], rules: [{ [aH]: [{ [aI]: l, [aJ]: [ap, a] }], rules: [{ [aH]: [S, { [aI]: k, [aJ]: [{ [aI]: d, [aJ]: [T, C] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", [aG]: f }, { [aH]: [{ [aI]: j, [aJ]: [an, y], [aL]: z }], rules: [{ [aH]: [{ [aI]: j, [aJ]: [an, A], [aL]: "bucketName" }], rules: [{ [aH]: [{ [aI]: d, [aJ]: [ae, "bucket"] }], rules: [{ [aH]: aA, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: ax, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: aw, endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", properties: aq, headers: ar }, [aG]: h }, { [aH]: az, endpoint: { url: n, properties: aq, headers: ar }, [aG]: h }, { endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: aq, headers: ar }, [aG]: h }], [aG]: i }, { error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", [aG]: f }], [aG]: i }, { error: "Invalid ARN: expected a bucket name", [aG]: f }], [aG]: i }, ah], [aG]: i }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [aG]: f }], [aG]: i }, ai], [aG]: i }, { error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [aG]: f }], [aG]: i }, aj], [aG]: i }], [aG]: i }], [aG]: i }, ak], [aG]: i }, al], [aG]: i }], [aG]: i }, am], [aG]: i }, { [aH]: av, rules: [{ [aH]: ay, rules: [O, P, U, { [aH]: az, rules: [{ [aH]: aw, error: m, [aG]: f }, { [aH]: [Q, R, S], endpoint: { url: "{url#scheme}://{AccountId}.{url#authority}{url#path}", properties: L, headers: M }, [aG]: h }, { endpoint: { url: n, properties: L, headers: M }, [aG]: h }], [aG]: i }, { [aH]: [K, J, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: aA, endpoint: { url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [K, as, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [K, as], endpoint: { url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, J, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, J], endpoint: { url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, as, Q, R, S], endpoint: { url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }, { [aH]: [at, as], endpoint: { url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}", properties: L, headers: M }, [aG]: h }], [aG]: i }, X], [aG]: i }], [aG]: i }, { error: "Region must be set", [aG]: f }] };
4
4
  export const ruleSet = _data;
@@ -1,7 +1,9 @@
1
+ import { AwsSdkSigV4Signer } from "@aws-sdk/core";
1
2
  import { NoOpLogger } from "@smithy/smithy-client";
2
3
  import { parseUrl } from "@smithy/url-parser";
3
4
  import { fromBase64, toBase64 } from "@smithy/util-base64";
4
5
  import { fromUtf8, toUtf8 } from "@smithy/util-utf8";
6
+ import { defaultS3ControlHttpAuthSchemeProvider } from "./auth/httpAuthSchemeProvider";
5
7
  import { defaultEndpointResolver } from "./endpoint/endpointResolver";
6
8
  export const getRuntimeConfig = (config) => {
7
9
  return {
@@ -11,6 +13,14 @@ export const getRuntimeConfig = (config) => {
11
13
  disableHostPrefix: config?.disableHostPrefix ?? false,
12
14
  endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,
13
15
  extensions: config?.extensions ?? [],
16
+ httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultS3ControlHttpAuthSchemeProvider,
17
+ httpAuthSchemes: config?.httpAuthSchemes ?? [
18
+ {
19
+ schemeId: "aws.auth#sigv4",
20
+ identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
21
+ signer: new AwsSdkSigV4Signer(),
22
+ },
23
+ ],
14
24
  logger: config?.logger ?? new NoOpLogger(),
15
25
  serviceId: config?.serviceId ?? "S3 Control",
16
26
  signingEscapePath: config?.signingEscapePath ?? false,
@@ -1,12 +1,14 @@
1
1
  import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from "@aws-sdk/region-config-resolver";
2
2
  import { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from "@smithy/protocol-http";
3
3
  import { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from "@smithy/smithy-client";
4
+ import { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from "./auth/httpAuthExtensionConfiguration";
4
5
  const asPartial = (t) => t;
5
6
  export const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
6
7
  const extensionConfiguration = {
7
8
  ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)),
8
9
  ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),
9
10
  ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),
11
+ ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)),
10
12
  };
11
13
  extensions.forEach((extension) => extension.configure(extensionConfiguration));
12
14
  return {
@@ -14,5 +16,6 @@ export const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
14
16
  ...resolveAwsRegionExtensionConfiguration(extensionConfiguration),
15
17
  ...resolveDefaultRuntimeConfig(extensionConfiguration),
16
18
  ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),
19
+ ...resolveHttpAuthRuntimeConfig(extensionConfiguration),
17
20
  };
18
21
  };
@@ -1,16 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import { HostHeaderInputConfig, HostHeaderResolvedConfig } from "@aws-sdk/middleware-host-header";
3
3
  import { S3ControlInputConfig, S3ControlResolvedConfig } from "@aws-sdk/middleware-sdk-s3-control";
4
- import { AwsAuthInputConfig, AwsAuthResolvedConfig } from "@aws-sdk/middleware-signing";
5
4
  import { UserAgentInputConfig, UserAgentResolvedConfig } from "@aws-sdk/middleware-user-agent";
6
- import { Credentials as __Credentials } from "@aws-sdk/types";
7
5
  import { RegionInputConfig, RegionResolvedConfig } from "@smithy/config-resolver";
8
6
  import { EndpointInputConfig, EndpointResolvedConfig } from "@smithy/middleware-endpoint";
9
7
  import { RetryInputConfig, RetryResolvedConfig } from "@smithy/middleware-retry";
10
8
  import { HttpHandler as __HttpHandler } from "@smithy/protocol-http";
11
9
  import { Client as __Client, DefaultsMode as __DefaultsMode, SmithyConfiguration as __SmithyConfiguration, SmithyResolvedConfiguration as __SmithyResolvedConfiguration } from "@smithy/smithy-client";
12
- import { BodyLengthCalculator as __BodyLengthCalculator, CheckOptionalClientConfig as __CheckOptionalClientConfig, ChecksumConstructor as __ChecksumConstructor, Decoder as __Decoder, Encoder as __Encoder, HashConstructor as __HashConstructor, HttpHandlerOptions as __HttpHandlerOptions, Logger as __Logger, Provider as __Provider, Provider, StreamCollector as __StreamCollector, StreamHasher as __StreamHasher, UrlParser as __UrlParser, UserAgent as __UserAgent } from "@smithy/types";
10
+ import { AwsCredentialIdentityProvider, BodyLengthCalculator as __BodyLengthCalculator, CheckOptionalClientConfig as __CheckOptionalClientConfig, ChecksumConstructor as __ChecksumConstructor, Decoder as __Decoder, Encoder as __Encoder, HashConstructor as __HashConstructor, HttpHandlerOptions as __HttpHandlerOptions, Logger as __Logger, Provider as __Provider, Provider, StreamCollector as __StreamCollector, StreamHasher as __StreamHasher, UrlParser as __UrlParser, UserAgent as __UserAgent } from "@smithy/types";
13
11
  import { Readable } from "stream";
12
+ import { HttpAuthSchemeInputConfig, HttpAuthSchemeResolvedConfig } from "./auth/httpAuthSchemeProvider";
14
13
  import { AssociateAccessGrantsIdentityCenterCommandInput, AssociateAccessGrantsIdentityCenterCommandOutput } from "./commands/AssociateAccessGrantsIdentityCenterCommand";
15
14
  import { CreateAccessGrantCommandInput, CreateAccessGrantCommandOutput } from "./commands/CreateAccessGrantCommand";
16
15
  import { CreateAccessGrantsInstanceCommandInput, CreateAccessGrantsInstanceCommandOutput } from "./commands/CreateAccessGrantsInstanceCommand";
@@ -186,20 +185,21 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
186
185
  * Enables FIPS compatible endpoints.
187
186
  */
188
187
  useFipsEndpoint?: boolean | __Provider<boolean>;
188
+ /**
189
+ * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header
190
+ * @internal
191
+ */
192
+ defaultUserAgentProvider?: Provider<__UserAgent>;
189
193
  /**
190
194
  * The AWS region to which this client will send requests
191
195
  */
192
196
  region?: string | __Provider<string>;
193
197
  /**
194
198
  * Default credentials provider; Not available in browser runtime.
199
+ * @deprecated
195
200
  * @internal
196
201
  */
197
- credentialDefaultProvider?: (input: any) => __Provider<__Credentials>;
198
- /**
199
- * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header
200
- * @internal
201
- */
202
- defaultUserAgentProvider?: Provider<__UserAgent>;
202
+ credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider;
203
203
  /**
204
204
  * Value for how many times a request will be made at most in case of retry.
205
205
  */
@@ -238,7 +238,7 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
238
238
  /**
239
239
  * @public
240
240
  */
241
- export type S3ControlClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & ClientDefaults & RegionInputConfig & EndpointInputConfig<EndpointParameters> & RetryInputConfig & HostHeaderInputConfig & AwsAuthInputConfig & S3ControlInputConfig & UserAgentInputConfig & ClientInputEndpointParameters;
241
+ export type S3ControlClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & ClientDefaults & RegionInputConfig & EndpointInputConfig<EndpointParameters> & RetryInputConfig & HostHeaderInputConfig & S3ControlInputConfig & UserAgentInputConfig & HttpAuthSchemeInputConfig & ClientInputEndpointParameters;
242
242
  /**
243
243
  * @public
244
244
  *
@@ -249,7 +249,7 @@ export interface S3ControlClientConfig extends S3ControlClientConfigType {
249
249
  /**
250
250
  * @public
251
251
  */
252
- export type S3ControlClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required<ClientDefaults> & RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig<EndpointParameters> & RetryResolvedConfig & HostHeaderResolvedConfig & AwsAuthResolvedConfig & S3ControlResolvedConfig & UserAgentResolvedConfig & ClientResolvedEndpointParameters;
252
+ export type S3ControlClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required<ClientDefaults> & RuntimeExtensionsConfig & RegionResolvedConfig & EndpointResolvedConfig<EndpointParameters> & RetryResolvedConfig & HostHeaderResolvedConfig & S3ControlResolvedConfig & UserAgentResolvedConfig & HttpAuthSchemeResolvedConfig & ClientResolvedEndpointParameters;
253
253
  /**
254
254
  * @public
255
255
  *
@@ -273,4 +273,6 @@ export declare class S3ControlClient extends __Client<__HttpHandlerOptions, Serv
273
273
  * Otherwise, sockets might stay open for quite a long time before the server terminates them.
274
274
  */
275
275
  destroy(): void;
276
+ private getDefaultHttpAuthSchemeParametersProvider;
277
+ private getIdentityProviderConfigProvider;
276
278
  }
@@ -0,0 +1,29 @@
1
+ import { AwsCredentialIdentity, AwsCredentialIdentityProvider, HttpAuthScheme } from "@smithy/types";
2
+ import { S3ControlHttpAuthSchemeProvider } from "./httpAuthSchemeProvider";
3
+ /**
4
+ * @internal
5
+ */
6
+ export interface HttpAuthExtensionConfiguration {
7
+ setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void;
8
+ httpAuthSchemes(): HttpAuthScheme[];
9
+ setHttpAuthSchemeProvider(httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider): void;
10
+ httpAuthSchemeProvider(): S3ControlHttpAuthSchemeProvider;
11
+ setCredentials(credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider): void;
12
+ credentials(): AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined;
13
+ }
14
+ /**
15
+ * @internal
16
+ */
17
+ export type HttpAuthRuntimeConfig = Partial<{
18
+ httpAuthSchemes: HttpAuthScheme[];
19
+ httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
20
+ credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider;
21
+ }>;
22
+ /**
23
+ * @internal
24
+ */
25
+ export declare const getHttpAuthExtensionConfiguration: (runtimeConfig: HttpAuthRuntimeConfig) => HttpAuthExtensionConfiguration;
26
+ /**
27
+ * @internal
28
+ */
29
+ export declare const resolveHttpAuthRuntimeConfig: (config: HttpAuthExtensionConfiguration) => HttpAuthRuntimeConfig;
@@ -0,0 +1,61 @@
1
+ import { AwsSdkSigV4AuthInputConfig, AwsSdkSigV4AuthResolvedConfig, AwsSdkSigV4PreviouslyResolved } from "@aws-sdk/core";
2
+ import { HandlerExecutionContext, HttpAuthScheme, HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "@smithy/types";
3
+ import { S3ControlClientResolvedConfig } from "../S3ControlClient";
4
+ /**
5
+ * @internal
6
+ */
7
+ export interface S3ControlHttpAuthSchemeParameters extends HttpAuthSchemeParameters {
8
+ region?: string;
9
+ }
10
+ /**
11
+ * @internal
12
+ */
13
+ export interface S3ControlHttpAuthSchemeParametersProvider extends HttpAuthSchemeParametersProvider<S3ControlClientResolvedConfig, HandlerExecutionContext, S3ControlHttpAuthSchemeParameters, object> {
14
+ }
15
+ /**
16
+ * @internal
17
+ */
18
+ export declare const defaultS3ControlHttpAuthSchemeParametersProvider: (config: S3ControlClientResolvedConfig, context: HandlerExecutionContext, input: object) => Promise<S3ControlHttpAuthSchemeParameters>;
19
+ /**
20
+ * @internal
21
+ */
22
+ export interface S3ControlHttpAuthSchemeProvider extends HttpAuthSchemeProvider<S3ControlHttpAuthSchemeParameters> {
23
+ }
24
+ /**
25
+ * @internal
26
+ */
27
+ export declare const defaultS3ControlHttpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
28
+ /**
29
+ * @internal
30
+ */
31
+ export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig {
32
+ /**
33
+ * experimentalIdentityAndAuth: Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme.
34
+ * @internal
35
+ */
36
+ httpAuthSchemes?: HttpAuthScheme[];
37
+ /**
38
+ * experimentalIdentityAndAuth: Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use.
39
+ * @internal
40
+ */
41
+ httpAuthSchemeProvider?: S3ControlHttpAuthSchemeProvider;
42
+ }
43
+ /**
44
+ * @internal
45
+ */
46
+ export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedConfig {
47
+ /**
48
+ * experimentalIdentityAndAuth: Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme.
49
+ * @internal
50
+ */
51
+ readonly httpAuthSchemes: HttpAuthScheme[];
52
+ /**
53
+ * experimentalIdentityAndAuth: Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use.
54
+ * @internal
55
+ */
56
+ readonly httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
57
+ }
58
+ /**
59
+ * @internal
60
+ */
61
+ export declare const resolveHttpAuthSchemeConfig: <T>(config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved) => T & HttpAuthSchemeResolvedConfig;
@@ -1,8 +1,9 @@
1
1
  import { AwsRegionExtensionConfiguration } from "@aws-sdk/types";
2
2
  import { HttpHandlerExtensionConfiguration } from "@smithy/protocol-http";
3
3
  import { DefaultExtensionConfiguration } from "@smithy/types";
4
+ import { HttpAuthExtensionConfiguration } from "./auth/httpAuthExtensionConfiguration";
4
5
  /**
5
6
  * @internal
6
7
  */
7
- export interface S3ControlExtensionConfiguration extends HttpHandlerExtensionConfiguration, DefaultExtensionConfiguration, AwsRegionExtensionConfiguration {
8
+ export interface S3ControlExtensionConfiguration extends HttpHandlerExtensionConfiguration, DefaultExtensionConfiguration, AwsRegionExtensionConfiguration, HttpAuthExtensionConfiguration {
8
9
  }
@@ -8,7 +8,7 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
8
8
  runtime: string;
9
9
  defaultsMode: import("@smithy/types").Provider<import("@smithy/smithy-client").ResolvedDefaultsMode>;
10
10
  bodyLengthChecker: import("@smithy/types").BodyLengthCalculator;
11
- credentialDefaultProvider: (input: any) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
11
+ credentialDefaultProvider: (input: any) => import("@smithy/types").AwsCredentialIdentityProvider;
12
12
  defaultUserAgentProvider: import("@smithy/types").Provider<import("@smithy/types").UserAgent>;
13
13
  maxAttempts: number | import("@smithy/types").Provider<number>;
14
14
  md5: import("@smithy/types").HashConstructor;
@@ -39,12 +39,14 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
39
39
  }) => import("@smithy/types").EndpointV2;
40
40
  tls?: boolean | undefined;
41
41
  retryStrategy?: import("@smithy/types").RetryStrategy | import("@smithy/types").RetryStrategyV2 | undefined;
42
- credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").Provider<import("@smithy/types").AwsCredentialIdentity> | undefined;
42
+ useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
43
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
44
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
45
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
46
+ credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").AwsCredentialIdentityProvider | undefined;
43
47
  signer?: import("@smithy/types").RequestSigner | ((authScheme?: import("@smithy/types").AuthScheme | undefined) => Promise<import("@smithy/types").RequestSigner>) | undefined;
44
48
  signingEscapePath: boolean;
45
49
  systemClockOffset?: number | undefined;
46
50
  signingRegion?: string | undefined;
47
51
  signerConstructor?: (new (options: import("@smithy/signature-v4").SignatureV4Init & import("@smithy/signature-v4").SignatureV4CryptoInit) => import("@smithy/types").RequestSigner) | undefined;
48
- useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
49
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
50
52
  };
@@ -8,7 +8,7 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
8
8
  runtime: string;
9
9
  defaultsMode: import("@smithy/types").Provider<import("@smithy/smithy-client").ResolvedDefaultsMode>;
10
10
  bodyLengthChecker: import("@smithy/types").BodyLengthCalculator;
11
- credentialDefaultProvider: (input: any) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
11
+ credentialDefaultProvider: (input: any) => import("@smithy/types").AwsCredentialIdentityProvider;
12
12
  defaultUserAgentProvider: import("@smithy/types").Provider<import("@smithy/types").UserAgent>;
13
13
  maxAttempts: number | import("@smithy/types").Provider<number>;
14
14
  md5: import("@smithy/types").HashConstructor;
@@ -39,12 +39,14 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
39
39
  }) => import("@smithy/types").EndpointV2;
40
40
  tls?: boolean | undefined;
41
41
  retryStrategy?: import("@smithy/types").RetryStrategy | import("@smithy/types").RetryStrategyV2 | undefined;
42
- credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").Provider<import("@smithy/types").AwsCredentialIdentity> | undefined;
42
+ useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
43
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
44
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
45
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
46
+ credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").AwsCredentialIdentityProvider | undefined;
43
47
  signer?: import("@smithy/types").RequestSigner | ((authScheme?: import("@smithy/types").AuthScheme | undefined) => Promise<import("@smithy/types").RequestSigner>) | undefined;
44
48
  signingEscapePath: boolean;
45
49
  systemClockOffset?: number | undefined;
46
50
  signingRegion?: string | undefined;
47
51
  signerConstructor?: (new (options: import("@smithy/signature-v4").SignatureV4Init & import("@smithy/signature-v4").SignatureV4CryptoInit) => import("@smithy/types").RequestSigner) | undefined;
48
- useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
49
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
50
52
  };
@@ -22,9 +22,9 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
22
22
  serviceId: string;
23
23
  useDualstackEndpoint: boolean | import("@smithy/types").Provider<boolean>;
24
24
  useFipsEndpoint: boolean | import("@smithy/types").Provider<boolean>;
25
- region: string | import("@smithy/types").Provider<any>;
26
- credentialDefaultProvider: (input: any) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
27
25
  defaultUserAgentProvider: import("@smithy/types").Provider<import("@smithy/types").UserAgent>;
26
+ region: string | import("@smithy/types").Provider<any>;
27
+ credentialDefaultProvider: (input: any) => import("@smithy/types").AwsCredentialIdentityProvider;
28
28
  maxAttempts: number | import("@smithy/types").Provider<number>;
29
29
  retryMode: string | import("@smithy/types").Provider<string>;
30
30
  logger: import("@smithy/types").Logger;
@@ -38,12 +38,14 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
38
38
  }) => import("@smithy/types").EndpointV2;
39
39
  tls?: boolean | undefined;
40
40
  retryStrategy?: import("@smithy/types").RetryStrategy | import("@smithy/types").RetryStrategyV2 | undefined;
41
- credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").Provider<import("@smithy/types").AwsCredentialIdentity> | undefined;
41
+ useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
42
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
43
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
44
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
45
+ credentials?: import("@smithy/types").AwsCredentialIdentity | import("@smithy/types").AwsCredentialIdentityProvider | undefined;
42
46
  signer?: import("@smithy/types").RequestSigner | ((authScheme?: import("@smithy/types").AuthScheme | undefined) => Promise<import("@smithy/types").RequestSigner>) | undefined;
43
47
  signingEscapePath: boolean;
44
48
  systemClockOffset?: number | undefined;
45
49
  signingRegion?: string | undefined;
46
50
  signerConstructor?: (new (options: import("@smithy/signature-v4").SignatureV4Init & import("@smithy/signature-v4").SignatureV4CryptoInit) => import("@smithy/types").RequestSigner) | undefined;
47
- useArnRegion?: boolean | import("@smithy/types").Provider<boolean> | undefined;
48
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
49
51
  };
@@ -11,6 +11,8 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
11
11
  logger?: import("@smithy/types").Logger | undefined;
12
12
  }) => import("@smithy/types").EndpointV2;
13
13
  extensions: import("./runtimeExtensions").RuntimeExtension[];
14
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
15
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
14
16
  logger: import("@smithy/types").Logger;
15
17
  serviceId: string;
16
18
  signingEscapePath: boolean;
@@ -6,15 +6,10 @@ import {
6
6
  S3ControlInputConfig,
7
7
  S3ControlResolvedConfig,
8
8
  } from "@aws-sdk/middleware-sdk-s3-control";
9
- import {
10
- AwsAuthInputConfig,
11
- AwsAuthResolvedConfig,
12
- } from "@aws-sdk/middleware-signing";
13
9
  import {
14
10
  UserAgentInputConfig,
15
11
  UserAgentResolvedConfig,
16
12
  } from "@aws-sdk/middleware-user-agent";
17
- import { Credentials as __Credentials } from "@aws-sdk/types";
18
13
  import {
19
14
  RegionInputConfig,
20
15
  RegionResolvedConfig,
@@ -35,6 +30,7 @@ import {
35
30
  SmithyResolvedConfiguration as __SmithyResolvedConfiguration,
36
31
  } from "@smithy/smithy-client";
37
32
  import {
33
+ AwsCredentialIdentityProvider,
38
34
  BodyLengthCalculator as __BodyLengthCalculator,
39
35
  CheckOptionalClientConfig as __CheckOptionalClientConfig,
40
36
  ChecksumConstructor as __ChecksumConstructor,
@@ -51,6 +47,10 @@ import {
51
47
  UserAgent as __UserAgent,
52
48
  } from "@smithy/types";
53
49
  import { Readable } from "stream";
50
+ import {
51
+ HttpAuthSchemeInputConfig,
52
+ HttpAuthSchemeResolvedConfig,
53
+ } from "./auth/httpAuthSchemeProvider";
54
54
  import {
55
55
  AssociateAccessGrantsIdentityCenterCommandInput,
56
56
  AssociateAccessGrantsIdentityCenterCommandOutput,
@@ -628,9 +628,9 @@ export interface ClientDefaults
628
628
  serviceId?: string;
629
629
  useDualstackEndpoint?: boolean | __Provider<boolean>;
630
630
  useFipsEndpoint?: boolean | __Provider<boolean>;
631
- region?: string | __Provider<string>;
632
- credentialDefaultProvider?: (input: any) => __Provider<__Credentials>;
633
631
  defaultUserAgentProvider?: Provider<__UserAgent>;
632
+ region?: string | __Provider<string>;
633
+ credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider;
634
634
  maxAttempts?: number | __Provider<number>;
635
635
  retryMode?: string | __Provider<string>;
636
636
  logger?: __Logger;
@@ -647,9 +647,9 @@ export type S3ControlClientConfigType = Partial<
647
647
  EndpointInputConfig<EndpointParameters> &
648
648
  RetryInputConfig &
649
649
  HostHeaderInputConfig &
650
- AwsAuthInputConfig &
651
650
  S3ControlInputConfig &
652
651
  UserAgentInputConfig &
652
+ HttpAuthSchemeInputConfig &
653
653
  ClientInputEndpointParameters;
654
654
  export interface S3ControlClientConfig extends S3ControlClientConfigType {}
655
655
  export type S3ControlClientResolvedConfigType =
@@ -660,9 +660,9 @@ export type S3ControlClientResolvedConfigType =
660
660
  EndpointResolvedConfig<EndpointParameters> &
661
661
  RetryResolvedConfig &
662
662
  HostHeaderResolvedConfig &
663
- AwsAuthResolvedConfig &
664
663
  S3ControlResolvedConfig &
665
664
  UserAgentResolvedConfig &
665
+ HttpAuthSchemeResolvedConfig &
666
666
  ClientResolvedEndpointParameters;
667
667
  export interface S3ControlClientResolvedConfig
668
668
  extends S3ControlClientResolvedConfigType {}
@@ -677,4 +677,6 @@ export declare class S3ControlClient extends __Client<
677
677
  ...[configuration]: __CheckOptionalClientConfig<S3ControlClientConfig>
678
678
  );
679
679
  destroy(): void;
680
+ private getDefaultHttpAuthSchemeParametersProvider;
681
+ private getIdentityProviderConfigProvider;
680
682
  }
@@ -0,0 +1,32 @@
1
+ import {
2
+ AwsCredentialIdentity,
3
+ AwsCredentialIdentityProvider,
4
+ HttpAuthScheme,
5
+ } from "@smithy/types";
6
+ import { S3ControlHttpAuthSchemeProvider } from "./httpAuthSchemeProvider";
7
+ export interface HttpAuthExtensionConfiguration {
8
+ setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void;
9
+ httpAuthSchemes(): HttpAuthScheme[];
10
+ setHttpAuthSchemeProvider(
11
+ httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider
12
+ ): void;
13
+ httpAuthSchemeProvider(): S3ControlHttpAuthSchemeProvider;
14
+ setCredentials(
15
+ credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider
16
+ ): void;
17
+ credentials():
18
+ | AwsCredentialIdentity
19
+ | AwsCredentialIdentityProvider
20
+ | undefined;
21
+ }
22
+ export type HttpAuthRuntimeConfig = Partial<{
23
+ httpAuthSchemes: HttpAuthScheme[];
24
+ httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
25
+ credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider;
26
+ }>;
27
+ export declare const getHttpAuthExtensionConfiguration: (
28
+ runtimeConfig: HttpAuthRuntimeConfig
29
+ ) => HttpAuthExtensionConfiguration;
30
+ export declare const resolveHttpAuthRuntimeConfig: (
31
+ config: HttpAuthExtensionConfiguration
32
+ ) => HttpAuthRuntimeConfig;
@@ -0,0 +1,44 @@
1
+ import {
2
+ AwsSdkSigV4AuthInputConfig,
3
+ AwsSdkSigV4AuthResolvedConfig,
4
+ AwsSdkSigV4PreviouslyResolved,
5
+ } from "@aws-sdk/core";
6
+ import {
7
+ HandlerExecutionContext,
8
+ HttpAuthScheme,
9
+ HttpAuthSchemeParameters,
10
+ HttpAuthSchemeParametersProvider,
11
+ HttpAuthSchemeProvider,
12
+ } from "@smithy/types";
13
+ import { S3ControlClientResolvedConfig } from "../S3ControlClient";
14
+ export interface S3ControlHttpAuthSchemeParameters
15
+ extends HttpAuthSchemeParameters {
16
+ region?: string;
17
+ }
18
+ export interface S3ControlHttpAuthSchemeParametersProvider
19
+ extends HttpAuthSchemeParametersProvider<
20
+ S3ControlClientResolvedConfig,
21
+ HandlerExecutionContext,
22
+ S3ControlHttpAuthSchemeParameters,
23
+ object
24
+ > {}
25
+ export declare const defaultS3ControlHttpAuthSchemeParametersProvider: (
26
+ config: S3ControlClientResolvedConfig,
27
+ context: HandlerExecutionContext,
28
+ input: object
29
+ ) => Promise<S3ControlHttpAuthSchemeParameters>;
30
+ export interface S3ControlHttpAuthSchemeProvider
31
+ extends HttpAuthSchemeProvider<S3ControlHttpAuthSchemeParameters> {}
32
+ export declare const defaultS3ControlHttpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
33
+ export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig {
34
+ httpAuthSchemes?: HttpAuthScheme[];
35
+ httpAuthSchemeProvider?: S3ControlHttpAuthSchemeProvider;
36
+ }
37
+ export interface HttpAuthSchemeResolvedConfig
38
+ extends AwsSdkSigV4AuthResolvedConfig {
39
+ readonly httpAuthSchemes: HttpAuthScheme[];
40
+ readonly httpAuthSchemeProvider: S3ControlHttpAuthSchemeProvider;
41
+ }
42
+ export declare const resolveHttpAuthSchemeConfig: <T>(
43
+ config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved
44
+ ) => T & HttpAuthSchemeResolvedConfig;
@@ -1,7 +1,9 @@
1
1
  import { AwsRegionExtensionConfiguration } from "@aws-sdk/types";
2
2
  import { HttpHandlerExtensionConfiguration } from "@smithy/protocol-http";
3
3
  import { DefaultExtensionConfiguration } from "@smithy/types";
4
+ import { HttpAuthExtensionConfiguration } from "./auth/httpAuthExtensionConfiguration";
4
5
  export interface S3ControlExtensionConfiguration
5
6
  extends HttpHandlerExtensionConfiguration,
6
7
  DefaultExtensionConfiguration,
7
- AwsRegionExtensionConfiguration {}
8
+ AwsRegionExtensionConfiguration,
9
+ HttpAuthExtensionConfiguration {}
@@ -8,7 +8,7 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
8
8
  bodyLengthChecker: import("@smithy/types").BodyLengthCalculator;
9
9
  credentialDefaultProvider: (
10
10
  input: any
11
- ) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
11
+ ) => import("@smithy/types").AwsCredentialIdentityProvider;
12
12
  defaultUserAgentProvider: import("@smithy/types").Provider<
13
13
  import("@smithy/types").UserAgent
14
14
  >;
@@ -76,11 +76,16 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
76
76
  | import("@smithy/types").RetryStrategy
77
77
  | import("@smithy/types").RetryStrategyV2
78
78
  | undefined;
79
+ useArnRegion?:
80
+ | boolean
81
+ | import("@smithy/types").Provider<boolean>
82
+ | undefined;
83
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
84
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
85
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
79
86
  credentials?:
80
87
  | import("@smithy/types").AwsCredentialIdentity
81
- | import("@smithy/types").Provider<
82
- import("@smithy/types").AwsCredentialIdentity
83
- >
88
+ | import("@smithy/types").AwsCredentialIdentityProvider
84
89
  | undefined;
85
90
  signer?:
86
91
  | import("@smithy/types").RequestSigner
@@ -97,9 +102,4 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
97
102
  import("@smithy/signature-v4").SignatureV4CryptoInit
98
103
  ) => import("@smithy/types").RequestSigner)
99
104
  | undefined;
100
- useArnRegion?:
101
- | boolean
102
- | import("@smithy/types").Provider<boolean>
103
- | undefined;
104
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
105
105
  };
@@ -8,7 +8,7 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
8
8
  bodyLengthChecker: import("@smithy/types").BodyLengthCalculator;
9
9
  credentialDefaultProvider: (
10
10
  input: any
11
- ) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
11
+ ) => import("@smithy/types").AwsCredentialIdentityProvider;
12
12
  defaultUserAgentProvider: import("@smithy/types").Provider<
13
13
  import("@smithy/types").UserAgent
14
14
  >;
@@ -76,11 +76,16 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
76
76
  | import("@smithy/types").RetryStrategy
77
77
  | import("@smithy/types").RetryStrategyV2
78
78
  | undefined;
79
+ useArnRegion?:
80
+ | boolean
81
+ | import("@smithy/types").Provider<boolean>
82
+ | undefined;
83
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
84
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
85
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
79
86
  credentials?:
80
87
  | import("@smithy/types").AwsCredentialIdentity
81
- | import("@smithy/types").Provider<
82
- import("@smithy/types").AwsCredentialIdentity
83
- >
88
+ | import("@smithy/types").AwsCredentialIdentityProvider
84
89
  | undefined;
85
90
  signer?:
86
91
  | import("@smithy/types").RequestSigner
@@ -97,9 +102,4 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
97
102
  import("@smithy/signature-v4").SignatureV4CryptoInit
98
103
  ) => import("@smithy/types").RequestSigner)
99
104
  | undefined;
100
- useArnRegion?:
101
- | boolean
102
- | import("@smithy/types").Provider<boolean>
103
- | undefined;
104
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
105
105
  };
@@ -29,13 +29,13 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
29
29
  serviceId: string;
30
30
  useDualstackEndpoint: boolean | import("@smithy/types").Provider<boolean>;
31
31
  useFipsEndpoint: boolean | import("@smithy/types").Provider<boolean>;
32
- region: string | import("@smithy/types").Provider<any>;
33
- credentialDefaultProvider: (
34
- input: any
35
- ) => import("@smithy/types").Provider<import("@aws-sdk/types").Credentials>;
36
32
  defaultUserAgentProvider: import("@smithy/types").Provider<
37
33
  import("@smithy/types").UserAgent
38
34
  >;
35
+ region: string | import("@smithy/types").Provider<any>;
36
+ credentialDefaultProvider: (
37
+ input: any
38
+ ) => import("@smithy/types").AwsCredentialIdentityProvider;
39
39
  maxAttempts: number | import("@smithy/types").Provider<number>;
40
40
  retryMode: string | import("@smithy/types").Provider<string>;
41
41
  logger: import("@smithy/types").Logger;
@@ -67,11 +67,16 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
67
67
  | import("@smithy/types").RetryStrategy
68
68
  | import("@smithy/types").RetryStrategyV2
69
69
  | undefined;
70
+ useArnRegion?:
71
+ | boolean
72
+ | import("@smithy/types").Provider<boolean>
73
+ | undefined;
74
+ customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
75
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
76
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
70
77
  credentials?:
71
78
  | import("@smithy/types").AwsCredentialIdentity
72
- | import("@smithy/types").Provider<
73
- import("@smithy/types").AwsCredentialIdentity
74
- >
79
+ | import("@smithy/types").AwsCredentialIdentityProvider
75
80
  | undefined;
76
81
  signer?:
77
82
  | import("@smithy/types").RequestSigner
@@ -88,9 +93,4 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
88
93
  import("@smithy/signature-v4").SignatureV4CryptoInit
89
94
  ) => import("@smithy/types").RequestSigner)
90
95
  | undefined;
91
- useArnRegion?:
92
- | boolean
93
- | import("@smithy/types").Provider<boolean>
94
- | undefined;
95
- customUserAgent?: string | import("@smithy/types").UserAgent | undefined;
96
96
  };
@@ -11,6 +11,8 @@ export declare const getRuntimeConfig: (config: S3ControlClientConfig) => {
11
11
  }
12
12
  ) => import("@smithy/types").EndpointV2;
13
13
  extensions: import("./runtimeExtensions").RuntimeExtension[];
14
+ httpAuthSchemeProvider: import("./auth/httpAuthSchemeProvider").S3ControlHttpAuthSchemeProvider;
15
+ httpAuthSchemes: import("@smithy/types").HttpAuthScheme[];
14
16
  logger: import("@smithy/types").Logger;
15
17
  serviceId: string;
16
18
  signingEscapePath: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-s3-control",
3
3
  "description": "AWS SDK for JavaScript S3 Control Client for Node.js, Browser and React Native",
4
- "version": "3.489.0",
4
+ "version": "3.491.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
7
7
  "build:cjs": "tsc -p tsconfig.cjs.json",
@@ -22,14 +22,13 @@
22
22
  "dependencies": {
23
23
  "@aws-crypto/sha256-browser": "3.0.0",
24
24
  "@aws-crypto/sha256-js": "3.0.0",
25
- "@aws-sdk/client-sts": "3.489.0",
26
- "@aws-sdk/core": "3.485.0",
27
- "@aws-sdk/credential-provider-node": "3.489.0",
25
+ "@aws-sdk/client-sts": "3.490.0",
26
+ "@aws-sdk/core": "3.490.0",
27
+ "@aws-sdk/credential-provider-node": "3.490.0",
28
28
  "@aws-sdk/middleware-host-header": "3.489.0",
29
29
  "@aws-sdk/middleware-logger": "3.489.0",
30
30
  "@aws-sdk/middleware-recursion-detection": "3.489.0",
31
31
  "@aws-sdk/middleware-sdk-s3-control": "3.489.0",
32
- "@aws-sdk/middleware-signing": "3.489.0",
33
32
  "@aws-sdk/middleware-user-agent": "3.489.0",
34
33
  "@aws-sdk/region-config-resolver": "3.489.0",
35
34
  "@aws-sdk/types": "3.489.0",
@@ -63,6 +62,7 @@
63
62
  "@smithy/util-defaults-mode-browser": "^2.0.24",
64
63
  "@smithy/util-defaults-mode-node": "^2.0.32",
65
64
  "@smithy/util-endpoints": "^1.0.8",
65
+ "@smithy/util-middleware": "^2.0.9",
66
66
  "@smithy/util-retry": "^2.0.9",
67
67
  "@smithy/util-utf8": "^2.0.2",
68
68
  "fast-xml-parser": "4.2.5",