From 5ff67d1f632ab0cea8d249c638908b6f457d3ed2 Mon Sep 17 00:00:00 2001 From: AWS <> Date: Tue, 21 May 2024 18:07:29 +0000 Subject: [PATCH] MailManager Update: This release includes a new Amazon SES feature called Mail Manager, which is a set of email gateway capabilities designed to help customers strengthen their organization's email infrastructure, simplify email workflow management, and streamline email compliance control. --- .../feature-MailManager-e08eaeb.json | 6 + services/mailmanager/pom.xml | 60 + .../codegen-resources/endpoint-rule-set.json | 350 ++ .../codegen-resources/endpoint-tests.json | 314 ++ .../codegen-resources/paginators-1.json | 58 + .../codegen-resources/service-2.json | 4056 +++++++++++++++++ 6 files changed, 4844 insertions(+) create mode 100644 .changes/next-release/feature-MailManager-e08eaeb.json create mode 100644 services/mailmanager/pom.xml create mode 100644 services/mailmanager/src/main/resources/codegen-resources/endpoint-rule-set.json create mode 100644 services/mailmanager/src/main/resources/codegen-resources/endpoint-tests.json create mode 100644 services/mailmanager/src/main/resources/codegen-resources/paginators-1.json create mode 100644 services/mailmanager/src/main/resources/codegen-resources/service-2.json diff --git a/.changes/next-release/feature-MailManager-e08eaeb.json b/.changes/next-release/feature-MailManager-e08eaeb.json new file mode 100644 index 000000000000..db8e0cfd52c9 --- /dev/null +++ b/.changes/next-release/feature-MailManager-e08eaeb.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "MailManager", + "contributor": "", + "description": "This release includes a new Amazon SES feature called Mail Manager, which is a set of email gateway capabilities designed to help customers strengthen their organization's email infrastructure, simplify email workflow management, and streamline email compliance control." +} diff --git a/services/mailmanager/pom.xml b/services/mailmanager/pom.xml new file mode 100644 index 000000000000..a0fb701a1b6a --- /dev/null +++ b/services/mailmanager/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + software.amazon.awssdk + services + 2.25.57-SNAPSHOT + + mailmanager + AWS Java SDK :: Services :: Mail Manager + The AWS Java SDK for Mail Manager module holds the client classes that are used for + communicating with Mail Manager. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.mailmanager + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + software.amazon.awssdk + http-auth-aws + ${awsjavasdk.version} + + + diff --git a/services/mailmanager/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mailmanager/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..17751d95d6cc --- /dev/null +++ b/services/mailmanager/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mail-manager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mail-manager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mail-manager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mail-manager.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/services/mailmanager/src/main/resources/codegen-resources/endpoint-tests.json b/services/mailmanager/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..10683c5d595a --- /dev/null +++ b/services/mailmanager/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mail-manager.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/mailmanager/src/main/resources/codegen-resources/paginators-1.json b/services/mailmanager/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..70309f1c2ddb --- /dev/null +++ b/services/mailmanager/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,58 @@ +{ + "pagination": { + "ListAddonInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "AddonInstances" + }, + "ListAddonSubscriptions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "AddonSubscriptions" + }, + "ListArchiveExports": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "Exports" + }, + "ListArchiveSearches": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "Searches" + }, + "ListArchives": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "Archives" + }, + "ListIngressPoints": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "IngressPoints" + }, + "ListRelays": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "Relays" + }, + "ListRuleSets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "RuleSets" + }, + "ListTrafficPolicies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize", + "result_key": "TrafficPolicies" + } + } +} diff --git a/services/mailmanager/src/main/resources/codegen-resources/service-2.json b/services/mailmanager/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..1991fd06c294 --- /dev/null +++ b/services/mailmanager/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,4056 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-10-17", + "endpointPrefix":"mail-manager", + "jsonVersion":"1.0", + "protocol":"json", + "protocols":["json"], + "serviceFullName":"MailManager", + "serviceId":"MailManager", + "signatureVersion":"v4", + "signingName":"ses", + "targetPrefix":"MailManagerSvc", + "uid":"mailmanager-2023-10-17" + }, + "operations":{ + "CreateAddonInstance":{ + "name":"CreateAddonInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAddonInstanceRequest"}, + "output":{"shape":"CreateAddonInstanceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates an Add On instance for the subscription indicated in the request. The resulting Amazon Resource Name (ARN) can be used in a conditional statement for a rule set or traffic policy.

", + "idempotent":true + }, + "CreateAddonSubscription":{ + "name":"CreateAddonSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAddonSubscriptionRequest"}, + "output":{"shape":"CreateAddonSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a subscription for an Add On representing the acceptance of its terms of use and additional pricing. The subscription can then be used to create an instance for use in rule sets or traffic policies.

", + "idempotent":true + }, + "CreateArchive":{ + "name":"CreateArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateArchiveRequest"}, + "output":{"shape":"CreateArchiveResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates a new email archive resource for storing and retaining emails.

", + "idempotent":true + }, + "CreateIngressPoint":{ + "name":"CreateIngressPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateIngressPointRequest"}, + "output":{"shape":"CreateIngressPointResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Provision a new ingress endpoint resource.

", + "idempotent":true + }, + "CreateRelay":{ + "name":"CreateRelay", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRelayRequest"}, + "output":{"shape":"CreateRelayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a relay resource which can be used in rules to relay incoming emails to defined relay destinations.

", + "idempotent":true + }, + "CreateRuleSet":{ + "name":"CreateRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRuleSetRequest"}, + "output":{"shape":"CreateRuleSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Provision a new rule set.

", + "idempotent":true + }, + "CreateTrafficPolicy":{ + "name":"CreateTrafficPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrafficPolicyRequest"}, + "output":{"shape":"CreateTrafficPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Provision a new traffic policy resource.

", + "idempotent":true + }, + "DeleteAddonInstance":{ + "name":"DeleteAddonInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAddonInstanceRequest"}, + "output":{"shape":"DeleteAddonInstanceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes an Add On instance.

", + "idempotent":true + }, + "DeleteAddonSubscription":{ + "name":"DeleteAddonSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAddonSubscriptionRequest"}, + "output":{"shape":"DeleteAddonSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes an Add On subscription.

", + "idempotent":true + }, + "DeleteArchive":{ + "name":"DeleteArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteArchiveRequest"}, + "output":{"shape":"DeleteArchiveResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Initiates deletion of an email archive. This changes the archive state to pending deletion. In this state, no new emails can be added, and existing archived emails become inaccessible (search, export, download). The archive and all of its contents will be permanently deleted 30 days after entering the pending deletion state, regardless of the configured retention period.

", + "idempotent":true + }, + "DeleteIngressPoint":{ + "name":"DeleteIngressPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIngressPointRequest"}, + "output":{"shape":"DeleteIngressPointResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete an ingress endpoint resource.

", + "idempotent":true + }, + "DeleteRelay":{ + "name":"DeleteRelay", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRelayRequest"}, + "output":{"shape":"DeleteRelayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes an existing relay resource.

", + "idempotent":true + }, + "DeleteRuleSet":{ + "name":"DeleteRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRuleSetRequest"}, + "output":{"shape":"DeleteRuleSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Delete a rule set.

", + "idempotent":true + }, + "DeleteTrafficPolicy":{ + "name":"DeleteTrafficPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTrafficPolicyRequest"}, + "output":{"shape":"DeleteTrafficPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete a traffic policy resource.

", + "idempotent":true + }, + "GetAddonInstance":{ + "name":"GetAddonInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAddonInstanceRequest"}, + "output":{"shape":"GetAddonInstanceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets detailed information about an Add On instance.

" + }, + "GetAddonSubscription":{ + "name":"GetAddonSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAddonSubscriptionRequest"}, + "output":{"shape":"GetAddonSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets detailed information about an Add On subscription.

" + }, + "GetArchive":{ + "name":"GetArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveRequest"}, + "output":{"shape":"GetArchiveResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the full details and current state of a specified email archive.

" + }, + "GetArchiveExport":{ + "name":"GetArchiveExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveExportRequest"}, + "output":{"shape":"GetArchiveExportResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the details and current status of a specific email archive export job.

" + }, + "GetArchiveMessage":{ + "name":"GetArchiveMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveMessageRequest"}, + "output":{"shape":"GetArchiveMessageResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a pre-signed URL that provides temporary download access to the specific email message stored in the archive.

" + }, + "GetArchiveMessageContent":{ + "name":"GetArchiveMessageContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveMessageContentRequest"}, + "output":{"shape":"GetArchiveMessageContentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns the textual content of a specific email message stored in the archive. Attachments are not included.

" + }, + "GetArchiveSearch":{ + "name":"GetArchiveSearch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveSearchRequest"}, + "output":{"shape":"GetArchiveSearchResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the details and current status of a specific email archive search job.

" + }, + "GetArchiveSearchResults":{ + "name":"GetArchiveSearchResults", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetArchiveSearchResultsRequest"}, + "output":{"shape":"GetArchiveSearchResultsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns the results of a completed email archive search job.

" + }, + "GetIngressPoint":{ + "name":"GetIngressPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIngressPointRequest"}, + "output":{"shape":"GetIngressPointResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Fetch ingress endpoint resource attributes.

" + }, + "GetRelay":{ + "name":"GetRelay", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRelayRequest"}, + "output":{"shape":"GetRelayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Fetch the relay resource and it's attributes.

" + }, + "GetRuleSet":{ + "name":"GetRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRuleSetRequest"}, + "output":{"shape":"GetRuleSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Fetch attributes of a rule set.

" + }, + "GetTrafficPolicy":{ + "name":"GetTrafficPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTrafficPolicyRequest"}, + "output":{"shape":"GetTrafficPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Fetch attributes of a traffic policy resource.

" + }, + "ListAddonInstances":{ + "name":"ListAddonInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAddonInstancesRequest"}, + "output":{"shape":"ListAddonInstancesResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

Lists all Add On instances in your account.

" + }, + "ListAddonSubscriptions":{ + "name":"ListAddonSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAddonSubscriptionsRequest"}, + "output":{"shape":"ListAddonSubscriptionsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

Lists all Add On subscriptions in your account.

" + }, + "ListArchiveExports":{ + "name":"ListArchiveExports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListArchiveExportsRequest"}, + "output":{"shape":"ListArchiveExportsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a list of email archive export jobs.

" + }, + "ListArchiveSearches":{ + "name":"ListArchiveSearches", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListArchiveSearchesRequest"}, + "output":{"shape":"ListArchiveSearchesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a list of email archive search jobs.

" + }, + "ListArchives":{ + "name":"ListArchives", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListArchivesRequest"}, + "output":{"shape":"ListArchivesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a list of all email archives in your account.

" + }, + "ListIngressPoints":{ + "name":"ListIngressPoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIngressPointsRequest"}, + "output":{"shape":"ListIngressPointsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

List all ingress endpoint resources.

" + }, + "ListRelays":{ + "name":"ListRelays", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRelaysRequest"}, + "output":{"shape":"ListRelaysResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

Lists all the existing relay resources.

" + }, + "ListRuleSets":{ + "name":"ListRuleSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRuleSetsRequest"}, + "output":{"shape":"ListRuleSetsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

List rule sets for this account.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves the list of tags (keys and values) assigned to the resource.

" + }, + "ListTrafficPolicies":{ + "name":"ListTrafficPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTrafficPoliciesRequest"}, + "output":{"shape":"ListTrafficPoliciesResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

List traffic policy resources.

" + }, + "StartArchiveExport":{ + "name":"StartArchiveExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartArchiveExportRequest"}, + "output":{"shape":"StartArchiveExportResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Initiates an export of emails from the specified archive.

" + }, + "StartArchiveSearch":{ + "name":"StartArchiveSearch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartArchiveSearchRequest"}, + "output":{"shape":"StartArchiveSearchResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Initiates a search across emails in the specified archive.

" + }, + "StopArchiveExport":{ + "name":"StopArchiveExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopArchiveExportRequest"}, + "output":{"shape":"StopArchiveExportResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Stops an in-progress export of emails from an archive.

" + }, + "StopArchiveSearch":{ + "name":"StopArchiveSearch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopArchiveSearchRequest"}, + "output":{"shape":"StopArchiveSearchResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Stops an in-progress archive search job.

", + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Adds one or more tags (keys and values) to a specified resource.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Remove one or more tags (keys and values) from a specified resource.

", + "idempotent":true + }, + "UpdateArchive":{ + "name":"UpdateArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateArchiveRequest"}, + "output":{"shape":"UpdateArchiveResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the attributes of an existing email archive.

", + "idempotent":true + }, + "UpdateIngressPoint":{ + "name":"UpdateIngressPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateIngressPointRequest"}, + "output":{"shape":"UpdateIngressPointResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Update attributes of a provisioned ingress endpoint resource.

", + "idempotent":true + }, + "UpdateRelay":{ + "name":"UpdateRelay", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRelayRequest"}, + "output":{"shape":"UpdateRelayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates the attributes of an existing relay resource.

", + "idempotent":true + }, + "UpdateRuleSet":{ + "name":"UpdateRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleSetRequest"}, + "output":{"shape":"UpdateRuleSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

>Update attributes of an already provisioned rule set.

", + "idempotent":true + }, + "UpdateTrafficPolicy":{ + "name":"UpdateTrafficPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTrafficPolicyRequest"}, + "output":{"shape":"UpdateTrafficPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Update attributes of an already provisioned traffic policy resource.

", + "idempotent":true + } + }, + "shapes":{ + "AcceptAction":{ + "type":"string", + "enum":[ + "ALLOW", + "DENY" + ] + }, + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Occurs when a user is denied access to a specific resource or action.

", + "exception":true + }, + "ActionFailurePolicy":{ + "type":"string", + "enum":[ + "CONTINUE", + "DROP" + ] + }, + "AddHeaderAction":{ + "type":"structure", + "required":[ + "HeaderName", + "HeaderValue" + ], + "members":{ + "HeaderName":{ + "shape":"HeaderName", + "documentation":"

The name of the header to add to an email. The header must be prefixed with \"X-\". Headers are added regardless of whether the header name pre-existed in the email.

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

The value of the header to add to the email.

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

The action to add a header to a message. When executed, this action will add the given header to the message.

" + }, + "AddonInstance":{ + "type":"structure", + "members":{ + "AddonInstanceArn":{ + "shape":"AddonInstanceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Add On instance.

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

The unique ID of the Add On instance.

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

The name of the Add On for the instance.

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

The subscription ID for the instance.

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

The timestamp of when the Add On instance was created.

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

An Add On instance represents a specific configuration of an Add On.

" + }, + "AddonInstanceArn":{"type":"string"}, + "AddonInstanceId":{ + "type":"string", + "max":67, + "min":4, + "pattern":"^ai-[a-zA-Z0-9]{1,64}$" + }, + "AddonInstances":{ + "type":"list", + "member":{"shape":"AddonInstance"} + }, + "AddonName":{"type":"string"}, + "AddonSubscription":{ + "type":"structure", + "members":{ + "AddonName":{ + "shape":"AddonName", + "documentation":"

The name of the Add On.

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

The Amazon Resource Name (ARN) of the Add On subscription.

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

The unique ID of the Add On subscription.

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

The timestamp of when the Add On subscription was created.

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

A subscription for an Add On representing the acceptance of its terms of use and additional pricing.

" + }, + "AddonSubscriptionArn":{"type":"string"}, + "AddonSubscriptionId":{ + "type":"string", + "max":67, + "min":4, + "pattern":"^as-[a-zA-Z0-9]{1,64}$" + }, + "AddonSubscriptions":{ + "type":"list", + "member":{"shape":"AddonSubscription"} + }, + "Analysis":{ + "type":"structure", + "required":[ + "Analyzer", + "ResultField" + ], + "members":{ + "Analyzer":{ + "shape":"AnalyzerArn", + "documentation":"

The Amazon Resource Name (ARN) of an Add On.

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

The returned value from an Add On.

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

The result of an analysis can be used in conditions to trigger actions. Analyses can inspect the email content and report a certain aspect of the email.

" + }, + "AnalyzerArn":{ + "type":"string", + "pattern":"^[a-zA-Z0-9:_/+=,@.#-]+$" + }, + "Archive":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The unique identifier of the archive.

" + }, + "ArchiveName":{ + "shape":"ArchiveNameString", + "documentation":"

The unique name assigned to the archive.

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

The current state of the archive:

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

The timestamp of when the archive was last updated.

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

An archive resource for storing and retaining emails.

" + }, + "ArchiveAction":{ + "type":"structure", + "required":["TargetArchive"], + "members":{ + "ActionFailurePolicy":{ + "shape":"ActionFailurePolicy", + "documentation":"

A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the specified archive has been deleted.

" + }, + "TargetArchive":{ + "shape":"NameOrArn", + "documentation":"

The identifier of the archive to send the email to.

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

The action to archive the email by delivering the email to an Amazon SES archive.

" + }, + "ArchiveArn":{"type":"string"}, + "ArchiveBooleanEmailAttribute":{ + "type":"string", + "enum":["HAS_ATTACHMENTS"] + }, + "ArchiveBooleanExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator" + ], + "members":{ + "Evaluate":{ + "shape":"ArchiveBooleanToEvaluate", + "documentation":"

The email attribute value to evaluate.

" + }, + "Operator":{ + "shape":"ArchiveBooleanOperator", + "documentation":"

The boolean operator to use for evaluation.

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

A boolean expression to evaluate email attribute values.

" + }, + "ArchiveBooleanOperator":{ + "type":"string", + "enum":[ + "IS_TRUE", + "IS_FALSE" + ] + }, + "ArchiveBooleanToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"ArchiveBooleanEmailAttribute", + "documentation":"

The name of the email attribute to evaluate.

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

The attribute to evaluate in a boolean expression.

", + "union":true + }, + "ArchiveFilterCondition":{ + "type":"structure", + "members":{ + "BooleanExpression":{ + "shape":"ArchiveBooleanExpression", + "documentation":"

A boolean expression to evaluate against email attributes.

" + }, + "StringExpression":{ + "shape":"ArchiveStringExpression", + "documentation":"

A string expression to evaluate against email attributes.

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

A filter condition used to include or exclude emails when exporting from or searching an archive.

", + "union":true + }, + "ArchiveFilterConditions":{ + "type":"list", + "member":{"shape":"ArchiveFilterCondition"}, + "max":10, + "min":0 + }, + "ArchiveFilters":{ + "type":"structure", + "members":{ + "Include":{ + "shape":"ArchiveFilterConditions", + "documentation":"

The filter conditions for emails to include.

" + }, + "Unless":{ + "shape":"ArchiveFilterConditions", + "documentation":"

The filter conditions for emails to exclude.

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

A set of filter conditions to include and/or exclude emails.

" + }, + "ArchiveId":{ + "type":"string", + "max":66, + "min":3, + "pattern":"^a-[\\w]{1,64}$" + }, + "ArchiveIdString":{ + "type":"string", + "max":66, + "min":1 + }, + "ArchiveNameString":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9]$" + }, + "ArchiveRetention":{ + "type":"structure", + "members":{ + "RetentionPeriod":{ + "shape":"RetentionPeriod", + "documentation":"

The enum value sets the period for retaining emails in an archive.

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

The retention policy for an email archive that specifies how long emails are kept before being automatically deleted.

", + "union":true + }, + "ArchiveState":{ + "type":"string", + "enum":[ + "ACTIVE", + "PENDING_DELETION" + ] + }, + "ArchiveStringEmailAttribute":{ + "type":"string", + "enum":[ + "TO", + "FROM", + "CC", + "SUBJECT" + ] + }, + "ArchiveStringExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"ArchiveStringToEvaluate", + "documentation":"

The attribute of the email to evaluate.

" + }, + "Operator":{ + "shape":"ArchiveStringOperator", + "documentation":"

The operator to use when evaluating the string values.

" + }, + "Values":{ + "shape":"StringValueList", + "documentation":"

The list of string values to evaluate the email attribute against.

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

A string expression to evaluate an email attribute value against one or more string values.

" + }, + "ArchiveStringOperator":{ + "type":"string", + "enum":["CONTAINS"] + }, + "ArchiveStringToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"ArchiveStringEmailAttribute", + "documentation":"

The name of the email attribute to evaluate.

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

Specifies the email attribute to evaluate in a string expression.

", + "union":true + }, + "ArchivedMessageId":{"type":"string"}, + "ArchivesList":{ + "type":"list", + "member":{"shape":"Archive"} + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The request configuration has conflicts. For details, see the accompanying error message.

", + "exception":true + }, + "CreateAddonInstanceRequest":{ + "type":"structure", + "required":["AddonSubscriptionId"], + "members":{ + "AddonSubscriptionId":{ + "shape":"AddonSubscriptionId", + "documentation":"

The unique ID of a previously created subscription that an Add On instance is created for. You can only have one instance per subscription.

" + }, + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "CreateAddonInstanceResponse":{ + "type":"structure", + "required":["AddonInstanceId"], + "members":{ + "AddonInstanceId":{ + "shape":"AddonInstanceId", + "documentation":"

The unique ID of the Add On instance created by this API.

" + } + } + }, + "CreateAddonSubscriptionRequest":{ + "type":"structure", + "required":["AddonName"], + "members":{ + "AddonName":{ + "shape":"AddonName", + "documentation":"

The name of the Add On to subscribe to. You can only have one subscription for each Add On name.

" + }, + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "CreateAddonSubscriptionResponse":{ + "type":"structure", + "required":["AddonSubscriptionId"], + "members":{ + "AddonSubscriptionId":{ + "shape":"AddonSubscriptionId", + "documentation":"

The unique ID of the Add On subscription created by this API.

" + } + } + }, + "CreateArchiveRequest":{ + "type":"structure", + "required":["ArchiveName"], + "members":{ + "ArchiveName":{ + "shape":"ArchiveNameString", + "documentation":"

A unique name for the new archive.

" + }, + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token Amazon SES uses to recognize retries of this request.

", + "idempotencyToken":true + }, + "KmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The Amazon Resource Name (ARN) of the KMS key for encrypting emails in the archive.

" + }, + "Retention":{ + "shape":"ArchiveRetention", + "documentation":"

The period for retaining emails in the archive before automatic deletion.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

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

The request to create a new email archive.

" + }, + "CreateArchiveResponse":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The unique identifier for the newly created archive.

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

The response from creating a new email archive.

" + }, + "CreateIngressPointRequest":{ + "type":"structure", + "required":[ + "IngressPointName", + "RuleSetId", + "TrafficPolicyId", + "Type" + ], + "members":{ + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "IngressPointConfiguration":{ + "shape":"IngressPointConfiguration", + "documentation":"

If you choose an Authenticated ingress endpoint, you must configure either an SMTP password or a secret ARN.

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

A user friendly name for an ingress endpoint resource.

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

The identifier of an existing rule set that you attach to an ingress endpoint resource.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

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

The identifier of an existing traffic policy that you attach to an ingress endpoint resource.

" + }, + "Type":{ + "shape":"IngressPointType", + "documentation":"

The type of the ingress endpoint to create.

" + } + } + }, + "CreateIngressPointResponse":{ + "type":"structure", + "required":["IngressPointId"], + "members":{ + "IngressPointId":{ + "shape":"IngressPointId", + "documentation":"

The unique identifier for a previously created ingress endpoint.

" + } + } + }, + "CreateRelayRequest":{ + "type":"structure", + "required":[ + "Authentication", + "RelayName", + "ServerName", + "ServerPort" + ], + "members":{ + "Authentication":{ + "shape":"RelayAuthentication", + "documentation":"

Authentication for the relay destination server—specify the secretARN where the SMTP credentials are stored.

" + }, + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "RelayName":{ + "shape":"RelayName", + "documentation":"

The unique name of the relay resource.

" + }, + "ServerName":{ + "shape":"RelayServerName", + "documentation":"

The destination relay server address.

" + }, + "ServerPort":{ + "shape":"RelayServerPort", + "documentation":"

The destination relay server port.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "CreateRelayResponse":{ + "type":"structure", + "required":["RelayId"], + "members":{ + "RelayId":{ + "shape":"RelayId", + "documentation":"

A unique identifier of the created relay resource.

" + } + } + }, + "CreateRuleSetRequest":{ + "type":"structure", + "required":[ + "RuleSetName", + "Rules" + ], + "members":{ + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "RuleSetName":{ + "shape":"RuleSetName", + "documentation":"

A user-friendly name for the rule set.

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

Conditional rules that are evaluated for determining actions on email.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "CreateRuleSetResponse":{ + "type":"structure", + "required":["RuleSetId"], + "members":{ + "RuleSetId":{ + "shape":"RuleSetId", + "documentation":"

The identifier of the created rule set.

" + } + } + }, + "CreateTrafficPolicyRequest":{ + "type":"structure", + "required":[ + "DefaultAction", + "PolicyStatements", + "TrafficPolicyName" + ], + "members":{ + "ClientToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique token that Amazon SES uses to recognize subsequent retries of the same request.

", + "idempotencyToken":true + }, + "DefaultAction":{ + "shape":"AcceptAction", + "documentation":"

Default action instructs the traffic policy to either Allow or Deny (block) messages that fall outside of (or not addressed by) the conditions of your policy statements

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

The maximum message size in bytes of email which is allowed in by this traffic policy—anything larger will be blocked.

" + }, + "PolicyStatements":{ + "shape":"PolicyStatementList", + "documentation":"

Conditional statements for filtering email traffic.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

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

A user-friendly name for the traffic policy resource.

" + } + } + }, + "CreateTrafficPolicyResponse":{ + "type":"structure", + "required":["TrafficPolicyId"], + "members":{ + "TrafficPolicyId":{ + "shape":"TrafficPolicyId", + "documentation":"

The identifier of the traffic policy resource.

" + } + } + }, + "DeleteAddonInstanceRequest":{ + "type":"structure", + "required":["AddonInstanceId"], + "members":{ + "AddonInstanceId":{ + "shape":"AddonInstanceId", + "documentation":"

The Add On instance ID to delete.

" + } + } + }, + "DeleteAddonInstanceResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteAddonSubscriptionRequest":{ + "type":"structure", + "required":["AddonSubscriptionId"], + "members":{ + "AddonSubscriptionId":{ + "shape":"AddonSubscriptionId", + "documentation":"

The Add On subscription ID to delete.

" + } + } + }, + "DeleteAddonSubscriptionResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteArchiveRequest":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The identifier of the archive to delete.

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

The request to initiate deletion of an email archive.

" + }, + "DeleteArchiveResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response indicating if the archive deletion was successfully initiated.

On success, returns an HTTP 200 status code. On failure, returns an error message.

" + }, + "DeleteIngressPointRequest":{ + "type":"structure", + "required":["IngressPointId"], + "members":{ + "IngressPointId":{ + "shape":"IngressPointId", + "documentation":"

The identifier of the ingress endpoint resource that you want to delete.

" + } + } + }, + "DeleteIngressPointResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRelayRequest":{ + "type":"structure", + "required":["RelayId"], + "members":{ + "RelayId":{ + "shape":"RelayId", + "documentation":"

The unique relay identifier.

" + } + } + }, + "DeleteRelayResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRuleSetRequest":{ + "type":"structure", + "required":["RuleSetId"], + "members":{ + "RuleSetId":{ + "shape":"RuleSetId", + "documentation":"

The identifier of an existing rule set resource to delete.

" + } + } + }, + "DeleteRuleSetResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteTrafficPolicyRequest":{ + "type":"structure", + "required":["TrafficPolicyId"], + "members":{ + "TrafficPolicyId":{ + "shape":"TrafficPolicyId", + "documentation":"

The identifier of the traffic policy that you want to delete.

" + } + } + }, + "DeleteTrafficPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeliverToMailboxAction":{ + "type":"structure", + "required":[ + "MailboxArn", + "RoleArn" + ], + "members":{ + "ActionFailurePolicy":{ + "shape":"ActionFailurePolicy", + "documentation":"

A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the mailbox ARN is no longer valid.

" + }, + "MailboxArn":{ + "shape":"NameOrArn", + "documentation":"

The Amazon Resource Name (ARN) of a WorkMail organization to deliver the email to.

" + }, + "RoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role to use to execute this action. The role must have access to the workmail:DeliverToMailbox API.

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

This action to delivers an email to a mailbox.

" + }, + "Double":{ + "type":"double", + "box":true + }, + "DropAction":{ + "type":"structure", + "members":{ + }, + "documentation":"

This action causes processing to stop and the email to be dropped. If the action applies only to certain recipients, only those recipients are dropped, and processing continues for other recipients.

" + }, + "EmailAddress":{ + "type":"string", + "max":254, + "min":0, + "pattern":"^[0-9A-Za-z@+.-]+$", + "sensitive":true + }, + "EmailReceivedHeadersList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ErrorMessage":{"type":"string"}, + "ExportDestinationConfiguration":{ + "type":"structure", + "members":{ + "S3":{ + "shape":"S3ExportDestinationConfiguration", + "documentation":"

Configuration for delivering to an Amazon S3 bucket.

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

The destination configuration for delivering exported email data.

", + "union":true + }, + "ExportId":{ + "type":"string", + "max":64, + "min":1 + }, + "ExportMaxResults":{ + "type":"integer", + "box":true + }, + "ExportState":{ + "type":"string", + "enum":[ + "QUEUED", + "PREPROCESSING", + "PROCESSING", + "COMPLETED", + "FAILED", + "CANCELLED" + ] + }, + "ExportStatus":{ + "type":"structure", + "members":{ + "CompletionTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the export job completed (if finished).

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

An error message if the export job failed.

" + }, + "State":{ + "shape":"ExportState", + "documentation":"

The current state of the export job.

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

The timestamp of when the export job was submitted.

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

The current status of an archive export job.

" + }, + "ExportSummary":{ + "type":"structure", + "members":{ + "ExportId":{ + "shape":"ExportId", + "documentation":"

The unique identifier of the export job.

" + }, + "Status":{ + "shape":"ExportStatus", + "documentation":"

The current status of the export job.

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

Summary statuses of an archive export job.

" + }, + "ExportSummaryList":{ + "type":"list", + "member":{"shape":"ExportSummary"} + }, + "GetAddonInstanceRequest":{ + "type":"structure", + "required":["AddonInstanceId"], + "members":{ + "AddonInstanceId":{ + "shape":"AddonInstanceId", + "documentation":"

The Add On instance ID to retrieve information for.

" + } + } + }, + "GetAddonInstanceResponse":{ + "type":"structure", + "members":{ + "AddonInstanceArn":{ + "shape":"AddonInstanceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Add On instance.

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

The name of the Add On provider associated to the subscription of the instance.

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

The subscription ID associated to the instance.

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

The timestamp of when the Add On instance was created.

" + } + } + }, + "GetAddonSubscriptionRequest":{ + "type":"structure", + "required":["AddonSubscriptionId"], + "members":{ + "AddonSubscriptionId":{ + "shape":"AddonSubscriptionId", + "documentation":"

The Add On subscription ID to retrieve information for.

" + } + } + }, + "GetAddonSubscriptionResponse":{ + "type":"structure", + "members":{ + "AddonName":{ + "shape":"AddonName", + "documentation":"

The name of the Add On for the subscription.

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

Amazon Resource Name (ARN) for the subscription.

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

The timestamp of when the Add On subscription was created.

" + } + } + }, + "GetArchiveExportRequest":{ + "type":"structure", + "required":["ExportId"], + "members":{ + "ExportId":{ + "shape":"ExportId", + "documentation":"

The identifier of the export job to get details for.

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

The request to retrieve details of a specific archive export job.

" + }, + "GetArchiveExportResponse":{ + "type":"structure", + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive the email export was performed from.

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

Where the exported emails are being delivered.

" + }, + "Filters":{ + "shape":"ArchiveFilters", + "documentation":"

The criteria used to filter emails included in the export.

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

The start of the timestamp range the exported emails cover.

" + }, + "MaxResults":{ + "shape":"ExportMaxResults", + "documentation":"

The maximum number of email items included in the export.

" + }, + "Status":{ + "shape":"ExportStatus", + "documentation":"

The current status of the export job.

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

The end of the date range the exported emails cover.

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

The response containing details of the specified archive export job.

" + }, + "GetArchiveMessageContentRequest":{ + "type":"structure", + "required":["ArchivedMessageId"], + "members":{ + "ArchivedMessageId":{ + "shape":"ArchivedMessageId", + "documentation":"

The unique identifier of the archived email message.

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

The request to get the textual content of a specific email message stored in an archive.

" + }, + "GetArchiveMessageContentResponse":{ + "type":"structure", + "members":{ + "Body":{ + "shape":"MessageBody", + "documentation":"

The textual body content of the email message.

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

The response containing the textual content of the requested archived email message.

" + }, + "GetArchiveMessageRequest":{ + "type":"structure", + "required":["ArchivedMessageId"], + "members":{ + "ArchivedMessageId":{ + "shape":"ArchivedMessageId", + "documentation":"

The unique identifier of the archived email message.

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

The request to get details of a specific email message stored in an archive.

" + }, + "GetArchiveMessageResponse":{ + "type":"structure", + "members":{ + "MessageDownloadLink":{ + "shape":"S3PresignedURL", + "documentation":"

A pre-signed URL to temporarily download the full message content.

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

The response containing details about the requested archived email message.

" + }, + "GetArchiveRequest":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The identifier of the archive to retrieve.

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

The request to retrieve details of an email archive.

" + }, + "GetArchiveResponse":{ + "type":"structure", + "required":[ + "ArchiveArn", + "ArchiveId", + "ArchiveName", + "ArchiveState", + "Retention" + ], + "members":{ + "ArchiveArn":{ + "shape":"ArchiveArn", + "documentation":"

The Amazon Resource Name (ARN) of the archive.

" + }, + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The unique identifier of the archive.

" + }, + "ArchiveName":{ + "shape":"ArchiveNameString", + "documentation":"

The unique name assigned to the archive.

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

The current state of the archive:

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

The timestamp of when the archive was created.

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

The Amazon Resource Name (ARN) of the KMS key used to encrypt the archive.

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

The timestamp of when the archive was modified.

" + }, + "Retention":{ + "shape":"ArchiveRetention", + "documentation":"

The retention period for emails in this archive.

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

The response containing details of the requested archive.

" + }, + "GetArchiveSearchRequest":{ + "type":"structure", + "required":["SearchId"], + "members":{ + "SearchId":{ + "shape":"SearchId", + "documentation":"

The identifier of the search job to get details for.

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

The request to retrieve details of a specific archive search job.

" + }, + "GetArchiveSearchResponse":{ + "type":"structure", + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive the email search was performed in.

" + }, + "Filters":{ + "shape":"ArchiveFilters", + "documentation":"

The criteria used to filter emails included in the search.

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

The start timestamp of the range the searched emails cover.

" + }, + "MaxResults":{ + "shape":"SearchMaxResults", + "documentation":"

The maximum number of search results to return.

" + }, + "Status":{ + "shape":"SearchStatus", + "documentation":"

The current status of the search job.

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

The end timestamp of the range the searched emails cover.

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

The response containing details of the specified archive search job.

" + }, + "GetArchiveSearchResultsRequest":{ + "type":"structure", + "required":["SearchId"], + "members":{ + "SearchId":{ + "shape":"SearchId", + "documentation":"

The identifier of the completed search job.

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

The request to retrieve results from a completed archive search job.

" + }, + "GetArchiveSearchResultsResponse":{ + "type":"structure", + "members":{ + "Rows":{ + "shape":"RowsList", + "documentation":"

The list of email result objects matching the search criteria.

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

The response containing search results from a completed archive search.

" + }, + "GetIngressPointRequest":{ + "type":"structure", + "required":["IngressPointId"], + "members":{ + "IngressPointId":{ + "shape":"IngressPointId", + "documentation":"

The identifier of an ingress endpoint.

" + } + } + }, + "GetIngressPointResponse":{ + "type":"structure", + "required":[ + "IngressPointId", + "IngressPointName" + ], + "members":{ + "ARecord":{ + "shape":"IngressPointARecord", + "documentation":"

The DNS A Record that identifies your ingress endpoint. Configure your DNS Mail Exchange (MX) record with this value to route emails to Mail Manager.

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

The timestamp of when the ingress endpoint was created.

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

The Amazon Resource Name (ARN) of the ingress endpoint resource.

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

The authentication configuration of the ingress endpoint resource.

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

The identifier of an ingress endpoint resource.

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

A user friendly name for the ingress endpoint.

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

The timestamp of when the ingress endpoint was last updated.

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

The identifier of a rule set resource associated with the ingress endpoint.

" + }, + "Status":{ + "shape":"IngressPointStatus", + "documentation":"

The status of the ingress endpoint resource.

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

The identifier of the traffic policy resource associated with the ingress endpoint.

" + }, + "Type":{ + "shape":"IngressPointType", + "documentation":"

The type of ingress endpoint.

" + } + } + }, + "GetRelayRequest":{ + "type":"structure", + "required":["RelayId"], + "members":{ + "RelayId":{ + "shape":"RelayId", + "documentation":"

A unique relay identifier.

" + } + } + }, + "GetRelayResponse":{ + "type":"structure", + "required":["RelayId"], + "members":{ + "Authentication":{ + "shape":"RelayAuthentication", + "documentation":"

The authentication attribute—contains the secret ARN where the customer relay server credentials are stored.

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

The timestamp of when the relay was created.

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

The timestamp of when relay was last updated.

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

The Amazon Resource Name (ARN) of the relay.

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

The unique relay identifier.

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

The unique name of the relay.

" + }, + "ServerName":{ + "shape":"RelayServerName", + "documentation":"

The destination relay server address.

" + }, + "ServerPort":{ + "shape":"RelayServerPort", + "documentation":"

The destination relay server port.

" + } + } + }, + "GetRuleSetRequest":{ + "type":"structure", + "required":["RuleSetId"], + "members":{ + "RuleSetId":{ + "shape":"RuleSetId", + "documentation":"

The identifier of an existing rule set to be retrieved.

" + } + } + }, + "GetRuleSetResponse":{ + "type":"structure", + "required":[ + "CreatedDate", + "LastModificationDate", + "RuleSetArn", + "RuleSetId", + "RuleSetName", + "Rules" + ], + "members":{ + "CreatedDate":{ + "shape":"Timestamp", + "documentation":"

The date of when then rule set was created.

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

The date of when the rule set was last modified.

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

The Amazon Resource Name (ARN) of the rule set resource.

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

The identifier of the rule set resource.

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

A user-friendly name for the rule set resource.

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

The rules contained in the rule set.

" + } + } + }, + "GetTrafficPolicyRequest":{ + "type":"structure", + "required":["TrafficPolicyId"], + "members":{ + "TrafficPolicyId":{ + "shape":"TrafficPolicyId", + "documentation":"

The identifier of the traffic policy resource.

" + } + } + }, + "GetTrafficPolicyResponse":{ + "type":"structure", + "required":[ + "TrafficPolicyId", + "TrafficPolicyName" + ], + "members":{ + "CreatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the traffic policy was created.

" + }, + "DefaultAction":{ + "shape":"AcceptAction", + "documentation":"

The default action of the traffic policy.

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

The timestamp of when the traffic policy was last updated.

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

The maximum message size in bytes of email which is allowed in by this traffic policy—anything larger will be blocked.

" + }, + "PolicyStatements":{ + "shape":"PolicyStatementList", + "documentation":"

The list of conditions which are in the traffic policy resource.

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

The Amazon Resource Name (ARN) of the traffic policy resource.

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

The identifier of the traffic policy resource.

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

A user-friendly name for the traffic policy resource.

" + } + } + }, + "HeaderName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[xX]\\-[a-zA-Z0-9\\-]+$" + }, + "HeaderValue":{ + "type":"string", + "max":128, + "min":1 + }, + "IamRoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^[a-zA-Z0-9:_/+=,@.#-]+$" + }, + "IdOrArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^[a-zA-Z0-9:_/+=,@.#-]+$" + }, + "IdempotencyToken":{ + "type":"string", + "max":128, + "min":1 + }, + "IngressAnalysis":{ + "type":"structure", + "required":[ + "Analyzer", + "ResultField" + ], + "members":{ + "Analyzer":{ + "shape":"AnalyzerArn", + "documentation":"

The Amazon Resource Name (ARN) of an Add On.

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

The returned value from an Add On.

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

The Add On ARN and its returned value that is evaluated in a policy statement's conditional expression to either deny or block the incoming email.

" + }, + "IngressBooleanExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator" + ], + "members":{ + "Evaluate":{ + "shape":"IngressBooleanToEvaluate", + "documentation":"

The operand on which to perform a boolean condition operation.

" + }, + "Operator":{ + "shape":"IngressBooleanOperator", + "documentation":"

The matching operator for a boolean condition expression.

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

The structure for a boolean condition matching on the incoming mail.

" + }, + "IngressBooleanOperator":{ + "type":"string", + "enum":[ + "IS_TRUE", + "IS_FALSE" + ] + }, + "IngressBooleanToEvaluate":{ + "type":"structure", + "members":{ + "Analysis":{ + "shape":"IngressAnalysis", + "documentation":"

The structure type for a boolean condition stating the Add On ARN and its returned value.

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

The union type representing the allowed types of operands for a boolean condition.

", + "union":true + }, + "IngressIpOperator":{ + "type":"string", + "enum":[ + "CIDR_MATCHES", + "NOT_CIDR_MATCHES" + ] + }, + "IngressIpToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"IngressIpv4Attribute", + "documentation":"

An enum type representing the allowed attribute types for an IP condition.

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

The structure for an IP based condition matching on the incoming mail.

", + "union":true + }, + "IngressIpv4Attribute":{ + "type":"string", + "enum":["SENDER_IP"] + }, + "IngressIpv4Expression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"IngressIpToEvaluate", + "documentation":"

The left hand side argument of an IP condition expression.

" + }, + "Operator":{ + "shape":"IngressIpOperator", + "documentation":"

The matching operator for an IP condition expression.

" + }, + "Values":{ + "shape":"Ipv4Cidrs", + "documentation":"

The right hand side argument of an IP condition expression.

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

The union type representing the allowed types for the left hand side of an IP condition.

" + }, + "IngressPoint":{ + "type":"structure", + "required":[ + "IngressPointId", + "IngressPointName", + "Status", + "Type" + ], + "members":{ + "ARecord":{ + "shape":"IngressPointARecord", + "documentation":"

The DNS A Record that identifies your ingress endpoint. Configure your DNS Mail Exchange (MX) record with this value to route emails to Mail Manager.

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

The identifier of the ingress endpoint resource.

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

A user friendly name for the ingress endpoint resource.

" + }, + "Status":{ + "shape":"IngressPointStatus", + "documentation":"

The status of the ingress endpoint resource.

" + }, + "Type":{ + "shape":"IngressPointType", + "documentation":"

The type of ingress endpoint resource.

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

The structure of an ingress endpoint resource.

" + }, + "IngressPointARecord":{"type":"string"}, + "IngressPointArn":{"type":"string"}, + "IngressPointAuthConfiguration":{ + "type":"structure", + "members":{ + "IngressPointPasswordConfiguration":{ + "shape":"IngressPointPasswordConfiguration", + "documentation":"

The ingress endpoint password configuration for the ingress endpoint resource.

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

The ingress endpoint SecretsManager::Secret ARN configuration for the ingress endpoint resource.

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

The authentication configuration for the ingress endpoint resource.

" + }, + "IngressPointConfiguration":{ + "type":"structure", + "members":{ + "SecretArn":{ + "shape":"SecretArn", + "documentation":"

The SecretsManager::Secret ARN of the ingress endpoint resource.

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

The password of the ingress endpoint resource.

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

The configuration of the ingress endpoint resource.

", + "union":true + }, + "IngressPointId":{ + "type":"string", + "max":100, + "min":1 + }, + "IngressPointName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^[A-Za-z0-9_\\-]+$" + }, + "IngressPointPasswordConfiguration":{ + "type":"structure", + "members":{ + "PreviousSmtpPasswordExpiryTimestamp":{ + "shape":"Timestamp", + "documentation":"

The previous password expiry timestamp of the ingress endpoint resource.

" + }, + "PreviousSmtpPasswordVersion":{ + "shape":"String", + "documentation":"

The previous password version of the ingress endpoint resource.

" + }, + "SmtpPasswordVersion":{ + "shape":"String", + "documentation":"

The current password expiry timestamp of the ingress endpoint resource.

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

The password configuration of the ingress endpoint resource.

" + }, + "IngressPointStatus":{ + "type":"string", + "enum":[ + "PROVISIONING", + "DEPROVISIONING", + "UPDATING", + "ACTIVE", + "CLOSED", + "FAILED" + ] + }, + "IngressPointStatusToUpdate":{ + "type":"string", + "enum":[ + "ACTIVE", + "CLOSED" + ] + }, + "IngressPointType":{ + "type":"string", + "enum":[ + "OPEN", + "AUTH" + ] + }, + "IngressPointsList":{ + "type":"list", + "member":{"shape":"IngressPoint"} + }, + "IngressStringEmailAttribute":{ + "type":"string", + "enum":["RECIPIENT"] + }, + "IngressStringExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"IngressStringToEvaluate", + "documentation":"

The left hand side argument of a string condition expression.

" + }, + "Operator":{ + "shape":"IngressStringOperator", + "documentation":"

The matching operator for a string condition expression.

" + }, + "Values":{ + "shape":"StringList", + "documentation":"

The right hand side argument of a string condition expression.

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

The structure for a string based condition matching on the incoming mail.

" + }, + "IngressStringOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS" + ] + }, + "IngressStringToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"IngressStringEmailAttribute", + "documentation":"

The enum type representing the allowed attribute types for a string condition.

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

The union type representing the allowed types for the left hand side of a string condition.

", + "union":true + }, + "IngressTlsAttribute":{ + "type":"string", + "enum":["TLS_PROTOCOL"] + }, + "IngressTlsProtocolAttribute":{ + "type":"string", + "enum":[ + "TLS1_2", + "TLS1_3" + ] + }, + "IngressTlsProtocolExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Value" + ], + "members":{ + "Evaluate":{ + "shape":"IngressTlsProtocolToEvaluate", + "documentation":"

The left hand side argument of a TLS condition expression.

" + }, + "Operator":{ + "shape":"IngressTlsProtocolOperator", + "documentation":"

The matching operator for a TLS condition expression.

" + }, + "Value":{ + "shape":"IngressTlsProtocolAttribute", + "documentation":"

The right hand side argument of a TLS condition expression.

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

The structure for a TLS related condition matching on the incoming mail.

" + }, + "IngressTlsProtocolOperator":{ + "type":"string", + "enum":[ + "MINIMUM_TLS_VERSION", + "IS" + ] + }, + "IngressTlsProtocolToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"IngressTlsAttribute", + "documentation":"

The enum type representing the allowed attribute types for the TLS condition.

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

The union type representing the allowed types for the left hand side of a TLS condition.

", + "union":true + }, + "Integer":{ + "type":"integer", + "box":true + }, + "Ipv4Cidr":{ + "type":"string", + "pattern":"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/([0-9]|[12][0-9]|3[0-2])$" + }, + "Ipv4Cidrs":{ + "type":"list", + "member":{"shape":"Ipv4Cidr"} + }, + "KmsKeyArn":{ + "type":"string", + "pattern":"^arn:aws(|-cn|-us-gov):kms:[a-z0-9-]{1,20}:[0-9]{12}:(key|alias)/.+$" + }, + "KmsKeyId":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^[a-zA-Z0-9-:/]+$" + }, + "ListAddonInstancesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

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

The maximum number of ingress endpoint resources that are returned per call. You can use NextToken to obtain further ingress endpoints.

" + } + } + }, + "ListAddonInstancesResponse":{ + "type":"structure", + "members":{ + "AddonInstances":{ + "shape":"AddonInstances", + "documentation":"

The list of ingress endpoints.

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

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListAddonSubscriptionsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

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

The maximum number of ingress endpoint resources that are returned per call. You can use NextToken to obtain further ingress endpoints.

" + } + } + }, + "ListAddonSubscriptionsResponse":{ + "type":"structure", + "members":{ + "AddonSubscriptions":{ + "shape":"AddonSubscriptions", + "documentation":"

The list of ingress endpoints.

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

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListArchiveExportsRequest":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive.

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

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

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

The maximum number of archive export jobs that are returned per call. You can use NextToken to obtain further pages of archives.

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

The request to list archive export jobs in your account.

" + }, + "ListArchiveExportsResponse":{ + "type":"structure", + "members":{ + "Exports":{ + "shape":"ExportSummaryList", + "documentation":"

The list of export job identifiers and statuses.

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

If present, use to retrieve the next page of results.

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

The response containing a list of archive export jobs and their statuses.

" + }, + "ListArchiveSearchesRequest":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive.

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

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

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

The maximum number of archive search jobs that are returned per call. You can use NextToken to obtain further pages of archives.

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

The request to list archive search jobs in your account.

" + }, + "ListArchiveSearchesResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If present, use to retrieve the next page of results.

" + }, + "Searches":{ + "shape":"SearchSummaryList", + "documentation":"

The list of search job identifiers and statuses.

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

The response containing a list of archive search jobs and their statuses.

" + }, + "ListArchivesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

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

The maximum number of archives that are returned per call. You can use NextToken to obtain further pages of archives.

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

The request to list email archives in your account.

" + }, + "ListArchivesResponse":{ + "type":"structure", + "required":["Archives"], + "members":{ + "Archives":{ + "shape":"ArchivesList", + "documentation":"

The list of archive details.

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

If present, use to retrieve the next page of results.

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

The response containing a list of your email archives.

" + }, + "ListIngressPointsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

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

The maximum number of ingress endpoint resources that are returned per call. You can use NextToken to obtain further ingress endpoints.

" + } + } + }, + "ListIngressPointsResponse":{ + "type":"structure", + "members":{ + "IngressPoints":{ + "shape":"IngressPointsList", + "documentation":"

The list of ingress endpoints.

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

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListRelaysRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

" + }, + "PageSize":{ + "shape":"Integer", + "documentation":"

The number of relays to be returned in one request.

" + } + } + }, + "ListRelaysResponse":{ + "type":"structure", + "required":["Relays"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

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

The list of returned relays.

" + } + } + }, + "ListRuleSetsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

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

The maximum number of rule set resources that are returned per call. You can use NextToken to obtain further rule sets.

" + } + } + }, + "ListRuleSetsResponse":{ + "type":"structure", + "required":["RuleSets"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

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

The list of rule sets.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"TaggableResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to retrieve tags from.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["Tags"], + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "ListTrafficPoliciesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If you received a pagination token from a previous call to this API, you can provide it here to continue paginating through the next page of results.

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

The maximum number of traffic policy resources that are returned per call. You can use NextToken to obtain further traffic policies.

" + } + } + }, + "ListTrafficPoliciesResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "TrafficPolicies":{ + "shape":"TrafficPolicyList", + "documentation":"

The list of traffic policies.

" + } + } + }, + "MailFrom":{ + "type":"string", + "enum":[ + "REPLACE", + "PRESERVE" + ] + }, + "MaxMessageSizeBytes":{ + "type":"integer", + "box":true, + "min":1 + }, + "MessageBody":{ + "type":"structure", + "members":{ + "Html":{ + "shape":"String", + "documentation":"

The HTML body content of the message.

" + }, + "MessageMalformed":{ + "shape":"Boolean", + "documentation":"

A flag indicating if the email was malformed.

" + }, + "Text":{ + "shape":"String", + "documentation":"

The plain text body content of the message.

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

The textual body content of an email message.

" + }, + "NameOrArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^[a-zA-Z0-9:_/+=,@.#-]+$" + }, + "NoAuthentication":{ + "type":"structure", + "members":{ + }, + "documentation":"

Explicitly indicate that the relay destination server does not require SMTP credential authentication.

" + }, + "PageSize":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "PaginationToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "PolicyCondition":{ + "type":"structure", + "members":{ + "BooleanExpression":{ + "shape":"IngressBooleanExpression", + "documentation":"

This represents a boolean type condition matching on the incoming mail. It performs the boolean operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.

" + }, + "IpExpression":{ + "shape":"IngressIpv4Expression", + "documentation":"

This represents an IP based condition matching on the incoming mail. It performs the operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.

" + }, + "StringExpression":{ + "shape":"IngressStringExpression", + "documentation":"

This represents a string based condition matching on the incoming mail. It performs the string operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.

" + }, + "TlsExpression":{ + "shape":"IngressTlsProtocolExpression", + "documentation":"

This represents a TLS based condition matching on the incoming mail. It performs the operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.

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

The email traffic filtering conditions which are contained in a traffic policy resource.

", + "union":true + }, + "PolicyConditions":{ + "type":"list", + "member":{"shape":"PolicyCondition"}, + "min":1 + }, + "PolicyStatement":{ + "type":"structure", + "required":[ + "Action", + "Conditions" + ], + "members":{ + "Action":{ + "shape":"AcceptAction", + "documentation":"

The action that informs a traffic policy resource to either allow or block the email if it matches a condition in the policy statement.

" + }, + "Conditions":{ + "shape":"PolicyConditions", + "documentation":"

The list of conditions to apply to incoming messages for filtering email traffic.

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

The structure containing traffic policy conditions and actions.

" + }, + "PolicyStatementList":{ + "type":"list", + "member":{"shape":"PolicyStatement"} + }, + "Recipients":{ + "type":"list", + "member":{"shape":"EmailAddress"}, + "max":100, + "min":1 + }, + "Relay":{ + "type":"structure", + "members":{ + "LastModifiedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the relay was last modified.

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

The unique relay identifier.

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

The unique relay name.

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

The relay resource that can be used as a rule to relay receiving emails to the destination relay server.

" + }, + "RelayAction":{ + "type":"structure", + "required":["Relay"], + "members":{ + "ActionFailurePolicy":{ + "shape":"ActionFailurePolicy", + "documentation":"

A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the specified relay has been deleted.

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

This action specifies whether to preserve or replace original mail from address while relaying received emails to a destination server.

" + }, + "Relay":{ + "shape":"IdOrArn", + "documentation":"

The identifier of the relay resource to be used when relaying an email.

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

The action relays the email via SMTP to another specific SMTP server.

" + }, + "RelayArn":{"type":"string"}, + "RelayAuthentication":{ + "type":"structure", + "members":{ + "NoAuthentication":{ + "shape":"NoAuthentication", + "documentation":"

Keep an empty structure if the relay destination server does not require SMTP credential authentication.

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

The ARN of the secret created in secrets manager where the relay server's SMTP credentials are stored.

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

Authentication for the relay destination server—specify the secretARN where the SMTP credentials are stored, or specify an empty NoAuthentication structure if the relay destination server does not require SMTP credential authentication.

", + "union":true + }, + "RelayId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z0-9-]+$" + }, + "RelayName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z0-9-_]+$" + }, + "RelayServerName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z0-9-\\.]+$" + }, + "RelayServerPort":{ + "type":"integer", + "box":true, + "max":65535, + "min":1 + }, + "Relays":{ + "type":"list", + "member":{"shape":"Relay"} + }, + "ReplaceRecipientAction":{ + "type":"structure", + "members":{ + "ReplaceWith":{ + "shape":"Recipients", + "documentation":"

This action specifies the replacement recipient email addresses to insert.

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

This action replaces the email envelope recipients with the given list of recipients. If the condition of this action applies only to a subset of recipients, only those recipients are replaced with the recipients specified in the action. The message contents and headers are unaffected by this action, only the envelope recipients are updated.

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Occurs when a requested resource is not found.

", + "exception":true + }, + "ResultField":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[\\sa-zA-Z0-9_]+$" + }, + "RetentionPeriod":{ + "type":"string", + "enum":[ + "THREE_MONTHS", + "SIX_MONTHS", + "NINE_MONTHS", + "ONE_YEAR", + "EIGHTEEN_MONTHS", + "TWO_YEARS", + "THIRTY_MONTHS", + "THREE_YEARS", + "FOUR_YEARS", + "FIVE_YEARS", + "SIX_YEARS", + "SEVEN_YEARS", + "EIGHT_YEARS", + "NINE_YEARS", + "TEN_YEARS", + "PERMANENT" + ] + }, + "Row":{ + "type":"structure", + "members":{ + "ArchivedMessageId":{ + "shape":"ArchivedMessageId", + "documentation":"

The unique identifier of the archived message.

" + }, + "Cc":{ + "shape":"String", + "documentation":"

The email addresses in the CC header.

" + }, + "Date":{ + "shape":"String", + "documentation":"

The date the email was sent.

" + }, + "From":{ + "shape":"String", + "documentation":"

The email address of the sender.

" + }, + "HasAttachments":{ + "shape":"Boolean", + "documentation":"

A flag indicating if the email has attachments.

" + }, + "InReplyTo":{ + "shape":"String", + "documentation":"

The email message ID this is a reply to.

" + }, + "MessageId":{ + "shape":"String", + "documentation":"

The unique message ID of the email.

" + }, + "ReceivedHeaders":{ + "shape":"EmailReceivedHeadersList", + "documentation":"

The received headers from the email delivery path.

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

The timestamp of when the email was received.

" + }, + "Subject":{ + "shape":"String", + "documentation":"

The subject header value of the email.

" + }, + "To":{ + "shape":"String", + "documentation":"

The email addresses in the To header.

" + }, + "XMailer":{ + "shape":"String", + "documentation":"

The user agent that sent the email.

" + }, + "XOriginalMailer":{ + "shape":"String", + "documentation":"

The original user agent that sent the email.

" + }, + "XPriority":{ + "shape":"String", + "documentation":"

The priority level of the email.

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

A result row containing metadata for an archived email message.

" + }, + "RowsList":{ + "type":"list", + "member":{"shape":"Row"} + }, + "Rule":{ + "type":"structure", + "required":["Actions"], + "members":{ + "Actions":{ + "shape":"RuleActions", + "documentation":"

The list of actions to execute when the conditions match the incoming email, and none of the \"unless conditions\" match.

" + }, + "Conditions":{ + "shape":"RuleConditions", + "documentation":"

The conditions of this rule. All conditions must match the email for the actions to be executed. An empty list of conditions means that all emails match, but are still subject to any \"unless conditions\"

" + }, + "Name":{ + "shape":"RuleName", + "documentation":"

The user-friendly name of the rule.

" + }, + "Unless":{ + "shape":"RuleConditions", + "documentation":"

The \"unless conditions\" of this rule. None of the conditions can match the email for the actions to be executed. If any of these conditions do match the email, then the actions are not executed.

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

A rule contains conditions, \"unless conditions\" and actions. For each envelope recipient of an email, if all conditions match and none of the \"unless conditions\" match, then all of the actions are executed sequentially. If no conditions are provided, the rule always applies and the actions are implicitly executed. If only \"unless conditions\" are provided, the rule applies if the email does not match the evaluation of the \"unless conditions\".

" + }, + "RuleAction":{ + "type":"structure", + "members":{ + "AddHeader":{ + "shape":"AddHeaderAction", + "documentation":"

This action adds a header. This can be used to add arbitrary email headers.

" + }, + "Archive":{ + "shape":"ArchiveAction", + "documentation":"

This action archives the email. This can be used to deliver an email to an archive.

" + }, + "DeliverToMailbox":{ + "shape":"DeliverToMailboxAction", + "documentation":"

This action delivers an email to a WorkMail mailbox.

" + }, + "Drop":{ + "shape":"DropAction", + "documentation":"

This action terminates the evaluation of rules in the rule set.

" + }, + "Relay":{ + "shape":"RelayAction", + "documentation":"

This action relays the email to another SMTP server.

" + }, + "ReplaceRecipient":{ + "shape":"ReplaceRecipientAction", + "documentation":"

The action replaces certain or all recipients with a different set of recipients.

" + }, + "Send":{ + "shape":"SendAction", + "documentation":"

This action sends the email to the internet.

" + }, + "WriteToS3":{ + "shape":"S3Action", + "documentation":"

This action writes the MIME content of the email to an S3 bucket.

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

The action for a rule to take. Only one of the contained actions can be set.

", + "union":true + }, + "RuleActions":{ + "type":"list", + "member":{"shape":"RuleAction"}, + "max":10, + "min":1 + }, + "RuleBooleanEmailAttribute":{ + "type":"string", + "enum":[ + "READ_RECEIPT_REQUESTED", + "TLS", + "TLS_WRAPPED" + ] + }, + "RuleBooleanExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator" + ], + "members":{ + "Evaluate":{ + "shape":"RuleBooleanToEvaluate", + "documentation":"

The operand on which to perform a boolean condition operation.

" + }, + "Operator":{ + "shape":"RuleBooleanOperator", + "documentation":"

The matching operator for a boolean condition expression.

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

A boolean expression to be used in a rule condition.

" + }, + "RuleBooleanOperator":{ + "type":"string", + "enum":[ + "IS_TRUE", + "IS_FALSE" + ] + }, + "RuleBooleanToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"RuleBooleanEmailAttribute", + "documentation":"

The boolean type representing the allowed attribute types for an email.

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

The union type representing the allowed types of operands for a boolean condition.

", + "union":true + }, + "RuleCondition":{ + "type":"structure", + "members":{ + "BooleanExpression":{ + "shape":"RuleBooleanExpression", + "documentation":"

The condition applies to a boolean expression passed in this field.

" + }, + "DmarcExpression":{ + "shape":"RuleDmarcExpression", + "documentation":"

The condition applies to a DMARC policy expression passed in this field.

" + }, + "IpExpression":{ + "shape":"RuleIpExpression", + "documentation":"

The condition applies to an IP address expression passed in this field.

" + }, + "NumberExpression":{ + "shape":"RuleNumberExpression", + "documentation":"

The condition applies to a number expression passed in this field.

" + }, + "StringExpression":{ + "shape":"RuleStringExpression", + "documentation":"

The condition applies to a string expression passed in this field.

" + }, + "VerdictExpression":{ + "shape":"RuleVerdictExpression", + "documentation":"

The condition applies to a verdict expression passed in this field.

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

The conditional expression used to evaluate an email for determining if a rule action should be taken.

", + "union":true + }, + "RuleConditions":{ + "type":"list", + "member":{"shape":"RuleCondition"}, + "max":10, + "min":0 + }, + "RuleDmarcExpression":{ + "type":"structure", + "required":[ + "Operator", + "Values" + ], + "members":{ + "Operator":{ + "shape":"RuleDmarcOperator", + "documentation":"

The operator to apply to the DMARC policy of the incoming email.

" + }, + "Values":{ + "shape":"RuleDmarcValueList", + "documentation":"

The values to use for the given DMARC policy operator. For the operator EQUALS, if multiple values are given, they are evaluated as an OR. That is, if any of the given values match, the condition is deemed to match. For the operator NOT_EQUALS, if multiple values are given, they are evaluated as an AND. That is, only if the email's DMARC policy is not equal to any of the given values, then the condition is deemed to match.

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

A DMARC policy expression. The condition matches if the given DMARC policy matches that of the incoming email.

" + }, + "RuleDmarcOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS" + ] + }, + "RuleDmarcPolicy":{ + "type":"string", + "enum":[ + "NONE", + "QUARANTINE", + "REJECT" + ] + }, + "RuleDmarcValueList":{ + "type":"list", + "member":{"shape":"RuleDmarcPolicy"}, + "max":10, + "min":1 + }, + "RuleIpEmailAttribute":{ + "type":"string", + "enum":["SOURCE_IP"] + }, + "RuleIpExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"RuleIpToEvaluate", + "documentation":"

The IP address to evaluate in this condition.

" + }, + "Operator":{ + "shape":"RuleIpOperator", + "documentation":"

The operator to evaluate the IP address.

" + }, + "Values":{ + "shape":"RuleIpValueList", + "documentation":"

The IP CIDR blocks in format \"x.y.z.w/n\" (eg 10.0.0.0/8) to match with the email's IP address. For the operator CIDR_MATCHES, if multiple values are given, they are evaluated as an OR. That is, if the IP address is contained within any of the given CIDR ranges, the condition is deemed to match. For NOT_CIDR_MATCHES, if multiple CIDR ranges are given, the condition is deemed to match if the IP address is not contained in any of the given CIDR ranges.

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

An IP address expression matching certain IP addresses within a given range of IP addresses.

" + }, + "RuleIpOperator":{ + "type":"string", + "enum":[ + "CIDR_MATCHES", + "NOT_CIDR_MATCHES" + ] + }, + "RuleIpStringValue":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^(([0-9]|.|/)*)$" + }, + "RuleIpToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"RuleIpEmailAttribute", + "documentation":"

The attribute of the email to evaluate.

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

The IP address to evaluate for this condition.

", + "union":true + }, + "RuleIpValueList":{ + "type":"list", + "member":{"shape":"RuleIpStringValue"}, + "max":10, + "min":1 + }, + "RuleName":{ + "type":"string", + "max":32, + "min":1, + "pattern":"^[a-zA-Z0-9_.-]+$" + }, + "RuleNumberEmailAttribute":{ + "type":"string", + "enum":["MESSAGE_SIZE"] + }, + "RuleNumberExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Value" + ], + "members":{ + "Evaluate":{ + "shape":"RuleNumberToEvaluate", + "documentation":"

The number to evaluate in a numeric condition expression.

" + }, + "Operator":{ + "shape":"RuleNumberOperator", + "documentation":"

The operator for a numeric condition expression.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The value to evaluate in a numeric condition expression.

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

A number expression to match numeric conditions with integers from the incoming email.

" + }, + "RuleNumberOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "LESS_THAN", + "GREATER_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN_OR_EQUAL" + ] + }, + "RuleNumberToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"RuleNumberEmailAttribute", + "documentation":"

An email attribute that is used as the number to evaluate.

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

The number to evaluate in a numeric condition expression.

", + "union":true + }, + "RuleSet":{ + "type":"structure", + "members":{ + "LastModificationDate":{ + "shape":"Timestamp", + "documentation":"

The last modification date of the rule set.

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

The identifier of the rule set.

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

A user-friendly name for the rule set.

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

A rule set contains a list of rules that are evaluated in order. Each rule is evaluated sequentially for each email.

" + }, + "RuleSetArn":{"type":"string"}, + "RuleSetId":{ + "type":"string", + "max":100, + "min":1 + }, + "RuleSetName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z0-9_.-]+$" + }, + "RuleSets":{ + "type":"list", + "member":{"shape":"RuleSet"} + }, + "RuleStringEmailAttribute":{ + "type":"string", + "enum":[ + "MAIL_FROM", + "HELO", + "RECIPIENT", + "SENDER", + "FROM", + "SUBJECT", + "TO", + "CC" + ] + }, + "RuleStringExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"RuleStringToEvaluate", + "documentation":"

The string to evaluate in a string condition expression.

" + }, + "Operator":{ + "shape":"RuleStringOperator", + "documentation":"

The matching operator for a string condition expression.

" + }, + "Values":{ + "shape":"RuleStringList", + "documentation":"

The string(s) to be evaluated in a string condition expression. For all operators, except for NOT_EQUALS, if multiple values are given, the values are processed as an OR. That is, if any of the values match the email's string using the given operator, the condition is deemed to match. However, for NOT_EQUALS, the condition is only deemed to match if none of the given strings match the email's string.

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

A string expression is evaluated against strings or substrings of the email.

" + }, + "RuleStringList":{ + "type":"list", + "member":{"shape":"RuleStringValue"}, + "max":10, + "min":1 + }, + "RuleStringOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS" + ] + }, + "RuleStringToEvaluate":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"RuleStringEmailAttribute", + "documentation":"

The email attribute to evaluate in a string condition expression.

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

The string to evaluate in a string condition expression.

", + "union":true + }, + "RuleStringValue":{ + "type":"string", + "max":4096, + "min":1 + }, + "RuleVerdict":{ + "type":"string", + "enum":[ + "PASS", + "FAIL", + "GRAY", + "PROCESSING_FAILED" + ] + }, + "RuleVerdictAttribute":{ + "type":"string", + "enum":[ + "SPF", + "DKIM" + ] + }, + "RuleVerdictExpression":{ + "type":"structure", + "required":[ + "Evaluate", + "Operator", + "Values" + ], + "members":{ + "Evaluate":{ + "shape":"RuleVerdictToEvaluate", + "documentation":"

The verdict to evaluate in a verdict condition expression.

" + }, + "Operator":{ + "shape":"RuleVerdictOperator", + "documentation":"

The matching operator for a verdict condition expression.

" + }, + "Values":{ + "shape":"RuleVerdictValueList", + "documentation":"

The values to match with the email's verdict using the given operator. For the EQUALS operator, if multiple values are given, the condition is deemed to match if any of the given verdicts match that of the email. For the NOT_EQUALS operator, if multiple values are given, the condition is deemed to match of none of the given verdicts match the verdict of the email.

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

A verdict expression is evaluated against verdicts of the email.

" + }, + "RuleVerdictOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS" + ] + }, + "RuleVerdictToEvaluate":{ + "type":"structure", + "members":{ + "Analysis":{ + "shape":"Analysis", + "documentation":"

The Add On ARN and its returned value to evaluate in a verdict condition expression.

" + }, + "Attribute":{ + "shape":"RuleVerdictAttribute", + "documentation":"

The email verdict attribute to evaluate in a string verdict expression.

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

The verdict to evaluate in a verdict condition expression.

", + "union":true + }, + "RuleVerdictValueList":{ + "type":"list", + "member":{"shape":"RuleVerdict"}, + "max":10, + "min":1 + }, + "Rules":{ + "type":"list", + "member":{"shape":"Rule"}, + "max":40, + "min":0 + }, + "S3Action":{ + "type":"structure", + "required":[ + "RoleArn", + "S3Bucket" + ], + "members":{ + "ActionFailurePolicy":{ + "shape":"ActionFailurePolicy", + "documentation":"

A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the specified the bucket has been deleted.

" + }, + "RoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM Role to use while writing to S3. This role must have access to the s3:PutObject, kms:Encrypt, and kms:GenerateDataKey APIs for the given bucket.

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

The bucket name of the S3 bucket to write to.

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

The S3 prefix to use for the write to the s3 bucket.

" + }, + "S3SseKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The KMS Key ID to use to encrypt the message in S3.

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

Writes the MIME content of the email to an S3 bucket.

" + }, + "S3Bucket":{ + "type":"string", + "max":62, + "min":1, + "pattern":"^[a-zA-Z0-9.-]+$" + }, + "S3ExportDestinationConfiguration":{ + "type":"structure", + "members":{ + "S3Location":{ + "shape":"S3Location", + "documentation":"

The S3 location to deliver the exported email data.

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

The configuration for exporting email data to an Amazon S3 bucket.

" + }, + "S3Location":{ + "type":"string", + "pattern":"^s3://[a-zA-Z0-9.-]{3,63}(/[a-zA-Z0-9!_.*'()/-]*)*$" + }, + "S3Prefix":{ + "type":"string", + "max":62, + "min":1, + "pattern":"^[a-zA-Z0-9!_.*'()/-]+$" + }, + "S3PresignedURL":{"type":"string"}, + "SearchId":{ + "type":"string", + "max":64, + "min":1 + }, + "SearchMaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":0 + }, + "SearchState":{ + "type":"string", + "enum":[ + "QUEUED", + "RUNNING", + "COMPLETED", + "FAILED", + "CANCELLED" + ] + }, + "SearchStatus":{ + "type":"structure", + "members":{ + "CompletionTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the search completed (if finished).

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

An error message if the search failed.

" + }, + "State":{ + "shape":"SearchState", + "documentation":"

The current state of the search job.

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

The timestamp of when the search was submitted.

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

The current status of an archive search job.

" + }, + "SearchSummary":{ + "type":"structure", + "members":{ + "SearchId":{ + "shape":"SearchId", + "documentation":"

The unique identifier of the search job.

" + }, + "Status":{ + "shape":"SearchStatus", + "documentation":"

The current status of the search job.

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

Summary details of an archive search job.

" + }, + "SearchSummaryList":{ + "type":"list", + "member":{"shape":"SearchSummary"} + }, + "SecretArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-us-gov):secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=,.@-]+$" + }, + "SendAction":{ + "type":"structure", + "required":["RoleArn"], + "members":{ + "ActionFailurePolicy":{ + "shape":"ActionFailurePolicy", + "documentation":"

A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the caller does not have the permissions to call the sendRawEmail API.

" + }, + "RoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the role to use for this action. This role must have access to the ses:SendRawEmail API.

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

Sends the email to the internet using the ses:SendRawEmail API.

" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Occurs when an operation exceeds a predefined service quota or limit.

", + "exception":true + }, + "SmtpPassword":{ + "type":"string", + "max":64, + "min":8, + "pattern":"^[A-Za-z0-9!@#$%^&*()_+\\-=\\[\\]{}|.,?]+$", + "sensitive":true + }, + "StartArchiveExportRequest":{ + "type":"structure", + "required":[ + "ArchiveId", + "ExportDestinationConfiguration", + "FromTimestamp", + "ToTimestamp" + ], + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive to export emails from.

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

Details on where to deliver the exported email data.

" + }, + "Filters":{ + "shape":"ArchiveFilters", + "documentation":"

Criteria to filter which emails are included in the export.

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

The start of the timestamp range to include emails from.

" + }, + "MaxResults":{ + "shape":"ExportMaxResults", + "documentation":"

The maximum number of email items to include in the export.

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

The end of the timestamp range to include emails from.

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

The request to initiate an export of emails from an archive.

" + }, + "StartArchiveExportResponse":{ + "type":"structure", + "members":{ + "ExportId":{ + "shape":"ExportId", + "documentation":"

The unique identifier for the initiated export job.

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

The response from initiating an archive export.

" + }, + "StartArchiveSearchRequest":{ + "type":"structure", + "required":[ + "ArchiveId", + "FromTimestamp", + "MaxResults", + "ToTimestamp" + ], + "members":{ + "ArchiveId":{ + "shape":"ArchiveId", + "documentation":"

The identifier of the archive to search emails in.

" + }, + "Filters":{ + "shape":"ArchiveFilters", + "documentation":"

Criteria to filter which emails are included in the search results.

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

The start timestamp of the range to search emails from.

" + }, + "MaxResults":{ + "shape":"SearchMaxResults", + "documentation":"

The maximum number of search results to return.

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

The end timestamp of the range to search emails from.

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

The request to initiate a search across emails in an archive.

" + }, + "StartArchiveSearchResponse":{ + "type":"structure", + "members":{ + "SearchId":{ + "shape":"SearchId", + "documentation":"

The unique identifier for the initiated search job.

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

The response from initiating an archive search.

" + }, + "StopArchiveExportRequest":{ + "type":"structure", + "required":["ExportId"], + "members":{ + "ExportId":{ + "shape":"ExportId", + "documentation":"

The identifier of the export job to stop.

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

The request to stop an in-progress archive export job.

" + }, + "StopArchiveExportResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response indicating if the request to stop the export job succeeded.

On success, returns an HTTP 200 status code. On failure, returns an error message.

" + }, + "StopArchiveSearchRequest":{ + "type":"structure", + "required":["SearchId"], + "members":{ + "SearchId":{ + "shape":"SearchId", + "documentation":"

The identifier of the search job to stop.

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

The request to stop an in-progress archive search job.

" + }, + "StopArchiveSearchResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response indicating if the request to stop the search job succeeded.

On success, returns an HTTP 200 status code. On failure, returns an error message.

" + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "StringValueList":{ + "type":"list", + "member":{"shape":"String"}, + "max":10, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The key of the key-value tag.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The value of the key-value tag.

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

A key-value pair (the value is optional), that you can define and assign to Amazon Web Services resources.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9/_\\+=\\.:@\\-]+$", + "sensitive":true + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"TaggableResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource that you want to tag.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags used to organize, track, or control access for the resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^[a-zA-Z0-9/_\\+=\\.:@\\-]*$", + "sensitive":true + }, + "TaggableResourceArn":{ + "type":"string", + "max":1011, + "min":20, + "pattern":"^arn:aws(|-cn|-us-gov):ses:[a-z0-9-]{1,20}:[0-9]{12}:(mailmanager-|addon-).+$" + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Occurs when a service's request rate limit is exceeded, resulting in throttling of further requests.

", + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "TrafficPolicy":{ + "type":"structure", + "required":[ + "DefaultAction", + "TrafficPolicyId", + "TrafficPolicyName" + ], + "members":{ + "DefaultAction":{ + "shape":"AcceptAction", + "documentation":"

Default action instructs the traffic policy to either Allow or Deny (block) messages that fall outside of (or not addressed by) the conditions of your policy statements

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

The identifier of the traffic policy resource.

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

A user-friendly name of the traffic policy resource.

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

The structure of a traffic policy resource which is a container for policy statements.

" + }, + "TrafficPolicyArn":{"type":"string"}, + "TrafficPolicyId":{ + "type":"string", + "max":100, + "min":1 + }, + "TrafficPolicyList":{ + "type":"list", + "member":{"shape":"TrafficPolicy"} + }, + "TrafficPolicyName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^[A-Za-z0-9_\\-]+$" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"TaggableResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource that you want to untag.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The keys of the key-value pairs for the tag or tags you want to remove from the specified resource.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateArchiveRequest":{ + "type":"structure", + "required":["ArchiveId"], + "members":{ + "ArchiveId":{ + "shape":"ArchiveIdString", + "documentation":"

The identifier of the archive to update.

" + }, + "ArchiveName":{ + "shape":"ArchiveNameString", + "documentation":"

A new, unique name for the archive.

" + }, + "Retention":{ + "shape":"ArchiveRetention", + "documentation":"

A new retention period for emails in the archive.

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

The request to update properties of an existing email archive.

" + }, + "UpdateArchiveResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response indicating if the archive update succeeded or failed.

On success, returns an HTTP 200 status code. On failure, returns an error message.

" + }, + "UpdateIngressPointRequest":{ + "type":"structure", + "required":["IngressPointId"], + "members":{ + "IngressPointConfiguration":{ + "shape":"IngressPointConfiguration", + "documentation":"

If you choose an Authenticated ingress endpoint, you must configure either an SMTP password or a secret ARN.

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

The identifier for the ingress endpoint you want to update.

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

A user friendly name for the ingress endpoint resource.

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

The identifier of an existing rule set that you attach to an ingress endpoint resource.

" + }, + "StatusToUpdate":{ + "shape":"IngressPointStatusToUpdate", + "documentation":"

The update status of an ingress endpoint.

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

The identifier of an existing traffic policy that you attach to an ingress endpoint resource.

" + } + } + }, + "UpdateIngressPointResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateRelayRequest":{ + "type":"structure", + "required":["RelayId"], + "members":{ + "Authentication":{ + "shape":"RelayAuthentication", + "documentation":"

Authentication for the relay destination server—specify the secretARN where the SMTP credentials are stored.

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

The unique relay identifier.

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

The name of the relay resource.

" + }, + "ServerName":{ + "shape":"RelayServerName", + "documentation":"

The destination relay server address.

" + }, + "ServerPort":{ + "shape":"RelayServerPort", + "documentation":"

The destination relay server port.

" + } + } + }, + "UpdateRelayResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateRuleSetRequest":{ + "type":"structure", + "required":["RuleSetId"], + "members":{ + "RuleSetId":{ + "shape":"RuleSetId", + "documentation":"

The identifier of a rule set you want to update.

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

A user-friendly name for the rule set resource.

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

A new set of rules to replace the current rules of the rule set—these rules will override all the rules of the rule set.

" + } + } + }, + "UpdateRuleSetResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateTrafficPolicyRequest":{ + "type":"structure", + "required":["TrafficPolicyId"], + "members":{ + "DefaultAction":{ + "shape":"AcceptAction", + "documentation":"

Default action instructs the traffic policy to either Allow or Deny (block) messages that fall outside of (or not addressed by) the conditions of your policy statements

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

The maximum message size in bytes of email which is allowed in by this traffic policy—anything larger will be blocked.

" + }, + "PolicyStatements":{ + "shape":"PolicyStatementList", + "documentation":"

The list of conditions to be updated for filtering email traffic.

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

The identifier of the traffic policy that you want to update.

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

A user-friendly name for the traffic policy resource.

" + } + } + }, + "UpdateTrafficPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The request validation has failed. For details, see the accompanying error message.

", + "exception":true + } + }, + "documentation":"

AWS SES Mail Manager API

AWS SES Mail Manager API contains operations and data types that comprise the Mail Manager feature of Amazon Simple Email Service.

Mail Manager is a set of Amazon SES email gateway features designed to help you strengthen your organization's email infrastructure, simplify email workflow management, and streamline email compliance control. To learn more, see the Mail Manager chapter in the Amazon SES Developer Guide.

" +}