@aws-sdk/client-sesv2 3.699.0 → 3.709.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.
@@ -2,8 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveHttpAuthSchemeConfig = exports.defaultSESv2HttpAuthSchemeProvider = exports.defaultSESv2HttpAuthSchemeParametersProvider = void 0;
4
4
  const core_1 = require("@aws-sdk/core");
5
+ const signature_v4_multi_region_1 = require("@aws-sdk/signature-v4-multi-region");
6
+ const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
5
7
  const util_middleware_1 = require("@smithy/util-middleware");
6
- const defaultSESv2HttpAuthSchemeParametersProvider = async (config, context, input) => {
8
+ const endpointResolver_1 = require("../endpoint/endpointResolver");
9
+ const createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {
10
+ if (!input) {
11
+ throw new Error(`Could not find \`input\` for \`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\``);
12
+ }
13
+ const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);
14
+ const instructionsFn = (0, util_middleware_1.getSmithyContext)(context)?.commandInstance?.constructor
15
+ ?.getEndpointParameterInstructions;
16
+ if (!instructionsFn) {
17
+ throw new Error(`getEndpointParameterInstructions() is not defined on \`${context.commandName}\``);
18
+ }
19
+ const endpointParameters = await (0, middleware_endpoint_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, config);
20
+ return Object.assign(defaultParameters, endpointParameters);
21
+ };
22
+ const _defaultSESv2HttpAuthSchemeParametersProvider = async (config, context, input) => {
7
23
  return {
8
24
  operation: (0, util_middleware_1.getSmithyContext)(context).operation,
9
25
  region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||
@@ -12,7 +28,7 @@ const defaultSESv2HttpAuthSchemeParametersProvider = async (config, context, inp
12
28
  })(),
13
29
  };
14
30
  };
15
- exports.defaultSESv2HttpAuthSchemeParametersProvider = defaultSESv2HttpAuthSchemeParametersProvider;
31
+ exports.defaultSESv2HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultSESv2HttpAuthSchemeParametersProvider);
16
32
  function createAwsAuthSigv4HttpAuthOption(authParameters) {
17
33
  return {
18
34
  schemeId: "aws.auth#sigv4",
@@ -28,20 +44,84 @@ function createAwsAuthSigv4HttpAuthOption(authParameters) {
28
44
  }),
29
45
  };
30
46
  }
31
- const defaultSESv2HttpAuthSchemeProvider = (authParameters) => {
47
+ function createAwsAuthSigv4aHttpAuthOption(authParameters) {
48
+ return {
49
+ schemeId: "aws.auth#sigv4a",
50
+ signingProperties: {
51
+ name: "ses",
52
+ region: authParameters.region,
53
+ },
54
+ propertiesExtractor: (config, context) => ({
55
+ signingProperties: {
56
+ config,
57
+ context,
58
+ },
59
+ }),
60
+ };
61
+ }
62
+ const createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {
63
+ const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {
64
+ const endpoint = defaultEndpointResolver(authParameters);
65
+ const authSchemes = endpoint.properties?.authSchemes;
66
+ if (!authSchemes) {
67
+ return defaultHttpAuthSchemeResolver(authParameters);
68
+ }
69
+ const options = [];
70
+ for (const scheme of authSchemes) {
71
+ const { name: resolvedName, properties = {}, ...rest } = scheme;
72
+ const name = resolvedName.toLowerCase();
73
+ if (resolvedName !== name) {
74
+ console.warn(`HttpAuthScheme has been normalized with lowercasing: \`${resolvedName}\` to \`${name}\``);
75
+ }
76
+ let schemeId;
77
+ if (name === "sigv4a") {
78
+ schemeId = "aws.auth#sigv4a";
79
+ const sigv4Present = authSchemes.find((s) => {
80
+ const name = s.name.toLowerCase();
81
+ return name !== "sigv4a" && name.startsWith("sigv4");
82
+ });
83
+ if (!signature_v4_multi_region_1.signatureV4CrtContainer.CrtSignerV4 && sigv4Present) {
84
+ continue;
85
+ }
86
+ }
87
+ else if (name.startsWith("sigv4")) {
88
+ schemeId = "aws.auth#sigv4";
89
+ }
90
+ else {
91
+ throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${name}\``);
92
+ }
93
+ const createOption = createHttpAuthOptionFunctions[schemeId];
94
+ if (!createOption) {
95
+ throw new Error(`Could not find HttpAuthOption create function for \`${schemeId}\``);
96
+ }
97
+ const option = createOption(authParameters);
98
+ option.schemeId = schemeId;
99
+ option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };
100
+ options.push(option);
101
+ }
102
+ return options;
103
+ };
104
+ return endpointRuleSetHttpAuthSchemeProvider;
105
+ };
106
+ const _defaultSESv2HttpAuthSchemeProvider = (authParameters) => {
32
107
  const options = [];
33
108
  switch (authParameters.operation) {
34
109
  default: {
35
110
  options.push(createAwsAuthSigv4HttpAuthOption(authParameters));
111
+ options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));
36
112
  }
37
113
  }
38
114
  return options;
39
115
  };
40
- exports.defaultSESv2HttpAuthSchemeProvider = defaultSESv2HttpAuthSchemeProvider;
116
+ exports.defaultSESv2HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(endpointResolver_1.defaultEndpointResolver, _defaultSESv2HttpAuthSchemeProvider, {
117
+ "aws.auth#sigv4": createAwsAuthSigv4HttpAuthOption,
118
+ "aws.auth#sigv4a": createAwsAuthSigv4aHttpAuthOption,
119
+ });
41
120
  const resolveHttpAuthSchemeConfig = (config) => {
42
121
  const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);
122
+ const config_1 = (0, core_1.resolveAwsSdkSigV4AConfig)(config_0);
43
123
  return {
44
- ...config_0,
124
+ ...config_1,
45
125
  };
46
126
  };
47
127
  exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;
package/dist-cjs/index.js CHANGED
@@ -320,7 +320,8 @@ var _SESv2Client = class _SESv2Client extends import_smithy_client.Client {
320
320
  (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {
321
321
  httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSESv2HttpAuthSchemeParametersProvider,
322
322
  identityProviderConfigProvider: async (config) => new import_core.DefaultIdentityProviderConfig({
323
- "aws.auth#sigv4": config.credentials
323
+ "aws.auth#sigv4": config.credentials,
324
+ "aws.auth#sigv4a": config.credentials
324
325
  })
325
326
  })
326
327
  );
@@ -686,14 +687,36 @@ var _SendingPausedException = class _SendingPausedException extends SESv2Service
686
687
  };
687
688
  __name(_SendingPausedException, "SendingPausedException");
688
689
  var SendingPausedException = _SendingPausedException;
689
- var DkimSigningKeyLength = {
690
- RSA_1024_BIT: "RSA_1024_BIT",
691
- RSA_2048_BIT: "RSA_2048_BIT"
692
- };
693
690
  var DkimSigningAttributesOrigin = {
694
691
  AWS_SES: "AWS_SES",
692
+ AWS_SES_AF_SOUTH_1: "AWS_SES_AF_SOUTH_1",
693
+ AWS_SES_AP_NORTHEAST_1: "AWS_SES_AP_NORTHEAST_1",
694
+ AWS_SES_AP_NORTHEAST_2: "AWS_SES_AP_NORTHEAST_2",
695
+ AWS_SES_AP_NORTHEAST_3: "AWS_SES_AP_NORTHEAST_3",
696
+ AWS_SES_AP_SOUTHEAST_1: "AWS_SES_AP_SOUTHEAST_1",
697
+ AWS_SES_AP_SOUTHEAST_2: "AWS_SES_AP_SOUTHEAST_2",
698
+ AWS_SES_AP_SOUTHEAST_3: "AWS_SES_AP_SOUTHEAST_3",
699
+ AWS_SES_AP_SOUTH_1: "AWS_SES_AP_SOUTH_1",
700
+ AWS_SES_CA_CENTRAL_1: "AWS_SES_CA_CENTRAL_1",
701
+ AWS_SES_EU_CENTRAL_1: "AWS_SES_EU_CENTRAL_1",
702
+ AWS_SES_EU_NORTH_1: "AWS_SES_EU_NORTH_1",
703
+ AWS_SES_EU_SOUTH_1: "AWS_SES_EU_SOUTH_1",
704
+ AWS_SES_EU_WEST_1: "AWS_SES_EU_WEST_1",
705
+ AWS_SES_EU_WEST_2: "AWS_SES_EU_WEST_2",
706
+ AWS_SES_EU_WEST_3: "AWS_SES_EU_WEST_3",
707
+ AWS_SES_IL_CENTRAL_1: "AWS_SES_IL_CENTRAL_1",
708
+ AWS_SES_ME_SOUTH_1: "AWS_SES_ME_SOUTH_1",
709
+ AWS_SES_SA_EAST_1: "AWS_SES_SA_EAST_1",
710
+ AWS_SES_US_EAST_1: "AWS_SES_US_EAST_1",
711
+ AWS_SES_US_EAST_2: "AWS_SES_US_EAST_2",
712
+ AWS_SES_US_WEST_1: "AWS_SES_US_WEST_1",
713
+ AWS_SES_US_WEST_2: "AWS_SES_US_WEST_2",
695
714
  EXTERNAL: "EXTERNAL"
696
715
  };
716
+ var DkimSigningKeyLength = {
717
+ RSA_1024_BIT: "RSA_1024_BIT",
718
+ RSA_2048_BIT: "RSA_2048_BIT"
719
+ };
697
720
  var DkimStatus = {
698
721
  FAILED: "FAILED",
699
722
  NOT_STARTED: "NOT_STARTED",
@@ -760,6 +783,11 @@ var VerificationError = {
760
783
  DNS_SERVER_ERROR: "DNS_SERVER_ERROR",
761
784
  HOST_NOT_FOUND: "HOST_NOT_FOUND",
762
785
  INVALID_VALUE: "INVALID_VALUE",
786
+ REPLICATION_ACCESS_DENIED: "REPLICATION_ACCESS_DENIED",
787
+ REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED: "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED",
788
+ REPLICATION_PRIMARY_INVALID_REGION: "REPLICATION_PRIMARY_INVALID_REGION",
789
+ REPLICATION_PRIMARY_NOT_FOUND: "REPLICATION_PRIMARY_NOT_FOUND",
790
+ REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED: "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED",
763
791
  SERVICE_ERROR: "SERVICE_ERROR",
764
792
  TYPE_NOT_FOUND: "TYPE_NOT_FOUND"
765
793
  };
@@ -5584,8 +5612,8 @@ var paginateListSuppressedDestinations = (0, import_core.createPaginator)(SESv2C
5584
5612
  MailFromDomainNotVerifiedException,
5585
5613
  MessageRejected,
5586
5614
  SendingPausedException,
5587
- DkimSigningKeyLength,
5588
5615
  DkimSigningAttributesOrigin,
5616
+ DkimSigningKeyLength,
5589
5617
  DkimStatus,
5590
5618
  IdentityType,
5591
5619
  DeliveryEventType,
@@ -41,6 +41,7 @@ const getRuntimeConfig = (config) => {
41
41
  default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,
42
42
  }),
43
43
  sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"),
44
+ sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_SIGV4A_CONFIG_OPTIONS),
44
45
  streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,
45
46
  useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),
46
47
  useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRuntimeConfig = void 0;
4
4
  const core_1 = require("@aws-sdk/core");
5
+ const signature_v4_multi_region_1 = require("@aws-sdk/signature-v4-multi-region");
5
6
  const smithy_client_1 = require("@smithy/smithy-client");
6
7
  const url_parser_1 = require("@smithy/url-parser");
7
8
  const util_base64_1 = require("@smithy/util-base64");
@@ -23,9 +24,15 @@ const getRuntimeConfig = (config) => {
23
24
  identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
24
25
  signer: new core_1.AwsSdkSigV4Signer(),
25
26
  },
27
+ {
28
+ schemeId: "aws.auth#sigv4a",
29
+ identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4a"),
30
+ signer: new core_1.AwsSdkSigV4ASigner(),
31
+ },
26
32
  ],
27
33
  logger: config?.logger ?? new smithy_client_1.NoOpLogger(),
28
34
  serviceId: config?.serviceId ?? "SESv2",
35
+ signerConstructor: config?.signerConstructor ?? signature_v4_multi_region_1.SignatureV4MultiRegion,
29
36
  urlParser: config?.urlParser ?? url_parser_1.parseUrl,
30
37
  utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,
31
38
  utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,
@@ -36,6 +36,7 @@ export class SESv2Client extends __Client {
36
36
  httpAuthSchemeParametersProvider: defaultSESv2HttpAuthSchemeParametersProvider,
37
37
  identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({
38
38
  "aws.auth#sigv4": config.credentials,
39
+ "aws.auth#sigv4a": config.credentials,
39
40
  }),
40
41
  }));
41
42
  this.middlewareStack.use(getHttpSigningPlugin(this.config));
@@ -1,6 +1,22 @@
1
- import { resolveAwsSdkSigV4Config, } from "@aws-sdk/core";
1
+ import { resolveAwsSdkSigV4AConfig, resolveAwsSdkSigV4Config, } from "@aws-sdk/core";
2
+ import { signatureV4CrtContainer } from "@aws-sdk/signature-v4-multi-region";
3
+ import { resolveParams } from "@smithy/middleware-endpoint";
2
4
  import { getSmithyContext, normalizeProvider } from "@smithy/util-middleware";
3
- export const defaultSESv2HttpAuthSchemeParametersProvider = async (config, context, input) => {
5
+ import { defaultEndpointResolver } from "../endpoint/endpointResolver";
6
+ const createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {
7
+ if (!input) {
8
+ throw new Error(`Could not find \`input\` for \`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\``);
9
+ }
10
+ const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);
11
+ const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor
12
+ ?.getEndpointParameterInstructions;
13
+ if (!instructionsFn) {
14
+ throw new Error(`getEndpointParameterInstructions() is not defined on \`${context.commandName}\``);
15
+ }
16
+ const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);
17
+ return Object.assign(defaultParameters, endpointParameters);
18
+ };
19
+ const _defaultSESv2HttpAuthSchemeParametersProvider = async (config, context, input) => {
4
20
  return {
5
21
  operation: getSmithyContext(context).operation,
6
22
  region: (await normalizeProvider(config.region)()) ||
@@ -9,6 +25,7 @@ export const defaultSESv2HttpAuthSchemeParametersProvider = async (config, conte
9
25
  })(),
10
26
  };
11
27
  };
28
+ export const defaultSESv2HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultSESv2HttpAuthSchemeParametersProvider);
12
29
  function createAwsAuthSigv4HttpAuthOption(authParameters) {
13
30
  return {
14
31
  schemeId: "aws.auth#sigv4",
@@ -24,18 +41,83 @@ function createAwsAuthSigv4HttpAuthOption(authParameters) {
24
41
  }),
25
42
  };
26
43
  }
27
- export const defaultSESv2HttpAuthSchemeProvider = (authParameters) => {
44
+ function createAwsAuthSigv4aHttpAuthOption(authParameters) {
45
+ return {
46
+ schemeId: "aws.auth#sigv4a",
47
+ signingProperties: {
48
+ name: "ses",
49
+ region: authParameters.region,
50
+ },
51
+ propertiesExtractor: (config, context) => ({
52
+ signingProperties: {
53
+ config,
54
+ context,
55
+ },
56
+ }),
57
+ };
58
+ }
59
+ const createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {
60
+ const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {
61
+ const endpoint = defaultEndpointResolver(authParameters);
62
+ const authSchemes = endpoint.properties?.authSchemes;
63
+ if (!authSchemes) {
64
+ return defaultHttpAuthSchemeResolver(authParameters);
65
+ }
66
+ const options = [];
67
+ for (const scheme of authSchemes) {
68
+ const { name: resolvedName, properties = {}, ...rest } = scheme;
69
+ const name = resolvedName.toLowerCase();
70
+ if (resolvedName !== name) {
71
+ console.warn(`HttpAuthScheme has been normalized with lowercasing: \`${resolvedName}\` to \`${name}\``);
72
+ }
73
+ let schemeId;
74
+ if (name === "sigv4a") {
75
+ schemeId = "aws.auth#sigv4a";
76
+ const sigv4Present = authSchemes.find((s) => {
77
+ const name = s.name.toLowerCase();
78
+ return name !== "sigv4a" && name.startsWith("sigv4");
79
+ });
80
+ if (!signatureV4CrtContainer.CrtSignerV4 && sigv4Present) {
81
+ continue;
82
+ }
83
+ }
84
+ else if (name.startsWith("sigv4")) {
85
+ schemeId = "aws.auth#sigv4";
86
+ }
87
+ else {
88
+ throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${name}\``);
89
+ }
90
+ const createOption = createHttpAuthOptionFunctions[schemeId];
91
+ if (!createOption) {
92
+ throw new Error(`Could not find HttpAuthOption create function for \`${schemeId}\``);
93
+ }
94
+ const option = createOption(authParameters);
95
+ option.schemeId = schemeId;
96
+ option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };
97
+ options.push(option);
98
+ }
99
+ return options;
100
+ };
101
+ return endpointRuleSetHttpAuthSchemeProvider;
102
+ };
103
+ const _defaultSESv2HttpAuthSchemeProvider = (authParameters) => {
28
104
  const options = [];
29
105
  switch (authParameters.operation) {
30
106
  default: {
31
107
  options.push(createAwsAuthSigv4HttpAuthOption(authParameters));
108
+ options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));
32
109
  }
33
110
  }
34
111
  return options;
35
112
  };
113
+ export const defaultSESv2HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver, _defaultSESv2HttpAuthSchemeProvider, {
114
+ "aws.auth#sigv4": createAwsAuthSigv4HttpAuthOption,
115
+ "aws.auth#sigv4a": createAwsAuthSigv4aHttpAuthOption,
116
+ });
36
117
  export const resolveHttpAuthSchemeConfig = (config) => {
37
118
  const config_0 = resolveAwsSdkSigV4Config(config);
119
+ const config_1 = resolveAwsSdkSigV4AConfig(config_0);
38
120
  return {
39
- ...config_0,
121
+ ...config_1,
40
122
  };
41
123
  };
@@ -257,14 +257,36 @@ export class SendingPausedException extends __BaseException {
257
257
  Object.setPrototypeOf(this, SendingPausedException.prototype);
258
258
  }
259
259
  }
260
- export const DkimSigningKeyLength = {
261
- RSA_1024_BIT: "RSA_1024_BIT",
262
- RSA_2048_BIT: "RSA_2048_BIT",
263
- };
264
260
  export const DkimSigningAttributesOrigin = {
265
261
  AWS_SES: "AWS_SES",
262
+ AWS_SES_AF_SOUTH_1: "AWS_SES_AF_SOUTH_1",
263
+ AWS_SES_AP_NORTHEAST_1: "AWS_SES_AP_NORTHEAST_1",
264
+ AWS_SES_AP_NORTHEAST_2: "AWS_SES_AP_NORTHEAST_2",
265
+ AWS_SES_AP_NORTHEAST_3: "AWS_SES_AP_NORTHEAST_3",
266
+ AWS_SES_AP_SOUTHEAST_1: "AWS_SES_AP_SOUTHEAST_1",
267
+ AWS_SES_AP_SOUTHEAST_2: "AWS_SES_AP_SOUTHEAST_2",
268
+ AWS_SES_AP_SOUTHEAST_3: "AWS_SES_AP_SOUTHEAST_3",
269
+ AWS_SES_AP_SOUTH_1: "AWS_SES_AP_SOUTH_1",
270
+ AWS_SES_CA_CENTRAL_1: "AWS_SES_CA_CENTRAL_1",
271
+ AWS_SES_EU_CENTRAL_1: "AWS_SES_EU_CENTRAL_1",
272
+ AWS_SES_EU_NORTH_1: "AWS_SES_EU_NORTH_1",
273
+ AWS_SES_EU_SOUTH_1: "AWS_SES_EU_SOUTH_1",
274
+ AWS_SES_EU_WEST_1: "AWS_SES_EU_WEST_1",
275
+ AWS_SES_EU_WEST_2: "AWS_SES_EU_WEST_2",
276
+ AWS_SES_EU_WEST_3: "AWS_SES_EU_WEST_3",
277
+ AWS_SES_IL_CENTRAL_1: "AWS_SES_IL_CENTRAL_1",
278
+ AWS_SES_ME_SOUTH_1: "AWS_SES_ME_SOUTH_1",
279
+ AWS_SES_SA_EAST_1: "AWS_SES_SA_EAST_1",
280
+ AWS_SES_US_EAST_1: "AWS_SES_US_EAST_1",
281
+ AWS_SES_US_EAST_2: "AWS_SES_US_EAST_2",
282
+ AWS_SES_US_WEST_1: "AWS_SES_US_WEST_1",
283
+ AWS_SES_US_WEST_2: "AWS_SES_US_WEST_2",
266
284
  EXTERNAL: "EXTERNAL",
267
285
  };
286
+ export const DkimSigningKeyLength = {
287
+ RSA_1024_BIT: "RSA_1024_BIT",
288
+ RSA_2048_BIT: "RSA_2048_BIT",
289
+ };
268
290
  export const DkimStatus = {
269
291
  FAILED: "FAILED",
270
292
  NOT_STARTED: "NOT_STARTED",
@@ -331,6 +353,11 @@ export const VerificationError = {
331
353
  DNS_SERVER_ERROR: "DNS_SERVER_ERROR",
332
354
  HOST_NOT_FOUND: "HOST_NOT_FOUND",
333
355
  INVALID_VALUE: "INVALID_VALUE",
356
+ REPLICATION_ACCESS_DENIED: "REPLICATION_ACCESS_DENIED",
357
+ REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED: "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED",
358
+ REPLICATION_PRIMARY_INVALID_REGION: "REPLICATION_PRIMARY_INVALID_REGION",
359
+ REPLICATION_PRIMARY_NOT_FOUND: "REPLICATION_PRIMARY_NOT_FOUND",
360
+ REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED: "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED",
334
361
  SERVICE_ERROR: "SERVICE_ERROR",
335
362
  TYPE_NOT_FOUND: "TYPE_NOT_FOUND",
336
363
  };
@@ -1,5 +1,5 @@
1
1
  import packageInfo from "../package.json";
2
- import { emitWarningIfUnsupportedVersion as awsCheckVersion } from "@aws-sdk/core";
2
+ import { NODE_SIGV4A_CONFIG_OPTIONS, emitWarningIfUnsupportedVersion as awsCheckVersion } from "@aws-sdk/core";
3
3
  import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node";
4
4
  import { NODE_APP_ID_CONFIG_OPTIONS, createDefaultUserAgentProvider } from "@aws-sdk/util-user-agent-node";
5
5
  import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, } from "@smithy/config-resolver";
@@ -37,6 +37,7 @@ export const getRuntimeConfig = (config) => {
37
37
  default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE,
38
38
  }),
39
39
  sha256: config?.sha256 ?? Hash.bind(null, "sha256"),
40
+ sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? loadNodeConfig(NODE_SIGV4A_CONFIG_OPTIONS),
40
41
  streamCollector: config?.streamCollector ?? streamCollector,
41
42
  useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),
42
43
  useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),
@@ -1,4 +1,5 @@
1
- import { AwsSdkSigV4Signer } from "@aws-sdk/core";
1
+ import { AwsSdkSigV4ASigner, AwsSdkSigV4Signer } from "@aws-sdk/core";
2
+ import { SignatureV4MultiRegion } from "@aws-sdk/signature-v4-multi-region";
2
3
  import { NoOpLogger } from "@smithy/smithy-client";
3
4
  import { parseUrl } from "@smithy/url-parser";
4
5
  import { fromBase64, toBase64 } from "@smithy/util-base64";
@@ -20,9 +21,15 @@ export const getRuntimeConfig = (config) => {
20
21
  identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
21
22
  signer: new AwsSdkSigV4Signer(),
22
23
  },
24
+ {
25
+ schemeId: "aws.auth#sigv4a",
26
+ identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4a"),
27
+ signer: new AwsSdkSigV4ASigner(),
28
+ },
23
29
  ],
24
30
  logger: config?.logger ?? new NoOpLogger(),
25
31
  serviceId: config?.serviceId ?? "SESv2",
32
+ signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,
26
33
  urlParser: config?.urlParser ?? parseUrl,
27
34
  utf8Decoder: config?.utf8Decoder ?? fromUtf8,
28
35
  utf8Encoder: config?.utf8Encoder ?? toUtf8,
@@ -1,10 +1,17 @@
1
- import { AwsSdkSigV4AuthInputConfig, AwsSdkSigV4AuthResolvedConfig, AwsSdkSigV4PreviouslyResolved } from "@aws-sdk/core";
1
+ import { AwsSdkSigV4AAuthInputConfig, AwsSdkSigV4AAuthResolvedConfig, AwsSdkSigV4APreviouslyResolved, AwsSdkSigV4AuthInputConfig, AwsSdkSigV4AuthResolvedConfig, AwsSdkSigV4PreviouslyResolved } from "@aws-sdk/core";
2
2
  import { HandlerExecutionContext, HttpAuthScheme, HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "@smithy/types";
3
+ import { EndpointParameters } from "../endpoint/EndpointParameters";
3
4
  import { SESv2ClientResolvedConfig } from "../SESv2Client";
4
5
  /**
5
6
  * @internal
6
7
  */
7
- export interface SESv2HttpAuthSchemeParameters extends HttpAuthSchemeParameters {
8
+ interface _SESv2HttpAuthSchemeParameters extends HttpAuthSchemeParameters {
9
+ region?: string;
10
+ }
11
+ /**
12
+ * @internal
13
+ */
14
+ export interface SESv2HttpAuthSchemeParameters extends _SESv2HttpAuthSchemeParameters, EndpointParameters {
8
15
  region?: string;
9
16
  }
10
17
  /**
@@ -15,7 +22,7 @@ export interface SESv2HttpAuthSchemeParametersProvider extends HttpAuthSchemePar
15
22
  /**
16
23
  * @internal
17
24
  */
18
- export declare const defaultSESv2HttpAuthSchemeParametersProvider: (config: SESv2ClientResolvedConfig, context: HandlerExecutionContext, input: object) => Promise<SESv2HttpAuthSchemeParameters>;
25
+ export declare const defaultSESv2HttpAuthSchemeParametersProvider: SESv2HttpAuthSchemeParametersProvider;
19
26
  /**
20
27
  * @internal
21
28
  */
@@ -28,7 +35,7 @@ export declare const defaultSESv2HttpAuthSchemeProvider: SESv2HttpAuthSchemeProv
28
35
  /**
29
36
  * @internal
30
37
  */
31
- export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig {
38
+ export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig, AwsSdkSigV4AAuthInputConfig {
32
39
  /**
33
40
  * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme.
34
41
  * @internal
@@ -43,7 +50,7 @@ export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig {
43
50
  /**
44
51
  * @internal
45
52
  */
46
- export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedConfig {
53
+ export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedConfig, AwsSdkSigV4AAuthResolvedConfig {
47
54
  /**
48
55
  * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme.
49
56
  * @internal
@@ -58,4 +65,5 @@ export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedCon
58
65
  /**
59
66
  * @internal
60
67
  */
61
- export declare const resolveHttpAuthSchemeConfig: <T>(config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved) => T & HttpAuthSchemeResolvedConfig;
68
+ export declare const resolveHttpAuthSchemeConfig: <T>(config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved & AwsSdkSigV4APreviouslyResolved) => T & HttpAuthSchemeResolvedConfig;
69
+ export {};
@@ -71,6 +71,7 @@ declare const CreateEmailIdentityCommand_base: {
71
71
  * DomainSigningSelector: "STRING_VALUE",
72
72
  * DomainSigningPrivateKey: "STRING_VALUE",
73
73
  * NextSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
74
+ * DomainSigningAttributesOrigin: "AWS_SES" || "EXTERNAL" || "AWS_SES_AF_SOUTH_1" || "AWS_SES_EU_NORTH_1" || "AWS_SES_AP_SOUTH_1" || "AWS_SES_EU_WEST_3" || "AWS_SES_EU_WEST_2" || "AWS_SES_EU_SOUTH_1" || "AWS_SES_EU_WEST_1" || "AWS_SES_AP_NORTHEAST_3" || "AWS_SES_AP_NORTHEAST_2" || "AWS_SES_ME_SOUTH_1" || "AWS_SES_AP_NORTHEAST_1" || "AWS_SES_IL_CENTRAL_1" || "AWS_SES_SA_EAST_1" || "AWS_SES_CA_CENTRAL_1" || "AWS_SES_AP_SOUTHEAST_1" || "AWS_SES_AP_SOUTHEAST_2" || "AWS_SES_AP_SOUTHEAST_3" || "AWS_SES_EU_CENTRAL_1" || "AWS_SES_US_EAST_1" || "AWS_SES_US_EAST_2" || "AWS_SES_US_WEST_1" || "AWS_SES_US_WEST_2",
74
75
  * },
75
76
  * ConfigurationSetName: "STRING_VALUE",
76
77
  * };
@@ -85,7 +86,7 @@ declare const CreateEmailIdentityCommand_base: {
85
86
  * // Tokens: [ // DnsTokenList
86
87
  * // "STRING_VALUE",
87
88
  * // ],
88
- * // SigningAttributesOrigin: "AWS_SES" || "EXTERNAL",
89
+ * // SigningAttributesOrigin: "AWS_SES" || "EXTERNAL" || "AWS_SES_AF_SOUTH_1" || "AWS_SES_EU_NORTH_1" || "AWS_SES_AP_SOUTH_1" || "AWS_SES_EU_WEST_3" || "AWS_SES_EU_WEST_2" || "AWS_SES_EU_SOUTH_1" || "AWS_SES_EU_WEST_1" || "AWS_SES_AP_NORTHEAST_3" || "AWS_SES_AP_NORTHEAST_2" || "AWS_SES_ME_SOUTH_1" || "AWS_SES_AP_NORTHEAST_1" || "AWS_SES_IL_CENTRAL_1" || "AWS_SES_SA_EAST_1" || "AWS_SES_CA_CENTRAL_1" || "AWS_SES_AP_SOUTHEAST_1" || "AWS_SES_AP_SOUTHEAST_2" || "AWS_SES_AP_SOUTHEAST_3" || "AWS_SES_EU_CENTRAL_1" || "AWS_SES_US_EAST_1" || "AWS_SES_US_EAST_2" || "AWS_SES_US_WEST_1" || "AWS_SES_US_WEST_2",
89
90
  * // NextSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
90
91
  * // CurrentSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
91
92
  * // LastKeyGenerationTimestamp: new Date("TIMESTAMP"),
@@ -51,7 +51,7 @@ declare const GetEmailIdentityCommand_base: {
51
51
  * // Tokens: [ // DnsTokenList
52
52
  * // "STRING_VALUE",
53
53
  * // ],
54
- * // SigningAttributesOrigin: "AWS_SES" || "EXTERNAL",
54
+ * // SigningAttributesOrigin: "AWS_SES" || "EXTERNAL" || "AWS_SES_AF_SOUTH_1" || "AWS_SES_EU_NORTH_1" || "AWS_SES_AP_SOUTH_1" || "AWS_SES_EU_WEST_3" || "AWS_SES_EU_WEST_2" || "AWS_SES_EU_SOUTH_1" || "AWS_SES_EU_WEST_1" || "AWS_SES_AP_NORTHEAST_3" || "AWS_SES_AP_NORTHEAST_2" || "AWS_SES_ME_SOUTH_1" || "AWS_SES_AP_NORTHEAST_1" || "AWS_SES_IL_CENTRAL_1" || "AWS_SES_SA_EAST_1" || "AWS_SES_CA_CENTRAL_1" || "AWS_SES_AP_SOUTHEAST_1" || "AWS_SES_AP_SOUTHEAST_2" || "AWS_SES_AP_SOUTHEAST_3" || "AWS_SES_EU_CENTRAL_1" || "AWS_SES_US_EAST_1" || "AWS_SES_US_EAST_2" || "AWS_SES_US_WEST_1" || "AWS_SES_US_WEST_2",
55
55
  * // NextSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
56
56
  * // CurrentSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
57
57
  * // LastKeyGenerationTimestamp: new Date("TIMESTAMP"),
@@ -75,7 +75,7 @@ declare const GetEmailIdentityCommand_base: {
75
75
  * // VerificationInfo: { // VerificationInfo
76
76
  * // LastCheckedTimestamp: new Date("TIMESTAMP"),
77
77
  * // LastSuccessTimestamp: new Date("TIMESTAMP"),
78
- * // ErrorType: "SERVICE_ERROR" || "DNS_SERVER_ERROR" || "HOST_NOT_FOUND" || "TYPE_NOT_FOUND" || "INVALID_VALUE",
78
+ * // ErrorType: "SERVICE_ERROR" || "DNS_SERVER_ERROR" || "HOST_NOT_FOUND" || "TYPE_NOT_FOUND" || "INVALID_VALUE" || "REPLICATION_ACCESS_DENIED" || "REPLICATION_PRIMARY_NOT_FOUND" || "REPLICATION_PRIMARY_BYO_DKIM_NOT_SUPPORTED" || "REPLICATION_REPLICA_AS_PRIMARY_NOT_SUPPORTED" || "REPLICATION_PRIMARY_INVALID_REGION",
79
79
  * // SOARecord: { // SOARecord
80
80
  * // PrimaryNameServer: "STRING_VALUE",
81
81
  * // AdminEmail: "STRING_VALUE",
@@ -59,11 +59,12 @@ declare const PutEmailIdentityDkimSigningAttributesCommand_base: {
59
59
  * const client = new SESv2Client(config);
60
60
  * const input = { // PutEmailIdentityDkimSigningAttributesRequest
61
61
  * EmailIdentity: "STRING_VALUE", // required
62
- * SigningAttributesOrigin: "AWS_SES" || "EXTERNAL", // required
62
+ * SigningAttributesOrigin: "AWS_SES" || "EXTERNAL" || "AWS_SES_AF_SOUTH_1" || "AWS_SES_EU_NORTH_1" || "AWS_SES_AP_SOUTH_1" || "AWS_SES_EU_WEST_3" || "AWS_SES_EU_WEST_2" || "AWS_SES_EU_SOUTH_1" || "AWS_SES_EU_WEST_1" || "AWS_SES_AP_NORTHEAST_3" || "AWS_SES_AP_NORTHEAST_2" || "AWS_SES_ME_SOUTH_1" || "AWS_SES_AP_NORTHEAST_1" || "AWS_SES_IL_CENTRAL_1" || "AWS_SES_SA_EAST_1" || "AWS_SES_CA_CENTRAL_1" || "AWS_SES_AP_SOUTHEAST_1" || "AWS_SES_AP_SOUTHEAST_2" || "AWS_SES_AP_SOUTHEAST_3" || "AWS_SES_EU_CENTRAL_1" || "AWS_SES_US_EAST_1" || "AWS_SES_US_EAST_2" || "AWS_SES_US_WEST_1" || "AWS_SES_US_WEST_2", // required
63
63
  * SigningAttributes: { // DkimSigningAttributes
64
64
  * DomainSigningSelector: "STRING_VALUE",
65
65
  * DomainSigningPrivateKey: "STRING_VALUE",
66
66
  * NextSigningKeyLength: "RSA_1024_BIT" || "RSA_2048_BIT",
67
+ * DomainSigningAttributesOrigin: "AWS_SES" || "EXTERNAL" || "AWS_SES_AF_SOUTH_1" || "AWS_SES_EU_NORTH_1" || "AWS_SES_AP_SOUTH_1" || "AWS_SES_EU_WEST_3" || "AWS_SES_EU_WEST_2" || "AWS_SES_EU_SOUTH_1" || "AWS_SES_EU_WEST_1" || "AWS_SES_AP_NORTHEAST_3" || "AWS_SES_AP_NORTHEAST_2" || "AWS_SES_ME_SOUTH_1" || "AWS_SES_AP_NORTHEAST_1" || "AWS_SES_IL_CENTRAL_1" || "AWS_SES_SA_EAST_1" || "AWS_SES_CA_CENTRAL_1" || "AWS_SES_AP_SOUTHEAST_1" || "AWS_SES_AP_SOUTHEAST_2" || "AWS_SES_AP_SOUTHEAST_3" || "AWS_SES_EU_CENTRAL_1" || "AWS_SES_US_EAST_1" || "AWS_SES_US_EAST_2" || "AWS_SES_US_WEST_1" || "AWS_SES_US_WEST_2",
67
68
  * },
68
69
  * };
69
70
  * const command = new PutEmailIdentityDkimSigningAttributesCommand(input);