From 14fc94cdbd3a649d144f06a8d7f220b5890906bc Mon Sep 17 00:00:00 2001
From: awstools When included in a receipt rule, this action parses the received message and
+ * starts an email contact in Amazon Connect on your behalf. When you receive emails, the maximum email size (including headers) is 40 MB.
+ * Additionally, emails may only have up to 10 attachments.
+ * Emails larger than 40 MB or with more than 10 attachments will be bounced. We recommend that you configure this action via Amazon Connect. The Amazon Resource Name (ARN) for the Amazon Connect instance that Amazon SES integrates with for starting
+ * email contacts. For more information about Amazon Connect instances, see the Amazon Connect Administrator Guide
+ * The Amazon Resource Name (ARN) of the IAM role to be used by Amazon Simple Email Service while starting email contacts
+ * to the Amazon Connect instance. This role should have permission to invoke Represents a request to create a configuration set. Configuration sets enable you to
* publish email sending events. For information about using configuration sets, see the
@@ -1722,28 +1752,28 @@ export interface S3Action {
/**
* 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:connect:StartEmailContact
+ * for the given Amazon Connect instance.
To use the default managed key, provide an ARN in the form of + *
To use the Amazon Web Services 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 managed key in the US West (Oregon) Region, the ARN of the default master
+ * Amazon Web Services managed key in the US West (Oregon) Region, the ARN of the Amazon Web Services managed
* key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses
. If
- * 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 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
+ * To use a customer managed key that you created in Amazon Web Services KMS, provide the ARN
+ * of the customer 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 managed key, Amazon SES does not encrypt your emails.
+ * you do not specify an Amazon Web Services KMS 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 @@ -1762,14 +1792,12 @@ export interface S3Action { /** *
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: - *
+ * 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 S3 bucket.
* @@ -1967,6 +1995,12 @@ export interface ReceiptAction { * @public */ SNSAction?: SNSAction | undefined; + + /** + *
Parses the received message and starts an email contact in Amazon Connect on your behalf.
+ * @public + */ + ConnectAction?: ConnectAction | undefined; } /** diff --git a/clients/client-ses/src/protocols/Aws_query.ts b/clients/client-ses/src/protocols/Aws_query.ts index d5d21d8dc7da..94608cd05d0c 100644 --- a/clients/client-ses/src/protocols/Aws_query.ts +++ b/clients/client-ses/src/protocols/Aws_query.ts @@ -262,6 +262,7 @@ import { ConfigurationSetAttribute, ConfigurationSetDoesNotExistException, ConfigurationSetSendingPausedException, + ConnectAction, Content, CreateConfigurationSetEventDestinationRequest, CreateConfigurationSetEventDestinationResponse, @@ -3996,6 +3997,20 @@ const se_ConfigurationSetAttributeList = (input: ConfigurationSetAttribute[], co return entries; }; +/** + * serializeAws_queryConnectAction + */ +const se_ConnectAction = (input: ConnectAction, context: __SerdeContext): any => { + const entries: any = {}; + if (input[_IARN] != null) { + entries[_IARN] = input[_IARN]; + } + if (input[_IAMRARN] != null) { + entries[_IAMRARN] = input[_IAMRARN]; + } + return entries; +}; + /** * serializeAws_queryContent */ @@ -4964,6 +4979,13 @@ const se_ReceiptAction = (input: ReceiptAction, context: __SerdeContext): any => entries[loc] = value; }); } + if (input[_CAo] != null) { + const memberEntries = se_ConnectAction(input[_CAo], context); + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ConnectAction.${key}`; + entries[loc] = value; + }); + } return entries; }; @@ -6108,6 +6130,20 @@ const de_ConfigurationSetSendingPausedException = ( return contents; }; +/** + * deserializeAws_queryConnectAction + */ +const de_ConnectAction = (output: any, context: __SerdeContext): ConnectAction => { + const contents: any = {}; + if (output[_IARN] != null) { + contents[_IARN] = __expectString(output[_IARN]); + } + if (output[_IAMRARN] != null) { + contents[_IAMRARN] = __expectString(output[_IAMRARN]); + } + return contents; +}; + /** * deserializeAws_queryCreateConfigurationSetEventDestinationResponse */ @@ -7293,6 +7329,9 @@ const de_ReceiptAction = (output: any, context: __SerdeContext): ReceiptAction = if (output[_SNSA] != null) { contents[_SNSA] = de_SNSAction(output[_SNSA], context); } + if (output[_CAo] != null) { + contents[_CAo] = de_ConnectAction(output[_CAo], context); + } return contents; }; @@ -7998,6 +8037,7 @@ const _Bo = "Bounces"; const _Bu = "Bucket"; const _C = "Charset"; const _CA = "CcAddresses"; +const _CAo = "ConnectAction"; const _CCS = "CreateConfigurationSet"; const _CCSED = "CreateConfigurationSetEventDestination"; const _CCSTO = "CreateConfigurationSetTrackingOptions"; @@ -8090,6 +8130,7 @@ const _HP = "HtmlPart"; const _HV = "HeaderValue"; const _I = "Identity"; const _IAMRARN = "IAMRoleARN"; +const _IARN = "InstanceARN"; const _IF = "IpFilter"; const _IRA = "IamRoleArn"; const _IT = "InvocationType"; diff --git a/codegen/sdk-codegen/aws-models/ses.json b/codegen/sdk-codegen/aws-models/ses.json index b47879c925a3..c39520357a3b 100644 --- a/codegen/sdk-codegen/aws-models/ses.json +++ b/codegen/sdk-codegen/aws-models/ses.json @@ -697,6 +697,34 @@ "target": "com.amazonaws.ses#ConfigurationSet" } }, + "com.amazonaws.ses#ConnectAction": { + "type": "structure", + "members": { + "InstanceARN": { + "target": "com.amazonaws.ses#ConnectInstanceArn", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) for the Amazon Connect instance that Amazon SES integrates with for starting\n email contacts.
\nFor more information about Amazon Connect instances, see the Amazon Connect Administrator Guide\n
", + "smithy.api#required": {} + } + }, + "IAMRoleARN": { + "target": "com.amazonaws.ses#IAMRoleARN", + "traits": { + "smithy.api#documentation": " The Amazon Resource Name (ARN) of the IAM role to be used by Amazon Simple Email Service while starting email contacts\n to the Amazon Connect instance. This role should have permission to invoke connect:StartEmailContact
\n for the given Amazon Connect instance.
When included in a receipt rule, this action parses the received message and\n starts an email contact in Amazon Connect on your behalf.
\nWhen you receive emails, the maximum email size (including headers) is 40 MB.\n Additionally, emails may only have up to 10 attachments.\n Emails larger than 40 MB or with more than 10 attachments will be bounced.
\nWe recommend that you configure this action via Amazon Connect.
" + } + }, + "com.amazonaws.ses#ConnectInstanceArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9-]{1}:[0-9]{1,20}:instance/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, "com.amazonaws.ses#Content": { "type": "structure", "members": { @@ -3157,7 +3185,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "^arn:[\\w-]+:iam::[0-9]+:role/[\\w-]+$" + "smithy.api#pattern": "^arn:[\\w-]+:iam::[0-9]+:role(\\u002F)([\\u0021-\\u007E]+\\u002F)?([\\w+=,.@-]+)$" } }, "com.amazonaws.ses#Identity": { @@ -4590,6 +4618,12 @@ "traits": { "smithy.api#documentation": "Publishes the email content within a notification to Amazon SNS.
" } + }, + "ConnectAction": { + "target": "com.amazonaws.ses#ConnectAction", + "traits": { + "smithy.api#documentation": "Parses the received message and starts an email contact in Amazon Connect on your behalf.
" + } } }, "traits": { @@ -4996,13 +5030,13 @@ "KmsKeyArn": { "target": "com.amazonaws.ses#AmazonResourceName", "traits": { - "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:
\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 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 Amazon Web Services managed key or a customer managed key\n that you created in Amazon Web Services KMS as follows:
\nTo use the Amazon Web Services 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 Amazon Web Services managed key in the US West (Oregon) Region, the ARN of the Amazon Web Services managed\n key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses
. If\n you use the Amazon Web Services managed key, you don't need to perform any extra steps to give\n Amazon SES permission to use the key.
To use a customer managed key that you created in Amazon Web Services KMS, provide the ARN\n of the customer managed key and ensure that you add a statement to your key's\n policy to give Amazon SES permission to use it. For more information about giving\n permissions, see 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 an Amazon Web Services KMS 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.
\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. This role should have access to the following APIs:
\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.
\n