diff --git a/clients/client-ses/src/commands/CreateReceiptRuleCommand.ts b/clients/client-ses/src/commands/CreateReceiptRuleCommand.ts index 67494607c699a..347bf4c8aaf71 100644 --- a/clients/client-ses/src/commands/CreateReceiptRuleCommand.ts +++ b/clients/client-ses/src/commands/CreateReceiptRuleCommand.ts @@ -55,6 +55,7 @@ export interface CreateReceiptRuleCommandOutput extends CreateReceiptRuleRespons * BucketName: "STRING_VALUE", // required * ObjectKeyPrefix: "STRING_VALUE", * KmsKeyArn: "STRING_VALUE", + * IamRoleArn: "STRING_VALUE", * }, * BounceAction: { // BounceAction * TopicArn: "STRING_VALUE", diff --git a/clients/client-ses/src/commands/DescribeActiveReceiptRuleSetCommand.ts b/clients/client-ses/src/commands/DescribeActiveReceiptRuleSetCommand.ts index 0c02547715a5c..76b137fe80d2c 100644 --- a/clients/client-ses/src/commands/DescribeActiveReceiptRuleSetCommand.ts +++ b/clients/client-ses/src/commands/DescribeActiveReceiptRuleSetCommand.ts @@ -63,6 +63,7 @@ export interface DescribeActiveReceiptRuleSetCommandOutput * // BucketName: "STRING_VALUE", // required * // ObjectKeyPrefix: "STRING_VALUE", * // KmsKeyArn: "STRING_VALUE", + * // IamRoleArn: "STRING_VALUE", * // }, * // BounceAction: { // BounceAction * // TopicArn: "STRING_VALUE", diff --git a/clients/client-ses/src/commands/DescribeReceiptRuleCommand.ts b/clients/client-ses/src/commands/DescribeReceiptRuleCommand.ts index aa4f6758c93a2..540b190fa3f73 100644 --- a/clients/client-ses/src/commands/DescribeReceiptRuleCommand.ts +++ b/clients/client-ses/src/commands/DescribeReceiptRuleCommand.ts @@ -59,6 +59,7 @@ export interface DescribeReceiptRuleCommandOutput extends DescribeReceiptRuleRes * // BucketName: "STRING_VALUE", // required * // ObjectKeyPrefix: "STRING_VALUE", * // KmsKeyArn: "STRING_VALUE", + * // IamRoleArn: "STRING_VALUE", * // }, * // BounceAction: { // BounceAction * // TopicArn: "STRING_VALUE", diff --git a/clients/client-ses/src/commands/DescribeReceiptRuleSetCommand.ts b/clients/client-ses/src/commands/DescribeReceiptRuleSetCommand.ts index f6635255d5a8f..a1174ab58995d 100644 --- a/clients/client-ses/src/commands/DescribeReceiptRuleSetCommand.ts +++ b/clients/client-ses/src/commands/DescribeReceiptRuleSetCommand.ts @@ -63,6 +63,7 @@ export interface DescribeReceiptRuleSetCommandOutput extends DescribeReceiptRule * // BucketName: "STRING_VALUE", // required * // ObjectKeyPrefix: "STRING_VALUE", * // KmsKeyArn: "STRING_VALUE", + * // IamRoleArn: "STRING_VALUE", * // }, * // BounceAction: { // BounceAction * // TopicArn: "STRING_VALUE", diff --git a/clients/client-ses/src/commands/SendBulkTemplatedEmailCommand.ts b/clients/client-ses/src/commands/SendBulkTemplatedEmailCommand.ts index 22a6aa943ce46..0b86f86588b9c 100644 --- a/clients/client-ses/src/commands/SendBulkTemplatedEmailCommand.ts +++ b/clients/client-ses/src/commands/SendBulkTemplatedEmailCommand.ts @@ -94,7 +94,7 @@ export interface SendBulkTemplatedEmailCommandOutput extends SendBulkTemplatedEm * ], * Template: "STRING_VALUE", // required * TemplateArn: "STRING_VALUE", - * DefaultTemplateData: "STRING_VALUE", + * DefaultTemplateData: "STRING_VALUE", // required * Destinations: [ // BulkEmailDestinationList // required * { // BulkEmailDestination * Destination: { // Destination diff --git a/clients/client-ses/src/commands/UpdateReceiptRuleCommand.ts b/clients/client-ses/src/commands/UpdateReceiptRuleCommand.ts index 6f409eb4fb928..f5e514fe291a3 100644 --- a/clients/client-ses/src/commands/UpdateReceiptRuleCommand.ts +++ b/clients/client-ses/src/commands/UpdateReceiptRuleCommand.ts @@ -54,6 +54,7 @@ export interface UpdateReceiptRuleCommandOutput extends UpdateReceiptRuleRespons * BucketName: "STRING_VALUE", // required * ObjectKeyPrefix: "STRING_VALUE", * KmsKeyArn: "STRING_VALUE", + * IamRoleArn: "STRING_VALUE", * }, * BounceAction: { // BounceAction * TopicArn: "STRING_VALUE", diff --git a/clients/client-ses/src/models/models_0.ts b/clients/client-ses/src/models/models_0.ts index 1aaae19af1f7d..1adbe1cbfdf2b 100644 --- a/clients/client-ses/src/models/models_0.ts +++ b/clients/client-ses/src/models/models_0.ts @@ -1721,29 +1721,29 @@ export interface S3Action { ObjectKeyPrefix?: string; /** - *

The customer master key that Amazon SES should use to encrypt your emails before saving - * them to the Amazon S3 bucket. You can use the default master key or a custom master key that + *

The customer managed key that Amazon SES should use to encrypt your emails before saving + * them to the Amazon S3 bucket. You can use the default managed key or a custom managed key that * you created in Amazon Web Services KMS as follows:

* *

For more information about key policies, see the Amazon Web Services KMS Developer Guide. If - * you do not specify a master key, Amazon SES does not encrypt your emails.

+ * you do not specify a managed key, Amazon SES does not encrypt your emails.

* *

Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail * is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side @@ -1752,12 +1752,43 @@ export interface S3Action { * Amazon Web Services KMS keys for decryption. This encryption client is currently available with * the Amazon Web Services SDK for Java and * Amazon Web Services SDK for Ruby only. For - * more information about client-side encryption using Amazon Web Services KMS master keys, see the + * more information about client-side encryption using Amazon Web Services KMS managed keys, see the * Amazon S3 Developer Guide.

*
* @public */ KmsKeyArn?: string; + + /** + *

The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket, + * optionally encrypting your mail via the provided customer managed key, and publishing to + * the Amazon SNS topic. + * This role should have access to the following APIs: + *

+ * + * + *

If an IAM role ARN is provided, the role (and only the role) is used to access all + * the given resources (Amazon S3 bucket, Amazon Web Services KMS customer managed key and Amazon SNS topic). + * Therefore, setting up individual resource access permissions is not required.

+ *
+ * @public + */ + IamRoleArn?: string; } /** @@ -4237,7 +4268,7 @@ export interface SendBulkTemplatedEmailRequest { * the keys correspond to replacement tags in the email template.

* @public */ - DefaultTemplateData?: string; + DefaultTemplateData: string | undefined; /** *

One or more Destination objects. All of the recipients in a diff --git a/clients/client-ses/src/protocols/Aws_query.ts b/clients/client-ses/src/protocols/Aws_query.ts index b1d228543dc05..d5d21d8dc7dab 100644 --- a/clients/client-ses/src/protocols/Aws_query.ts +++ b/clients/client-ses/src/protocols/Aws_query.ts @@ -5164,6 +5164,9 @@ const se_S3Action = (input: S3Action, context: __SerdeContext): any => { if (input[_KKA] != null) { entries[_KKA] = input[_KKA]; } + if (input[_IRA] != null) { + entries[_IRA] = input[_IRA]; + } return entries; }; @@ -7490,6 +7493,9 @@ const de_S3Action = (output: any, context: __SerdeContext): S3Action => { if (output[_KKA] != null) { contents[_KKA] = __expectString(output[_KKA]); } + if (output[_IRA] != null) { + contents[_IRA] = __expectString(output[_IRA]); + } return contents; }; @@ -8085,6 +8091,7 @@ const _HV = "HeaderValue"; const _I = "Identity"; const _IAMRARN = "IAMRoleARN"; const _IF = "IpFilter"; +const _IRA = "IamRoleArn"; const _IT = "InvocationType"; const _ITd = "IdentityType"; const _Id = "Identities"; diff --git a/codegen/sdk-codegen/aws-models/ses.json b/codegen/sdk-codegen/aws-models/ses.json index df621a3844c48..b47879c925a34 100644 --- a/codegen/sdk-codegen/aws-models/ses.json +++ b/codegen/sdk-codegen/aws-models/ses.json @@ -3150,6 +3150,16 @@ "com.amazonaws.ses#HtmlPart": { "type": "string" }, + "com.amazonaws.ses#IAMRoleARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[\\w-]+:iam::[0-9]+:role/[\\w-]+$" + } + }, "com.amazonaws.ses#Identity": { "type": "string" }, @@ -4986,7 +4996,13 @@ "KmsKeyArn": { "target": "com.amazonaws.ses#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The customer master key that Amazon SES should use to encrypt your emails before saving\n them to the Amazon S3 bucket. You can use the default master key or a custom master key that\n you created in Amazon Web Services KMS as follows:

\n \n

For more information about key policies, see the Amazon Web Services KMS Developer Guide. If\n you do not specify a master key, Amazon SES does not encrypt your emails.

\n \n

Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail\n is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side\n encryption. This means that you must use the Amazon S3 encryption client to decrypt the\n email after retrieving it from Amazon S3, as the service has no access to use your\n Amazon Web Services KMS keys for decryption. This encryption client is currently available with\n the Amazon Web Services SDK for Java and\n Amazon Web Services SDK for Ruby only. For\n more information about client-side encryption using Amazon Web Services KMS master keys, see the\n Amazon S3 Developer Guide.

\n
" + "smithy.api#documentation": "

The customer managed key that Amazon SES should use to encrypt your emails before saving\n them to the Amazon S3 bucket. You can use the default managed key or a custom managed key that\n you created in Amazon Web Services KMS as follows:

\n \n

For more information about key policies, see the Amazon Web Services KMS Developer Guide. If\n you do not specify a managed key, Amazon SES does not encrypt your emails.

\n \n

Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail\n is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side\n encryption. This means that you must use the Amazon S3 encryption client to decrypt the\n email after retrieving it from Amazon S3, as the service has no access to use your\n Amazon Web Services KMS keys for decryption. This encryption client is currently available with\n the Amazon Web Services SDK for Java and\n Amazon Web Services SDK for Ruby only. For\n more information about client-side encryption using Amazon Web Services KMS managed keys, see the\n Amazon S3 Developer Guide.

\n
" + } + }, + "IamRoleArn": { + "target": "com.amazonaws.ses#IAMRoleARN", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket,\n optionally encrypting your mail via the provided customer managed key, and publishing to\n the Amazon SNS topic.\n This role should have access to the following APIs:\n

\n \n \n

If an IAM role ARN is provided, the role (and only the role) is used to access all\n the given resources (Amazon S3 bucket, Amazon Web Services KMS customer managed key and Amazon SNS topic).\n Therefore, setting up individual resource access permissions is not required.

\n
" } } }, @@ -5227,7 +5243,8 @@ "DefaultTemplateData": { "target": "com.amazonaws.ses#TemplateData", "traits": { - "smithy.api#documentation": "

A list of replacement values to apply to the template when replacement data is not\n specified in a Destination object. These values act as a default or fallback option when\n no other data is available.

\n

The template data is a JSON object, typically consisting of key-value pairs in which\n the keys correspond to replacement tags in the email template.

" + "smithy.api#documentation": "

A list of replacement values to apply to the template when replacement data is not\n specified in a Destination object. These values act as a default or fallback option when\n no other data is available.

\n

The template data is a JSON object, typically consisting of key-value pairs in which\n the keys correspond to replacement tags in the email template.

", + "smithy.api#required": {} } }, "Destinations": {