From acf4248f59ea4ce4355d369c79797304f865b059 Mon Sep 17 00:00:00 2001 From: AWS <> Date: Tue, 18 Aug 2020 18:07:09 +0000 Subject: [PATCH] Amazon Simple Email Service Update: This release includes new APIs to allow customers to add or remove email addresses from their account-level suppression list in bulk. --- ...ture-AmazonSimpleEmailService-f10d3aa.json | 5 + .../codegen-resources/paginators-1.json | 5 + .../codegen-resources/service-2.json | 276 ++++++++++++++++++ 3 files changed, 286 insertions(+) create mode 100644 .changes/next-release/feature-AmazonSimpleEmailService-f10d3aa.json diff --git a/.changes/next-release/feature-AmazonSimpleEmailService-f10d3aa.json b/.changes/next-release/feature-AmazonSimpleEmailService-f10d3aa.json new file mode 100644 index 000000000000..8483b904e48a --- /dev/null +++ b/.changes/next-release/feature-AmazonSimpleEmailService-f10d3aa.json @@ -0,0 +1,5 @@ +{ + "type": "feature", + "category": "Amazon Simple Email Service", + "description": "This release includes new APIs to allow customers to add or remove email addresses from their account-level suppression list in bulk." +} diff --git a/services/sesv2/src/main/resources/codegen-resources/paginators-1.json b/services/sesv2/src/main/resources/codegen-resources/paginators-1.json index 2408254705a6..6acdcfdb4384 100644 --- a/services/sesv2/src/main/resources/codegen-resources/paginators-1.json +++ b/services/sesv2/src/main/resources/codegen-resources/paginators-1.json @@ -40,6 +40,11 @@ "output_token": "NextToken", "limit_key": "PageSize" }, + "ListImportJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize" + }, "ListSuppressedDestinations": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/sesv2/src/main/resources/codegen-resources/service-2.json b/services/sesv2/src/main/resources/codegen-resources/service-2.json index 3a2dccbfdea4..216e43cf4cc4 100644 --- a/services/sesv2/src/main/resources/codegen-resources/service-2.json +++ b/services/sesv2/src/main/resources/codegen-resources/service-2.json @@ -153,6 +153,21 @@ ], "documentation":"

Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, + "CreateImportJob":{ + "name":"CreateImportJob", + "http":{ + "method":"POST", + "requestUri":"/v2/email/import-jobs" + }, + "input":{"shape":"CreateImportJobRequest"}, + "output":{"shape":"CreateImportJobResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Creates an import job for a data destination.

" + }, "DeleteConfigurationSet":{ "name":"DeleteConfigurationSet", "http":{ @@ -485,6 +500,21 @@ ], "documentation":"

Displays the template object (which includes the subject line, HTML part and text part) for the template you specify.

You can execute this operation no more than once per second.

" }, + "GetImportJob":{ + "name":"GetImportJob", + "http":{ + "method":"GET", + "requestUri":"/v2/email/import-jobs/{JobId}" + }, + "input":{"shape":"GetImportJobRequest"}, + "output":{"shape":"GetImportJobResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Provides information about an import job.

" + }, "GetSuppressedDestination":{ "name":"GetSuppressedDestination", "http":{ @@ -600,6 +630,20 @@ ], "documentation":"

Lists the email templates present in your Amazon SES account in the current AWS Region.

You can execute this operation no more than once per second.

" }, + "ListImportJobs":{ + "name":"ListImportJobs", + "http":{ + "method":"GET", + "requestUri":"/v2/email/import-jobs" + }, + "input":{"shape":"ListImportJobsRequest"}, + "output":{"shape":"ListImportJobsResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Lists all of the import jobs.

" + }, "ListSuppressedDestinations":{ "name":"ListSuppressedDestinations", "http":{ @@ -1616,6 +1660,34 @@ }, "documentation":"

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

" }, + "CreateImportJobRequest":{ + "type":"structure", + "required":[ + "ImportDestination", + "ImportDataSource" + ], + "members":{ + "ImportDestination":{ + "shape":"ImportDestination", + "documentation":"

The destination for the import job.

" + }, + "ImportDataSource":{ + "shape":"ImportDataSource", + "documentation":"

The data source for the import job.

" + } + }, + "documentation":"

Represents a request to create an import job from a data source for a data destination.

" + }, + "CreateImportJobResponse":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

A string that represents the import job ID.

" + } + }, + "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" + }, "CustomRedirectDomain":{ "type":"string", "documentation":"

The domain that you want to use for tracking open and click events.

" @@ -1673,6 +1745,14 @@ "type":"list", "member":{"shape":"DailyVolume"} }, + "DataFormat":{ + "type":"string", + "documentation":"

The data format of the import job's data source.

", + "enum":[ + "CSV", + "JSON" + ] + }, "DedicatedIp":{ "type":"structure", "required":[ @@ -2348,6 +2428,22 @@ "type":"list", "member":{"shape":"EventType"} }, + "FailedRecordsCount":{"type":"integer"}, + "FailedRecordsS3Url":{"type":"string"}, + "FailureInfo":{ + "type":"structure", + "members":{ + "FailedRecordsS3Url":{ + "shape":"FailedRecordsS3Url", + "documentation":"

An Amazon S3 presigned URL that contains all the failed records and related information.

" + }, + "ErrorMessage":{ + "shape":"ErrorMessage", + "documentation":"

A message about why the import job failed.

" + } + }, + "documentation":"

An object that contains the failure details about an import job.

" + }, "FailureRedirectionURL":{ "type":"string", "documentation":"

The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.

" @@ -2841,6 +2937,61 @@ }, "documentation":"

The following element is returned by the service.

" }, + "GetImportJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

The ID of the import job.

", + "location":"uri", + "locationName":"JobId" + } + }, + "documentation":"

Represents a request for information about an import job using the import job ID.

" + }, + "GetImportJobResponse":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

A string that represents the import job ID.

" + }, + "ImportDestination":{ + "shape":"ImportDestination", + "documentation":"

The destination of the import job.

" + }, + "ImportDataSource":{ + "shape":"ImportDataSource", + "documentation":"

The data source of the import job.

" + }, + "FailureInfo":{ + "shape":"FailureInfo", + "documentation":"

The failure details about an import job.

" + }, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

The status of the import job.

" + }, + "CreatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time stamp of when the import job was created.

" + }, + "CompletedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time stamp of when the import job was completed.

" + }, + "ProcessedRecordsCount":{ + "shape":"ProcessedRecordsCount", + "documentation":"

The current number of records processed.

" + }, + "FailedRecordsCount":{ + "shape":"FailedRecordsCount", + "documentation":"

The number of records that failed processing because of invalid input or other reasons.

" + } + }, + "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" + }, "GetSuppressedDestinationRequest":{ "type":"structure", "required":["EmailAddress"], @@ -2901,6 +3052,55 @@ ] }, "ImageUrl":{"type":"string"}, + "ImportDataSource":{ + "type":"structure", + "required":[ + "S3Url", + "DataFormat" + ], + "members":{ + "S3Url":{ + "shape":"S3Url", + "documentation":"

An Amazon S3 URL in the format s3://<bucket_name>/<object>.

" + }, + "DataFormat":{ + "shape":"DataFormat", + "documentation":"

The data format of the import job's data source.

" + } + }, + "documentation":"

An object that contains details about the data source of the import job.

" + }, + "ImportDestination":{ + "type":"structure", + "required":["SuppressionListDestination"], + "members":{ + "SuppressionListDestination":{ + "shape":"SuppressionListDestination", + "documentation":"

An object that contains the action of the import job towards suppression list.

" + } + }, + "documentation":"

An object that contains details about the resource destination the import job is going to target.

" + }, + "ImportDestinationType":{ + "type":"string", + "documentation":"

The destination of the import job, which can be used to list import jobs that have a certain ImportDestinationType.

", + "enum":["SUPPRESSION_LIST"] + }, + "ImportJobSummary":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"}, + "ImportDestination":{"shape":"ImportDestination"}, + "JobStatus":{"shape":"JobStatus"}, + "CreatedTimestamp":{"shape":"Timestamp"} + }, + "documentation":"

A summary of the import job.

" + }, + "ImportJobSummaryList":{ + "type":"list", + "member":{"shape":"ImportJobSummary"}, + "documentation":"

A list of the import job summaries.

" + }, "InboxPlacementTrackingOption":{ "type":"structure", "members":{ @@ -2957,6 +3157,21 @@ "type":"list", "member":{"shape":"IspPlacement"} }, + "JobId":{ + "type":"string", + "documentation":"

A string that represents the import job ID.

", + "min":1 + }, + "JobStatus":{ + "type":"string", + "documentation":"

The status of the import job.

", + "enum":[ + "CREATED", + "PROCESSING", + "COMPLETED", + "FAILED" + ] + }, "KinesisFirehoseDestination":{ "type":"structure", "required":[ @@ -3236,6 +3451,42 @@ }, "documentation":"

The following elements are returned by the service.

" }, + "ListImportJobsRequest":{ + "type":"structure", + "members":{ + "ImportDestinationType":{ + "shape":"ImportDestinationType", + "documentation":"

The destination of the import job, which can be used to list import jobs that have a certain ImportDestinationType.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

", + "location":"querystring", + "locationName":"NextToken" + }, + "PageSize":{ + "shape":"MaxItems", + "documentation":"

Maximum number of import jobs to return at once. Use this parameter to paginate results. If additional import jobs exist beyond the specified limit, the NextToken element is sent in the response. Use the NextToken value in subsequent requests to retrieve additional addresses.

", + "location":"querystring", + "locationName":"PageSize" + } + }, + "documentation":"

Represents a request to list all of the import jobs for a data destination within the specified maximum number of import jobs.

" + }, + "ListImportJobsResponse":{ + "type":"structure", + "members":{ + "ImportJobs":{ + "shape":"ImportJobSummaryList", + "documentation":"

A list of the import job summaries.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

" + } + }, + "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" + }, "ListOfDedicatedIpPools":{ "type":"list", "member":{"shape":"PoolName"}, @@ -3527,6 +3778,7 @@ "pattern":"^[a-zA-Z0-9+\\/]+={0,2}$", "sensitive":true }, + "ProcessedRecordsCount":{"type":"integer"}, "PutAccountDedicatedIpWarmupAttributesRequest":{ "type":"structure", "members":{ @@ -4031,6 +4283,11 @@ "DENIED" ] }, + "S3Url":{ + "type":"string", + "documentation":"

An Amazon S3 URL in the format s3://<bucket_name>/<object>.

", + "pattern":"^s3:\\/\\/([^\\/]+)\\/(.*?([^\\/]+)\\/?)$" + }, "Selector":{ "type":"string", "max":63, @@ -4311,6 +4568,25 @@ }, "documentation":"

An object that contains information about the email address suppression preferences for your account in the current AWS Region.

" }, + "SuppressionListDestination":{ + "type":"structure", + "required":["SuppressionListImportAction"], + "members":{ + "SuppressionListImportAction":{ + "shape":"SuppressionListImportAction", + "documentation":"

The type of action that you want to perform on the address. Acceptable values:

" + } + }, + "documentation":"

An object that contains details about the action of suppression list.

" + }, + "SuppressionListImportAction":{ + "type":"string", + "documentation":"

The type of action that you want to perform on the address. Acceptable values:

", + "enum":[ + "DELETE", + "PUT" + ] + }, "SuppressionListReason":{ "type":"string", "documentation":"

The reason that the address was added to the suppression list for your account. The value can be one of the following:

",