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:
*To use the default master key, provide an ARN in the form of + *
To use the default managed key, provide an ARN in the form of
* arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses
.
* For example, if your Amazon Web Services account ID is 123456789012 and you want to use the
- * default master key in the US West (Oregon) Region, the ARN of the default master
+ * default managed key in the US West (Oregon) Region, the ARN of the default master
* key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses
. If
- * you use the default master key, you don't need to perform any extra steps to
+ * you use the default managed key, you don't need to perform any extra steps to
* give Amazon SES permission to use the key.
To use a custom master key that you created in Amazon Web Services KMS, provide the ARN of - * the master key and ensure that you add a statement to your key's policy to give + *
To use a custom managed key that you created in Amazon Web Services KMS, provide the ARN of + * the managed key and ensure that you add a statement to your key's policy to give * Amazon SES permission to use it. For more information about giving permissions, see * the Amazon SES Developer * Guide.
*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.
*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: + *
+ *
+ * s3:PutObject
, kms:Encrypt
and
+ * kms:GenerateDataKey
for the given Amazon S3 bucket.
+ * kms:GenerateDataKey
for the given Amazon Web Services KMS customer managed key.
+ *
+ * sns:Publish
for the given Amazon SNS topic.
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.
+ *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:
\nTo use the default master key, provide an ARN in the form of\n arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses
.\n For example, if your Amazon Web Services account ID is 123456789012 and you want to use the\n default master key in the US West (Oregon) Region, the ARN of the default master\n key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses
. If\n you use the default master key, you don't need to perform any extra steps to\n give Amazon SES permission to use the key.
To use a custom master key that you created in Amazon Web Services KMS, provide the ARN of\n the master key and ensure that you add a statement to your key's policy to give\n Amazon SES permission to use it. For more information about giving permissions, see\n the Amazon SES Developer\n Guide.
\nFor 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.
\nYour 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.
\nThe 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:
\nTo use the default managed key, provide an ARN in the form of\n arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses
.\n For example, if your Amazon Web Services account ID is 123456789012 and you want to use the\n default managed key in the US West (Oregon) Region, the ARN of the default master\n key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses
. If\n you use the default managed key, you don't need to perform any extra steps to\n give Amazon SES permission to use the key.
To use a custom managed key that you created in Amazon Web Services KMS, provide the ARN of\n the managed key and ensure that you add a statement to your key's policy to give\n Amazon SES permission to use it. For more information about giving permissions, see\n the Amazon SES Developer\n Guide.
\nFor 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.
\nYour 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.
\nThe 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 s3:PutObject
, kms:Encrypt
and\n kms:GenerateDataKey
for the given Amazon S3 bucket.
\n kms:GenerateDataKey
for the given Amazon Web Services KMS customer managed key.\n
\n sns:Publish
for the given Amazon SNS topic.
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.
\nA 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.
\nThe 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.
\nThe 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": {