Module Smaws_Client_MailManager.Types

type nonrec vpc_endpoint_id = string
type nonrec error_message = string
type nonrec validation_exception = {
  1. message : error_message option;
}

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

type nonrec update_traffic_policy_response = unit
type nonrec traffic_policy_id = string
type nonrec traffic_policy_name = string
type nonrec ingress_string_email_attribute =
  1. | RECIPIENT
type nonrec analyzer_arn = string
type nonrec result_field = string
type nonrec ingress_analysis = {
  1. result_field : result_field;
    (*

    The returned value from an Add On.

    *)
  2. analyzer : analyzer_arn;
    (*

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

    *)
}

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.

type nonrec ingress_string_to_evaluate =
  1. | Analysis of ingress_analysis
    (*

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

    *)
  2. | Attribute of ingress_string_email_attribute
    (*

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

    *)

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

type nonrec ingress_string_operator =
  1. | CONTAINS
  2. | ENDS_WITH
  3. | STARTS_WITH
  4. | NOT_EQUALS
  5. | EQUALS
type nonrec string_list = Smaws_Lib.Smithy_api.Types.string_ list
type nonrec ingress_string_expression = {
  1. values : string_list;
    (*

    The right hand side argument of a string condition expression.

    *)
  2. operator : ingress_string_operator;
    (*

    The matching operator for a string condition expression.

    *)
  3. evaluate : ingress_string_to_evaluate;
    (*

    The left hand side argument of a string condition expression.

    *)
}

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

type nonrec ingress_ipv4_attribute =
  1. | SENDER_IP
type nonrec ingress_ip_to_evaluate =
  1. | Attribute of ingress_ipv4_attribute
    (*

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

    *)

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

type nonrec ingress_ip_operator =
  1. | NOT_CIDR_MATCHES
  2. | CIDR_MATCHES
type nonrec ipv4_cidr = string
type nonrec ipv4_cidrs = ipv4_cidr list
type nonrec ingress_ipv4_expression = {
  1. values : ipv4_cidrs;
    (*

    The right hand side argument of an IP condition expression.

    *)
  2. operator : ingress_ip_operator;
    (*

    The matching operator for an IP condition expression.

    *)
  3. evaluate : ingress_ip_to_evaluate;
    (*

    The left hand side argument of an IP condition expression.

    *)
}

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

type nonrec ingress_ipv6_attribute =
  1. | SENDER_IPV6
type nonrec ingress_ipv6_to_evaluate =
  1. | Attribute of ingress_ipv6_attribute
    (*

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

    *)

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

type nonrec ipv6_cidr = string
type nonrec ipv6_cidrs = ipv6_cidr list
type nonrec ingress_ipv6_expression = {
  1. values : ipv6_cidrs;
    (*

    The right hand side argument of an IPv6 condition expression.

    *)
  2. operator : ingress_ip_operator;
    (*

    The matching operator for an IPv6 condition expression.

    *)
  3. evaluate : ingress_ipv6_to_evaluate;
    (*

    The left hand side argument of an IPv6 condition expression.

    *)
}

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

type nonrec ingress_tls_attribute =
  1. | TLS_PROTOCOL
type nonrec ingress_tls_protocol_to_evaluate =
  1. | Attribute of ingress_tls_attribute
    (*

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

    *)

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

type nonrec ingress_tls_protocol_operator =
  1. | IS
  2. | MINIMUM_TLS_VERSION
type nonrec ingress_tls_protocol_attribute =
  1. | TLS1_3
  2. | TLS1_2
type nonrec ingress_tls_protocol_expression = {
  1. value : ingress_tls_protocol_attribute;
    (*

    The right hand side argument of a TLS condition expression.

    *)
  2. operator : ingress_tls_protocol_operator;
    (*

    The matching operator for a TLS condition expression.

    *)
  3. evaluate : ingress_tls_protocol_to_evaluate;
    (*

    The left hand side argument of a TLS condition expression.

    *)
}

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

type nonrec ingress_address_list_email_attribute =
  1. | RECIPIENT
type nonrec address_list_arn = string
type nonrec ingress_address_list_arn_list = address_list_arn list
type nonrec ingress_is_in_address_list = {
  1. address_lists : ingress_address_list_arn_list;
    (*

    The address lists that will be used for evaluation.

    *)
  2. attribute : ingress_address_list_email_attribute;
    (*

    The email attribute that needs to be evaluated against the address list.

    *)
}

The address lists and the address list attribute value that is evaluated in a policy statement's conditional expression to either deny or block the incoming email.

type nonrec ingress_boolean_to_evaluate =
  1. | IsInAddressList of ingress_is_in_address_list
    (*

    The structure type for a boolean condition that provides the address lists to evaluate incoming traffic on.

    *)
  2. | Analysis of ingress_analysis
    (*

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

    *)

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

type nonrec ingress_boolean_operator =
  1. | IS_FALSE
  2. | IS_TRUE
type nonrec ingress_boolean_expression = {
  1. operator : ingress_boolean_operator;
    (*

    The matching operator for a boolean condition expression.

    *)
  2. evaluate : ingress_boolean_to_evaluate;
    (*

    The operand on which to perform a boolean condition operation.

    *)
}

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

type nonrec policy_condition =
  1. | BooleanExpression of ingress_boolean_expression
    (*

    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'.

    *)
  2. | TlsExpression of ingress_tls_protocol_expression
    (*

    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'.

    *)
  3. | Ipv6Expression of ingress_ipv6_expression
    (*

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

    *)
  4. | IpExpression of ingress_ipv4_expression
    (*

    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'.

    *)
  5. | StringExpression of ingress_string_expression
    (*

    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'.

    *)

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

type nonrec policy_conditions = policy_condition list
type nonrec accept_action =
  1. | DENY
  2. | ALLOW
type nonrec policy_statement = {
  1. action : accept_action;
    (*

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

    *)
  2. conditions : policy_conditions;
    (*

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

    *)
}

The structure containing traffic policy conditions and actions.

type nonrec policy_statement_list = policy_statement list
type nonrec max_message_size_bytes = int
type nonrec update_traffic_policy_request = {
  1. max_message_size_bytes : max_message_size_bytes option;
    (*

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

    *)
  2. default_action : accept_action option;
    (*

    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

    *)
  3. policy_statements : policy_statement_list option;
    (*

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

    *)
  4. traffic_policy_name : traffic_policy_name option;
    (*

    A user-friendly name for the traffic policy resource.

    *)
  5. traffic_policy_id : traffic_policy_id;
    (*

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

    *)
}
type nonrec resource_not_found_exception = {
  1. message : error_message option;
}

Occurs when a requested resource is not found.

type nonrec conflict_exception = {
  1. message : error_message option;
}

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

type nonrec update_rule_set_response = unit
type nonrec rule_set_id = string
type nonrec rule_set_name = string
type nonrec rule_name = string
type nonrec rule_boolean_email_attribute =
  1. | TLS_WRAPPED
  2. | TLS
  3. | READ_RECEIPT_REQUESTED
type nonrec analysis = {
  1. result_field : result_field;
    (*

    The returned value from an Add On.

    *)
  2. analyzer : analyzer_arn;
    (*

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

    *)
}

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.

type nonrec rule_address_list_email_attribute =
  1. | CC
  2. | TO
  3. | FROM
  4. | SENDER
  5. | MAIL_FROM
  6. | RECIPIENT
type nonrec rule_address_list_arn_list = address_list_arn list
type nonrec rule_is_in_address_list = {
  1. address_lists : rule_address_list_arn_list;
    (*

    The address lists that will be used for evaluation.

    *)
  2. attribute : rule_address_list_email_attribute;
    (*

    The email attribute that needs to be evaluated against the address list.

    *)
}

The structure type for a boolean condition that provides the address lists and address list attribute to evaluate.

type nonrec rule_boolean_to_evaluate =
  1. | IsInAddressList of rule_is_in_address_list
    (*

    The structure representing the address lists and address list attribute that will be used in evaluation of boolean expression.

    *)
  2. | Analysis of analysis
    (*

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

    *)
  3. | Attribute of rule_boolean_email_attribute
    (*

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

    *)

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

type nonrec rule_boolean_operator =
  1. | IS_FALSE
  2. | IS_TRUE
type nonrec rule_boolean_expression = {
  1. operator : rule_boolean_operator;
    (*

    The matching operator for a boolean condition expression.

    *)
  2. evaluate : rule_boolean_to_evaluate;
    (*

    The operand on which to perform a boolean condition operation.

    *)
}

A boolean expression to be used in a rule condition.

type nonrec rule_string_email_attribute =
  1. | CC
  2. | TO
  3. | SUBJECT
  4. | FROM
  5. | SENDER
  6. | RECIPIENT
  7. | HELO
  8. | MAIL_FROM
type nonrec mime_header_attribute = string
type nonrec rule_client_certificate_attribute =
  1. | SERIAL_NUMBER
  2. | SAN_REGISTERED_ID
  3. | SAN_IP_ADDRESS
  4. | SAN_UNIFORM_RESOURCE_IDENTIFIER
  5. | SAN_DIRECTORY_NAME
  6. | SAN_DNS_NAME
  7. | SAN_RFC822_NAME
  8. | CN

The client certificate attribute to evaluate in a rule condition. These attributes are extracted from the client certificate presented during mutual TLS authentication.

type nonrec rule_string_to_evaluate =
  1. | ClientCertificateAttribute of rule_client_certificate_attribute
    (*

    The client certificate attribute to evaluate in a string condition expression.

    *)
  2. | Analysis of analysis
    (*

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

    *)
  3. | MimeHeaderAttribute of mime_header_attribute
    (*

    The email MIME X-Header attribute to evaluate in a string condition expression.

    *)
  4. | Attribute of rule_string_email_attribute
    (*

    The email attribute to evaluate in a string condition expression.

    *)

The string to evaluate in a string condition expression.

type nonrec rule_string_operator =
  1. | CONTAINS
  2. | ENDS_WITH
  3. | STARTS_WITH
  4. | NOT_EQUALS
  5. | EQUALS
type nonrec rule_string_value = string
type nonrec rule_string_list = rule_string_value list
type nonrec rule_string_expression = {
  1. values : rule_string_list;
    (*

    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.

    *)
  2. operator : rule_string_operator;
    (*

    The matching operator for a string condition expression.

    *)
  3. evaluate : rule_string_to_evaluate;
    (*

    The string to evaluate in a string condition expression.

    *)
}

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

type nonrec rule_number_email_attribute =
  1. | MESSAGE_SIZE
type nonrec rule_number_to_evaluate =
  1. | Attribute of rule_number_email_attribute
    (*

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

    *)

The number to evaluate in a numeric condition expression.

type nonrec rule_number_operator =
  1. | GREATER_THAN_OR_EQUAL
  2. | LESS_THAN_OR_EQUAL
  3. | GREATER_THAN
  4. | LESS_THAN
  5. | NOT_EQUALS
  6. | EQUALS
type nonrec rule_number_expression = {
  1. value : Smaws_Lib.Smithy_api.Types.double;
    (*

    The value to evaluate in a numeric condition expression.

    *)
  2. operator : rule_number_operator;
    (*

    The operator for a numeric condition expression.

    *)
  3. evaluate : rule_number_to_evaluate;
    (*

    The number to evaluate in a numeric condition expression.

    *)
}

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

type nonrec rule_ip_email_attribute =
  1. | SOURCE_IP
type nonrec rule_ip_to_evaluate =
  1. | Attribute of rule_ip_email_attribute
    (*

    The attribute of the email to evaluate.

    *)

The IP address to evaluate for this condition.

type nonrec rule_ip_operator =
  1. | NOT_CIDR_MATCHES
  2. | CIDR_MATCHES
type nonrec rule_ip_string_value = string
type nonrec rule_ip_value_list = rule_ip_string_value list
type nonrec rule_ip_expression = {
  1. values : rule_ip_value_list;
    (*

    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.

    *)
  2. operator : rule_ip_operator;
    (*

    The operator to evaluate the IP address.

    *)
  3. evaluate : rule_ip_to_evaluate;
    (*

    The IP address to evaluate in this condition.

    *)
}

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

type nonrec rule_verdict_attribute =
  1. | DKIM
  2. | SPF
type nonrec rule_verdict_to_evaluate =
  1. | Analysis of analysis
    (*

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

    *)
  2. | Attribute of rule_verdict_attribute
    (*

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

    *)

The verdict to evaluate in a verdict condition expression.

type nonrec rule_verdict_operator =
  1. | NOT_EQUALS
  2. | EQUALS
type nonrec rule_verdict =
  1. | PROCESSING_FAILED
  2. | GRAY
  3. | FAIL
  4. | PASS
type nonrec rule_verdict_value_list = rule_verdict list
type nonrec rule_verdict_expression = {
  1. values : rule_verdict_value_list;
    (*

    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.

    *)
  2. operator : rule_verdict_operator;
    (*

    The matching operator for a verdict condition expression.

    *)
  3. evaluate : rule_verdict_to_evaluate;
    (*

    The verdict to evaluate in a verdict condition expression.

    *)
}

A verdict expression is evaluated against verdicts of the email.

type nonrec rule_dmarc_operator =
  1. | NOT_EQUALS
  2. | EQUALS
type nonrec rule_dmarc_policy =
  1. | REJECT
  2. | QUARANTINE
  3. | NONE
type nonrec rule_dmarc_value_list = rule_dmarc_policy list
type nonrec rule_dmarc_expression = {
  1. values : rule_dmarc_value_list;
    (*

    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.

    *)
  2. operator : rule_dmarc_operator;
    (*

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

    *)
}

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

type nonrec rule_condition =
  1. | DmarcExpression of rule_dmarc_expression
    (*

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

    *)
  2. | VerdictExpression of rule_verdict_expression
    (*

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

    *)
  3. | IpExpression of rule_ip_expression
    (*

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

    *)
  4. | NumberExpression of rule_number_expression
    (*

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

    *)
  5. | StringExpression of rule_string_expression
    (*

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

    *)
  6. | BooleanExpression of rule_boolean_expression
    (*

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

    *)

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

type nonrec rule_conditions = rule_condition list
type nonrec drop_action = unit
type nonrec action_failure_policy =
  1. | DROP
  2. | CONTINUE
type nonrec id_or_arn = string
type nonrec mail_from =
  1. | PRESERVE
  2. | REPLACE
type nonrec relay_action = {
  1. mail_from : mail_from option;
    (*

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

    *)
  2. relay : id_or_arn;
    (*

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

    *)
  3. action_failure_policy : action_failure_policy option;
    (*

    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.

    *)
}

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

type nonrec name_or_arn = string
type nonrec archive_action = {
  1. target_archive : name_or_arn;
    (*

    The identifier of the archive to send the email to.

    *)
  2. action_failure_policy : action_failure_policy option;
    (*

    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.

    *)
}

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

type nonrec iam_role_arn = string
type nonrec s3_bucket = string
type nonrec s3_prefix = string
type nonrec kms_key_id = string
type nonrec s3_action = {
  1. s3_sse_kms_key_id : kms_key_id option;
    (*

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

    *)
  2. s3_prefix : s3_prefix option;
    (*

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

    *)
  3. s3_bucket : s3_bucket;
    (*

    The bucket name of the S3 bucket to write to.

    *)
  4. role_arn : iam_role_arn;
    (*

    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.

    *)
  5. action_failure_policy : action_failure_policy option;
    (*

    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.

    *)
}

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

type nonrec send_action = {
  1. role_arn : iam_role_arn;
    (*

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

    *)
  2. action_failure_policy : action_failure_policy option;
    (*

    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.

    *)
}

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

type nonrec header_name = string
type nonrec header_value = string
type nonrec add_header_action = {
  1. header_value : header_value;
    (*

    The value of the header to add to the email.

    *)
  2. header_name : header_name;
    (*

    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.

    *)
}

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

type nonrec email_address = string
type nonrec recipients = email_address list
type nonrec replace_recipient_action = {
  1. replace_with : recipients option;
    (*

    This action specifies the replacement recipient email addresses to insert.

    *)
}

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.

type nonrec deliver_to_mailbox_action = {
  1. role_arn : iam_role_arn;
    (*

    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.

    *)
  2. mailbox_arn : name_or_arn;
    (*

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

    *)
  3. action_failure_policy : action_failure_policy option;
    (*

    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.

    *)
}

This action to delivers an email to a mailbox.

type nonrec q_business_application_id = string
type nonrec q_business_index_id = string
type nonrec deliver_to_q_business_action = {
  1. role_arn : iam_role_arn;
    (*

    The Amazon Resource Name (ARN) of the IAM Role to use while delivering to Amazon Q Business. This role must have access to the qbusiness:BatchPutDocument API for the given application and index.

    *)
  2. index_id : q_business_index_id;
    (*

    The identifier of the knowledge base index within the Amazon Q Business application where the email content will be stored and indexed.

    *)
  3. application_id : q_business_application_id;
    (*

    The unique identifier of the Amazon Q Business application instance where the email content will be delivered.

    *)
  4. action_failure_policy : action_failure_policy option;
    (*

    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 application has been deleted or the role lacks necessary permissions to call the qbusiness:BatchPutDocument API.

    *)
}

The action to deliver incoming emails to an Amazon Q Business application for indexing.

type nonrec sns_topic_arn = string
type nonrec sns_notification_encoding =
  1. | BASE64
  2. | UTF_8
type nonrec sns_notification_payload_type =
  1. | CONTENT
  2. | HEADERS
type nonrec sns_action = {
  1. payload_type : sns_notification_payload_type option;
    (*

    The expected payload type within the Amazon SNS notification. CONTENT attempts to publish the full email content with 20KB of headers content. HEADERS extracts up to 100KB of header content to include in the notification, email content will not be included to the notification. The default value is CONTENT.

    *)
  2. encoding : sns_notification_encoding option;
    (*

    The encoding to use for the email within the Amazon SNS notification. The default value is UTF-8. Use BASE64 if you need to preserve all special characters, especially when the original message uses a different encoding format.

    *)
  3. role_arn : iam_role_arn;
    (*

    The Amazon Resource Name (ARN) of the IAM Role to use while writing to Amazon SNS. This role must have access to the sns:Publish API for the given topic.

    *)
  4. topic_arn : sns_topic_arn;
    (*

    The Amazon Resource Name (ARN) of the Amazon SNS Topic to which notification for the email received will be published.

    *)
  5. action_failure_policy : action_failure_policy option;
    (*

    A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, specified SNS topic has been deleted or the role lacks necessary permissions to call the sns:Publish API.

    *)
}

The action to publish the email content to an Amazon SNS topic. When executed, this action will send the email as a notification to the specified SNS topic.

type nonrec status_code = string
type nonrec smtp_reply_code = string
type nonrec diagnostic_message = string
type nonrec bounce_message = string
type nonrec bounce_action = {
  1. message : bounce_message option;
    (*

    The human-readable text to include in the bounce message.

    *)
  2. diagnostic_message : diagnostic_message;
    (*

    The diagnostic message included in the Diagnostic-Code header of the bounce.

    *)
  3. smtp_reply_code : smtp_reply_code;
    (*

    The SMTP reply code for the bounce, as defined by RFC 5321.

    *)
  4. status_code : status_code;
    (*

    The enhanced status code for the bounce, in the format of x.y.z (e.g. 5.1.1).

    *)
  5. sender : email_address;
    (*

    The sender email address of the bounce message.

    *)
  6. role_arn : iam_role_arn;
    (*

    The Amazon Resource Name (ARN) of the IAM role to use to send the bounce message.

    *)
  7. action_failure_policy : action_failure_policy option;
    (*

    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 SendBounce API.

    *)
}

The action to send a bounce response for the email. When executed, this action generates a non-delivery report (bounce) back to the sender.

type nonrec lambda_function_arn = string
type nonrec lambda_invocation_type =
  1. | REQUEST_RESPONSE
  2. | EVENT
type nonrec lambda_retry_time_minutes = int
type nonrec invoke_lambda_action = {
  1. retry_time_minutes : lambda_retry_time_minutes option;
    (*

    The maximum time in minutes that the email processing can be retried if the Lambda invocation fails. The maximum value is 2160 minutes (36 hours).

    *)
  2. role_arn : iam_role_arn;
    (*

    The Amazon Resource Name (ARN) of the IAM role to use to invoke the Lambda function.

    *)
  3. invocation_type : lambda_invocation_type;
    (*

    The invocation type of the Lambda function. Use EVENT for asynchronous invocation or REQUEST_RESPONSE for synchronous invocation.

    *)
  4. function_arn : lambda_function_arn;
    (*

    The Amazon Resource Name (ARN) of the Lambda function to invoke.

    *)
  5. action_failure_policy : action_failure_policy option;
    (*

    A policy that states what to do in the case of failure. The action will fail if there are configuration errors. For example, the Amazon Web Services Lambda function no longer exists.

    *)
}

The action to invoke an Amazon Web Services Lambda function for processing the email.

type nonrec rule_action =
  1. | InvokeLambda of invoke_lambda_action
    (*

    This action invokes an Amazon Web Services Lambda function to process the email.

    *)
  2. | Bounce of bounce_action
    (*

    This action sends a bounce response for the email.

    *)
  3. | PublishToSns of sns_action
    (*

    This action publishes the email content to an Amazon SNS topic.

    *)
  4. | DeliverToQBusiness of deliver_to_q_business_action
    (*

    This action delivers an email to an Amazon Q Business application for ingestion into its knowledge base.

    *)
  5. | DeliverToMailbox of deliver_to_mailbox_action
    (*

    This action delivers an email to a WorkMail mailbox.

    *)
  6. | ReplaceRecipient of replace_recipient_action
    (*

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

    *)
  7. | AddHeader of add_header_action
    (*

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

    *)
  8. | Send of send_action
    (*

    This action sends the email to the internet.

    *)
  9. | WriteToS3 of s3_action
    (*

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

    *)
  10. | Archive of archive_action
    (*

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

    *)
  11. | Relay of relay_action
    (*

    This action relays the email to another SMTP server.

    *)
  12. | Drop of drop_action
    (*

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

    *)

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

type nonrec rule_actions = rule_action list
type nonrec rule = {
  1. actions : rule_actions;
    (*

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

    *)
  2. unless : rule_conditions option;
    (*

    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.

    *)
  3. conditions : rule_conditions option;
    (*

    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"

    *)
  4. name : rule_name option;
    (*

    The user-friendly name of the rule.

    *)
}

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".

type nonrec rules = rule list
type nonrec update_rule_set_request = {
  1. rules : rules option;
    (*

    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.

    *)
  2. rule_set_name : rule_set_name option;
    (*

    A user-friendly name for the rule set resource.

    *)
  3. rule_set_id : rule_set_id;
    (*

    The identifier of a rule set you want to update.

    *)
}
type nonrec update_relay_response = unit
type nonrec relay_id = string
type nonrec relay_name = string
type nonrec relay_server_name = string
type nonrec relay_server_port = int
type nonrec secret_arn = string
type nonrec no_authentication = unit
type nonrec relay_authentication =
  1. | NoAuthentication of no_authentication
    (*

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

    *)
  2. | SecretArn of secret_arn
    (*

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

    *)

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.

type nonrec update_relay_request = {
  1. authentication : relay_authentication option;
    (*

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

    *)
  2. server_port : relay_server_port option;
    (*

    The destination relay server port.

    *)
  3. server_name : relay_server_name option;
    (*

    The destination relay server address.

    *)
  4. relay_name : relay_name option;
    (*

    The name of the relay resource.

    *)
  5. relay_id : relay_id;
    (*

    The unique relay identifier.

    *)
}
type nonrec update_ingress_point_response = unit
type nonrec ingress_point_id = string
type nonrec ingress_point_name = string
type nonrec ingress_point_status_to_update =
  1. | CLOSED
  2. | ACTIVE
type nonrec smtp_password = string
type nonrec ca_content = string
type nonrec crl_content = string
type nonrec kms_key_arn = string
type nonrec trust_store = {
  1. kms_key_arn : kms_key_arn option;
    (*

    The Amazon Resource Name (ARN) of the KMS key used to encrypt the trust store contents.

    *)
  2. crl_content : crl_content option;
    (*

    The PEM-encoded certificate revocation lists (CRLs) for the trust store. There can be one CRL per certificate authority (CA) in the trust store.

    *)
  3. ca_content : ca_content;
    (*

    The PEM-encoded certificate authority (CA) certificates bundle for the trust store.

    *)
}

The trust store used for mutual TLS authentication. It contains the certificate authority (CA) certificates and optional certificate revocation list (CRL).

type nonrec tls_auth_configuration = {
  1. trust_store : trust_store option;
    (*

    The trust store configuration for mutual TLS authentication.

    *)
}

The mutual TLS authentication configuration for an ingress endpoint.

type nonrec ingress_point_configuration =
  1. | TlsAuthConfiguration of tls_auth_configuration
    (*

    The mutual TLS authentication configuration of the ingress endpoint resource.

    *)
  2. | SecretArn of secret_arn
    (*

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

    *)
  3. | SmtpPassword of smtp_password
    (*

    The password of the ingress endpoint resource.

    *)

The configuration of the ingress endpoint resource.

type nonrec tls_policy =
  1. | FIPS
  2. | OPTIONAL
  3. | REQUIRED
type nonrec update_ingress_point_request = {
  1. tls_policy : tls_policy option;
    (*

    The Transport Layer Security (TLS) policy for the ingress point. Valid values are REQUIRED, OPTIONAL. Only ingress endpoints using REQUIRED or OPTIONAL as TlsPolicy can be updated.

    *)
  2. ingress_point_configuration : ingress_point_configuration option;
    (*

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

    *)
  3. traffic_policy_id : traffic_policy_id option;
    (*

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

    *)
  4. rule_set_id : rule_set_id option;
    (*

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

    *)
  5. status_to_update : ingress_point_status_to_update option;
    (*

    The update status of an ingress endpoint.

    *)
  6. ingress_point_name : ingress_point_name option;
    (*

    A user friendly name for the ingress endpoint resource.

    *)
  7. ingress_point_id : ingress_point_id;
    (*

    The identifier for the ingress endpoint you want to update.

    *)
}
type nonrec update_archive_response = unit
type nonrec archive_id_string = string
type nonrec archive_name_string = string
type nonrec retention_period =
  1. | PERMANENT
  2. | TEN_YEARS
  3. | NINE_YEARS
  4. | EIGHT_YEARS
  5. | SEVEN_YEARS
  6. | SIX_YEARS
  7. | FIVE_YEARS
  8. | FOUR_YEARS
  9. | THREE_YEARS
  10. | THIRTY_MONTHS
  11. | TWO_YEARS
  12. | EIGHTEEN_MONTHS
  13. | ONE_YEAR
  14. | NINE_MONTHS
  15. | SIX_MONTHS
  16. | THREE_MONTHS
type nonrec archive_retention =
  1. | RetentionPeriod of retention_period
    (*

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

    *)

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

type nonrec update_archive_request = {
  1. retention : archive_retention option;
    (*

    A new retention period for emails in the archive.

    *)
  2. archive_name : archive_name_string option;
    (*

    A new, unique name for the archive.

    *)
  3. archive_id : archive_id_string;
    (*

    The identifier of the archive to update.

    *)
}

The request to update properties of an existing email archive.

type nonrec throttling_exception = {
  1. message : error_message option;
}

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

type nonrec service_quota_exceeded_exception = {
  1. message : error_message option;
}

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

type nonrec access_denied_exception = {
  1. message : error_message option;
}

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

type nonrec untag_resource_response = unit
type nonrec taggable_resource_arn = string
type nonrec tag_key = string
type nonrec tag_key_list = tag_key list
type nonrec untag_resource_request = {
  1. tag_keys : tag_key_list;
    (*

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

    *)
  2. resource_arn : taggable_resource_arn;
    (*

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

    *)
}
type nonrec trust_store_response_option =
  1. | INCLUDE
  2. | EXCLUDE

Specifies whether to include trust store contents in the GetIngressPoint response.

type nonrec traffic_policy_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec traffic_policy = {
  1. default_action : accept_action;
    (*

    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

    *)
  2. traffic_policy_id : traffic_policy_id;
    (*

    The identifier of the traffic policy resource.

    *)
  3. traffic_policy_name : traffic_policy_name;
    (*

    A user-friendly name of the traffic policy resource.

    *)
}

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

type nonrec traffic_policy_list = traffic_policy list
type nonrec traffic_policy_arn = string
type nonrec tag_value = string
type nonrec tag_resource_response = unit
type nonrec tag = {
  1. value : tag_value;
    (*

    The value of the key-value tag.

    *)
  2. key : tag_key;
    (*

    The key of the key-value tag.

    *)
}

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

type nonrec tag_list = tag list
type nonrec tag_resource_request = {
  1. tags : tag_list;
    (*

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

    *)
  2. resource_arn : taggable_resource_arn;
    (*

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

    *)
}
type nonrec string_value = string
type nonrec string_value_list = string_value list
type nonrec stop_archive_search_response = unit
type nonrec search_id = string
type nonrec stop_archive_search_request = {
  1. search_id : search_id;
    (*

    The identifier of the search job to stop.

    *)
}

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

type nonrec stop_archive_export_response = unit
type nonrec export_id = string
type nonrec stop_archive_export_request = {
  1. export_id : export_id;
    (*

    The identifier of the export job to stop.

    *)
}

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

type nonrec stop_address_list_import_job_response = unit
type nonrec job_id = string
type nonrec stop_address_list_import_job_request = {
  1. job_id : job_id;
    (*

    The identifier of the import job that needs to be stopped.

    *)
}
type nonrec start_archive_search_response = {
  1. search_id : search_id option;
    (*

    The unique identifier for the initiated search job.

    *)
}

The response from initiating an archive search.

type nonrec archive_id = string
type nonrec archive_string_email_attribute =
  1. | ENVELOPE_FROM
  2. | ENVELOPE_TO
  3. | SUBJECT
  4. | CC
  5. | FROM
  6. | TO
type nonrec archive_string_to_evaluate =
  1. | Attribute of archive_string_email_attribute
    (*

    The name of the email attribute to evaluate.

    *)

Specifies the email attribute to evaluate in a string expression.

type nonrec archive_string_operator =
  1. | CONTAINS
type nonrec archive_string_expression = {
  1. values : string_value_list;
    (*

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

    *)
  2. operator : archive_string_operator;
    (*

    The operator to use when evaluating the string values.

    *)
  3. evaluate : archive_string_to_evaluate;
    (*

    The attribute of the email to evaluate.

    *)
}

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

type nonrec archive_boolean_email_attribute =
  1. | HAS_ATTACHMENTS
type nonrec archive_boolean_to_evaluate =
  1. | Attribute of archive_boolean_email_attribute
    (*

    The name of the email attribute to evaluate.

    *)

The attribute to evaluate in a boolean expression.

type nonrec archive_boolean_operator =
  1. | IS_FALSE
  2. | IS_TRUE
type nonrec archive_boolean_expression = {
  1. operator : archive_boolean_operator;
    (*

    The boolean operator to use for evaluation.

    *)
  2. evaluate : archive_boolean_to_evaluate;
    (*

    The email attribute value to evaluate.

    *)
}

A boolean expression to evaluate email attribute values.

type nonrec archive_filter_condition =
  1. | BooleanExpression of archive_boolean_expression
    (*

    A boolean expression to evaluate against email attributes.

    *)
  2. | StringExpression of archive_string_expression
    (*

    A string expression to evaluate against email attributes.

    *)

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

type nonrec archive_filter_conditions = archive_filter_condition list
type nonrec archive_filters = {
  1. unless : archive_filter_conditions option;
    (*

    The filter conditions for emails to exclude.

    *)
  2. include_ : archive_filter_conditions option;
    (*

    The filter conditions for emails to include.

    *)
}

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

type nonrec search_max_results = int
type nonrec start_archive_search_request = {
  1. max_results : search_max_results;
    (*

    The maximum number of search results to return.

    *)
  2. to_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The end timestamp of the range to search emails from.

    *)
  3. from_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The start timestamp of the range to search emails from.

    *)
  4. filters : archive_filters option;
    (*

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

    *)
  5. archive_id : archive_id;
    (*

    The identifier of the archive to search emails in.

    *)
}

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

type nonrec start_archive_export_response = {
  1. export_id : export_id option;
    (*

    The unique identifier for the initiated export job.

    *)
}

The response from initiating an archive export.

type nonrec export_max_results = int
type nonrec s3_location = string
type nonrec s3_export_destination_configuration = {
  1. s3_location : s3_location option;
    (*

    The S3 location to deliver the exported email data.

    *)
}

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

type nonrec export_destination_configuration =
  1. | S3 of s3_export_destination_configuration
    (*

    Configuration for delivering to an Amazon S3 bucket.

    *)

The destination configuration for delivering exported email data.

type nonrec start_archive_export_request = {
  1. include_metadata : Smaws_Lib.Smithy_api.Types.boolean_ option;
    (*

    Whether to include message metadata as JSON files in the export.

    *)
  2. export_destination_configuration : export_destination_configuration;
    (*

    Details on where to deliver the exported email data.

    *)
  3. max_results : export_max_results option;
    (*

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

    *)
  4. to_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The end of the timestamp range to include emails from.

    *)
  5. from_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The start of the timestamp range to include emails from.

    *)
  6. filters : archive_filters option;
    (*

    Criteria to filter which emails are included in the export.

    *)
  7. archive_id : archive_id;
    (*

    The identifier of the archive to export emails from.

    *)
}

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

type nonrec start_address_list_import_job_response = unit
type nonrec start_address_list_import_job_request = {
  1. job_id : job_id;
    (*

    The identifier of the import job that needs to be started.

    *)
}
type nonrec sender_ip_address = string
type nonrec search_state =
  1. | CANCELLED
  2. | FAILED
  3. | COMPLETED
  4. | RUNNING
  5. | QUEUED
type nonrec search_status = {
  1. error_message : error_message option;
    (*

    An error message if the search failed.

    *)
  2. state : search_state option;
    (*

    The current state of the search job.

    *)
  3. completion_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

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

    *)
  4. submission_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the search was submitted.

    *)
}

The current status of an archive search job.

type nonrec search_summary = {
  1. status : search_status option;
    (*

    The current status of the search job.

    *)
  2. search_id : search_id option;
    (*

    The unique identifier of the search job.

    *)
}

Summary details of an archive search job.

type nonrec search_summary_list = search_summary list
type nonrec address = string
type nonrec saved_address = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the address was added to the address list.

    *)
  2. address : address;
    (*

    The email or domain that constitutes the address.

    *)
}

An address that is a member of an address list.

type nonrec saved_addresses = saved_address list
type nonrec s3_presigned_ur_l = string
type nonrec rule_set = {
  1. last_modification_date : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The last modification date of the rule set.

    *)
  2. rule_set_name : rule_set_name option;
    (*

    A user-friendly name for the rule set.

    *)
  3. rule_set_id : rule_set_id option;
    (*

    The identifier of the rule set.

    *)
}

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

type nonrec rule_sets = rule_set list
type nonrec rule_set_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec rule_set_arn = string
type nonrec archived_message_id = string
type nonrec email_received_headers_list = Smaws_Lib.Smithy_api.Types.string_ list
type nonrec envelope = {
  1. to_ : string_list option;
    (*

    All SMTP TO entries given by the host from which the email was received.

    *)
  2. from_ : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The RCPT FROM given by the host from which the email was received.

    *)
  3. helo : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The HELO used by the host from which the email was received.

    *)
}

The SMTP envelope information of the email.

type nonrec row = {
  1. source_arn : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    Specifies the archived email source, identified by either a Rule Set's ARN with an Archive action, or a Configuration Set's Archive ARN.

    *)
  2. envelope : envelope option;
    (*

    The SMTP envelope information of the email.

    *)
  3. sender_ip_address : sender_ip_address option;
    (*
    • Mail archived with Mail Manager: The IP address of the client that connects to the ingress endpoint.
    • Mail sent through a configuration set with the archiving option enabled: The IP address of the client that makes the SendEmail API call.
    *)
  4. sender_hostname : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The name of the host from which the email was received.

    *)
  5. ingress_point_id : ingress_point_id option;
    (*

    The ID of the ingress endpoint through which the email was received.

    *)
  6. x_priority : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The priority level of the email.

    *)
  7. x_original_mailer : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The original user agent that sent the email.

    *)
  8. x_mailer : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The user agent that sent the email.

    *)
  9. in_reply_to : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The email message ID this is a reply to.

    *)
  10. received_headers : email_received_headers_list option;
    (*

    The received headers from the email delivery path.

    *)
  11. has_attachments : Smaws_Lib.Smithy_api.Types.boolean_ option;
    (*

    A flag indicating if the email has attachments.

    *)
  12. message_id : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The unique message ID of the email.

    *)
  13. subject : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The subject header value of the email.

    *)
  14. cc : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The email addresses in the CC header.

    *)
  15. from_ : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The email address of the sender.

    *)
  16. to_ : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The email addresses in the To header.

    *)
  17. date : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The date the email was sent.

    *)
  18. received_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the email was received.

    *)
  19. archived_message_id : archived_message_id option;
    (*

    The unique identifier of the archived message.

    *)
}

A result row containing metadata for an archived email message.

type nonrec rows_list = row list
type nonrec relay = {
  1. last_modified_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the relay was last modified.

    *)
  2. relay_name : relay_name option;
    (*

    The unique relay name.

    *)
  3. relay_id : relay_id option;
    (*

    The unique relay identifier.

    *)
}

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

type nonrec relays = relay list
type nonrec relay_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec relay_arn = string
type nonrec register_member_to_address_list_response = unit
type nonrec address_list_id = string
type nonrec register_member_to_address_list_request = {
  1. address : address;
    (*

    The address to be added to the address list.

    *)
  2. address_list_id : address_list_id;
    (*

    The unique identifier of the address list where the address should be added.

    *)
}
type nonrec ip_type =
  1. | DUAL_STACK
  2. | IPV4
type nonrec public_network_configuration = {
  1. ip_type : ip_type;
    (*

    The IP address type for the public ingress point. Valid values are IPV4 and DUAL_STACK.

    *)
}

Specifies the network configuration for the public ingress point.

type nonrec private_network_configuration = {
  1. vpc_endpoint_id : vpc_endpoint_id;
    (*

    The identifier of the VPC endpoint to associate with this private ingress point.

    *)
}

Specifies the network configuration for the private ingress point.

type nonrec pre_signed_url = string
type nonrec pagination_token = string
type nonrec page_size = int
type nonrec network_configuration =
  1. | PrivateNetworkConfiguration of private_network_configuration
    (*

    Specifies the network configuration for the private ingress point.

    *)
  2. | PublicNetworkConfiguration of public_network_configuration
    (*

    Specifies the network configuration for the public ingress point.

    *)

The network type (IPv4-only, Dual-Stack, PrivateLink) of the ingress endpoint resource.

type nonrec metadata = {
  1. source_arn : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    Specifies the archived email source, identified by either a Rule Set's ARN with an Archive action, or a Configuration Set's Archive ARN.

    *)
  2. configuration_set : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The name of the configuration set used when sent through a configuration set with archiving enabled.

    *)
  3. sending_pool : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The name of the dedicated IP pool used when sent through a configuration set with archiving enabled.

    *)
  4. source_identity : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The identity name used to authorize the sending action when sent through a configuration set with archiving enabled.

    *)
  5. sending_method : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The name of the API call used when sent through a configuration set with archiving enabled.

    *)
  6. tls_protocol : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The TLS protocol used to communicate with the host from which the email was received.

    *)
  7. tls_cipher_suite : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The TLS cipher suite used to communicate with the host from which the email was received.

    *)
  8. sender_ip_address : sender_ip_address option;
    (*

    The IP address of the host from which the email was received.

    *)
  9. sender_hostname : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The name of the host from which the email was received.

    *)
  10. rule_set_id : rule_set_id option;
    (*

    The ID of the rule set that processed the email.

    *)
  11. traffic_policy_id : traffic_policy_id option;
    (*

    The ID of the traffic policy that was in effect when the email was received.

    *)
  12. ingress_point_id : ingress_point_id option;
    (*

    The ID of the ingress endpoint through which the email was received.

    *)
  13. timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the email was received.

    *)
}

The metadata about the email.

type nonrec message_body = {
  1. message_malformed : Smaws_Lib.Smithy_api.Types.boolean_ option;
    (*

    A flag indicating if the email was malformed.

    *)
  2. html : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The HTML body content of the message.

    *)
  3. text : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The plain text body content of the message.

    *)
}

The textual body content of an email message.

type nonrec list_tags_for_resource_response = {
  1. tags : tag_list;
    (*

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

    *)
}
type nonrec list_tags_for_resource_request = {
  1. resource_arn : taggable_resource_arn;
    (*

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

    *)
}
type nonrec list_members_of_address_list_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. addresses : saved_addresses;
    (*

    The list of addresses.

    *)
}
type nonrec address_prefix = string
type nonrec address_filter = {
  1. address_prefix : address_prefix option;
    (*

    Filter to limit the results to addresses having the provided prefix.

    *)
}

Filtering options for ListMembersOfAddressList operation.

type nonrec address_page_size = int
type nonrec list_members_of_address_list_request = {
  1. page_size : address_page_size option;
    (*

    The maximum number of address list members that are returned per call. You can use NextToken to retrieve the next page of members.

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
  3. filter : address_filter option;
    (*

    Filter to be used to limit the results.

    *)
  4. address_list_id : address_list_id;
    (*

    The unique identifier of the address list to list the addresses from.

    *)
}
type nonrec list_archive_searches_response = {
  1. next_token : pagination_token option;
    (*

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

    *)
  2. searches : search_summary_list option;
    (*

    The list of search job identifiers and statuses.

    *)
}

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

type nonrec list_archive_searches_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
  3. archive_id : archive_id;
    (*

    The identifier of the archive.

    *)
}

The request to list archive search jobs in your account.

type nonrec export_state =
  1. | CANCELLED
  2. | FAILED
  3. | COMPLETED
  4. | PROCESSING
  5. | PREPROCESSING
  6. | QUEUED
type nonrec export_status = {
  1. error_message : error_message option;
    (*

    An error message if the export job failed.

    *)
  2. state : export_state option;
    (*

    The current state of the export job.

    *)
  3. completion_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

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

    *)
  4. submission_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the export job was submitted.

    *)
}

The current status of an archive export job.

type nonrec export_summary = {
  1. status : export_status option;
    (*

    The current status of the export job.

    *)
  2. export_id : export_id option;
    (*

    The unique identifier of the export job.

    *)
}

Summary statuses of an archive export job.

type nonrec export_summary_list = export_summary list
type nonrec list_archive_exports_response = {
  1. next_token : pagination_token option;
    (*

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

    *)
  2. exports : export_summary_list option;
    (*

    The list of export job identifiers and statuses.

    *)
}

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

type nonrec list_archive_exports_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
  3. archive_id : archive_id;
    (*

    The identifier of the archive.

    *)
}

The request to list archive export jobs in your account.

type nonrec job_name = string
type nonrec import_job_status =
  1. | STOPPED
  2. | FAILED
  3. | COMPLETED
  4. | PROCESSING
  5. | CREATED
type nonrec job_items_count = int
type nonrec import_data_type =
  1. | JSON
  2. | CSV
type nonrec import_data_format = {
  1. import_data_type : import_data_type;
    (*

    The type of file that would be passed as an input for the address list import job.

    *)
}

The import data format contains the specifications of the input file that would be passed to the address list import job.

type nonrec import_job = {
  1. error : error_message option;
    (*

    The reason for failure of an import job.

    *)
  2. completed_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the import job was completed.

    *)
  3. start_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the import job was started.

    *)
  4. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the import job was created.

    *)
  5. address_list_id : address_list_id;
    (*

    The unique identifier of the address list the import job was created for.

    *)
  6. import_data_format : import_data_format;
    (*

    The format of the input for the import job.

    *)
  7. failed_items_count : job_items_count option;
    (*

    The number of addresses in the input that failed to get imported into address list.

    *)
  8. imported_items_count : job_items_count option;
    (*

    The number of addresses in the input that were successfully imported into the address list.

    *)
  9. pre_signed_url : pre_signed_url;
    (*

    The pre-signed URL target for uploading the input file.

    *)
  10. status : import_job_status;
    (*

    The status of the import job.

    *)
  11. name : job_name;
    (*

    A user-friendly name for the import job.

    *)
  12. job_id : job_id;
    (*

    The identifier of the import job.

    *)
}

Details about an import job.

type nonrec import_jobs = import_job list
type nonrec list_address_list_import_jobs_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. import_jobs : import_jobs;
    (*

    The list of import jobs.

    *)
}
type nonrec list_address_list_import_jobs_request = {
  1. page_size : page_size option;
    (*

    The maximum number of import jobs that are returned per call. You can use NextToken to retrieve the next page of jobs.

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
  3. address_list_id : address_list_id;
    (*

    The unique identifier of the address list for listing import jobs.

    *)
}
type nonrec get_member_of_address_list_response = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the address was created.

    *)
  2. address : address;
    (*

    The address retrieved from the address list.

    *)
}
type nonrec get_member_of_address_list_request = {
  1. address : address;
    (*

    The address to be retrieved from the address list.

    *)
  2. address_list_id : address_list_id;
    (*

    The unique identifier of the address list to retrieve the address from.

    *)
}
type nonrec get_archive_search_results_response = {
  1. rows : rows_list option;
    (*

    The list of email result objects matching the search criteria.

    *)
}

The response containing search results from a completed archive search.

type nonrec get_archive_search_results_request = {
  1. search_id : search_id;
    (*

    The identifier of the completed search job.

    *)
}

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

type nonrec get_archive_search_response = {
  1. status : search_status option;
    (*

    The current status of the search job.

    *)
  2. max_results : search_max_results option;
    (*

    The maximum number of search results to return.

    *)
  3. to_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The end timestamp of the range the searched emails cover.

    *)
  4. from_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The start timestamp of the range the searched emails cover.

    *)
  5. filters : archive_filters option;
    (*

    The criteria used to filter emails included in the search.

    *)
  6. archive_id : archive_id option;
    (*

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

    *)
}

The response containing details of the specified archive search job.

type nonrec get_archive_search_request = {
  1. search_id : search_id;
    (*

    The identifier of the search job to get details for.

    *)
}

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

type nonrec get_archive_message_content_response = {
  1. body : message_body option;
    (*

    The textual body content of the email message.

    *)
}

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

type nonrec get_archive_message_content_request = {
  1. archived_message_id : archived_message_id;
    (*

    The unique identifier of the archived email message.

    *)
}

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

type nonrec get_archive_message_response = {
  1. envelope : envelope option;
    (*

    The SMTP envelope information of the email.

    *)
  2. metadata : metadata option;
    (*

    The metadata about the email.

    *)
}

The response containing details about the requested archived email message.

type nonrec get_archive_message_request = {
  1. archived_message_id : archived_message_id;
    (*

    The unique identifier of the archived email message.

    *)
}

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

type nonrec get_archive_export_response = {
  1. status : export_status option;
    (*

    The current status of the export job.

    *)
  2. export_destination_configuration : export_destination_configuration option;
    (*

    Where the exported emails are being delivered.

    *)
  3. max_results : export_max_results option;
    (*

    The maximum number of email items included in the export.

    *)
  4. to_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The end of the date range the exported emails cover.

    *)
  5. from_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The start of the timestamp range the exported emails cover.

    *)
  6. filters : archive_filters option;
    (*

    The criteria used to filter emails included in the export.

    *)
  7. archive_id : archive_id option;
    (*

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

    *)
}

The response containing details of the specified archive export job.

type nonrec get_archive_export_request = {
  1. export_id : export_id;
    (*

    The identifier of the export job to get details for.

    *)
}

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

type nonrec get_address_list_import_job_response = {
  1. error : error_message option;
    (*

    The reason for failure of an import job.

    *)
  2. completed_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the import job was completed.

    *)
  3. start_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the import job was started.

    *)
  4. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the import job was created.

    *)
  5. address_list_id : address_list_id;
    (*

    The unique identifier of the address list the import job was created for.

    *)
  6. import_data_format : import_data_format;
    (*

    The format of the input for an import job.

    *)
  7. failed_items_count : job_items_count option;
    (*

    The number of input addresses that failed to be imported into the address list.

    *)
  8. imported_items_count : job_items_count option;
    (*

    The number of input addresses successfully imported into the address list.

    *)
  9. pre_signed_url : pre_signed_url;
    (*

    The pre-signed URL target for uploading the input file.

    *)
  10. status : import_job_status;
    (*

    The status of the import job.

    *)
  11. name : job_name;
    (*

    A user-friendly name for the import job.

    *)
  12. job_id : job_id;
    (*

    The identifier of the import job.

    *)
}
type nonrec get_address_list_import_job_request = {
  1. job_id : job_id;
    (*

    The identifier of the import job that needs to be retrieved.

    *)
}
type nonrec deregister_member_from_address_list_response = unit
type nonrec deregister_member_from_address_list_request = {
  1. address : address;
    (*

    The address to be removed from the address list.

    *)
  2. address_list_id : address_list_id;
    (*

    The unique identifier of the address list to remove the address from.

    *)
}
type nonrec create_address_list_import_job_response = {
  1. pre_signed_url : pre_signed_url;
    (*

    The pre-signed URL target for uploading the input file.

    *)
  2. job_id : job_id;
    (*

    The identifier of the created import job.

    *)
}
type nonrec idempotency_token = string
type nonrec create_address_list_import_job_request = {
  1. import_data_format : import_data_format;
    (*

    The format of the input for an import job.

    *)
  2. name : job_name;
    (*

    A user-friendly name for the import job.

    *)
  3. address_list_id : address_list_id;
    (*

    The unique identifier of the address list for importing addresses to.

    *)
  4. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec list_traffic_policies_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. traffic_policies : traffic_policy_list option;
    (*

    The list of traffic policies.

    *)
}
type nonrec list_traffic_policies_request = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. page_size : page_size option;
    (*

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

    *)
}
type nonrec list_rule_sets_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. rule_sets : rule_sets;
    (*

    The list of rule sets.

    *)
}
type nonrec list_rule_sets_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
}
type nonrec list_relays_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. relays : relays;
    (*

    The list of returned relays.

    *)
}
type nonrec list_relays_request = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. page_size : Smaws_Lib.Smithy_api.Types.integer option;
    (*

    The number of relays to be returned in one request.

    *)
}
type nonrec ingress_point_status =
  1. | ASSOCIATED_VPC_ENDPOINT_DOES_NOT_EXIST
  2. | FAILED
  3. | CLOSED
  4. | ACTIVE
  5. | UPDATING
  6. | DEPROVISIONING
  7. | PROVISIONING
type nonrec ingress_point_type =
  1. | MTLS
  2. | AUTH
  3. | OPEN
type nonrec ingress_point_a_record = string
type nonrec ingress_point = {
  1. a_record : ingress_point_a_record option;
    (*

    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.

    *)
  2. type_ : ingress_point_type;
    (*

    The type of ingress endpoint resource.

    *)
  3. status : ingress_point_status;
    (*

    The status of the ingress endpoint resource.

    *)
  4. ingress_point_id : ingress_point_id;
    (*

    The identifier of the ingress endpoint resource.

    *)
  5. ingress_point_name : ingress_point_name;
    (*

    A user friendly name for the ingress endpoint resource.

    *)
}

The structure of an ingress endpoint resource.

type nonrec ingress_points_list = ingress_point list
type nonrec list_ingress_points_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. ingress_points : ingress_points_list option;
    (*

    The list of ingress endpoints.

    *)
}
type nonrec list_ingress_points_request = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. page_size : page_size option;
    (*

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

    *)
}
type nonrec archive_state =
  1. | PENDING_DELETION
  2. | ACTIVE
type nonrec archive = {
  1. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the archive was last updated.

    *)
  2. archive_state : archive_state option;
    (*

    The current state of the archive:

    • ACTIVE – The archive is ready and available for use.
    • PENDING_DELETION – The archive has been marked for deletion and will be permanently deleted in 30 days. No further modifications can be made in this state.
    *)
  3. archive_name : archive_name_string option;
    (*

    The unique name assigned to the archive.

    *)
  4. archive_id : archive_id_string;
    (*

    The unique identifier of the archive.

    *)
}

An archive resource for storing and retaining emails.

type nonrec archives_list = archive list
type nonrec list_archives_response = {
  1. next_token : pagination_token option;
    (*

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

    *)
  2. archives : archives_list;
    (*

    The list of archive details.

    *)
}

The response containing a list of your email archives.

type nonrec list_archives_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
}

The request to list email archives in your account.

type nonrec address_list_name = string
type nonrec address_list = {
  1. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the address list was last updated.

    *)
  2. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The timestamp of when the address list was created.

    *)
  3. address_list_name : address_list_name;
    (*

    The user-friendly name of the address list.

    *)
  4. address_list_arn : address_list_arn;
    (*

    The Amazon Resource Name (ARN) of the address list.

    *)
  5. address_list_id : address_list_id;
    (*

    The identifier of the address list.

    *)
}

An address list contains a list of emails and domains that are used in MailManager Ingress endpoints and Rules for email management.

type nonrec address_lists = address_list list
type nonrec list_address_lists_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. address_lists : address_lists;
    (*

    The list of address lists.

    *)
}
type nonrec list_address_lists_request = {
  1. page_size : page_size option;
    (*

    The maximum number of address list resources that are returned per call. You can use NextToken to retrieve the next page of address lists.

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
}
type nonrec addon_subscription_id = string
type nonrec addon_name = string
type nonrec addon_subscription_arn = string
type nonrec addon_subscription = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the Add On subscription was created.

    *)
  2. addon_subscription_arn : addon_subscription_arn option;
    (*

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

    *)
  3. addon_name : addon_name option;
    (*

    The name of the Add On.

    *)
  4. addon_subscription_id : addon_subscription_id option;
    (*

    The unique ID of the Add On subscription.

    *)
}

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

type nonrec addon_subscriptions = addon_subscription list
type nonrec list_addon_subscriptions_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. addon_subscriptions : addon_subscriptions option;
    (*

    The list of ingress endpoints.

    *)
}
type nonrec list_addon_subscriptions_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
}
type nonrec addon_instance_id = string
type nonrec addon_instance_arn = string
type nonrec addon_instance = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the Add On instance was created.

    *)
  2. addon_instance_arn : addon_instance_arn option;
    (*

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

    *)
  3. addon_name : addon_name option;
    (*

    The name of the Add On for the instance.

    *)
  4. addon_subscription_id : addon_subscription_id option;
    (*

    The subscription ID for the instance.

    *)
  5. addon_instance_id : addon_instance_id option;
    (*

    The unique ID of the Add On instance.

    *)
}

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

type nonrec addon_instances = addon_instance list
type nonrec list_addon_instances_response = {
  1. next_token : pagination_token option;
    (*

    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.

    *)
  2. addon_instances : addon_instances option;
    (*

    The list of ingress endpoints.

    *)
}
type nonrec list_addon_instances_request = {
  1. page_size : page_size option;
    (*

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

    *)
  2. next_token : pagination_token option;
    (*

    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.

    *)
}
type nonrec ingress_point_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec ingress_point_password_configuration = {
  1. previous_smtp_password_expiry_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The previous password expiry timestamp of the ingress endpoint resource.

    *)
  2. previous_smtp_password_version : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The previous password version of the ingress endpoint resource.

    *)
  3. smtp_password_version : Smaws_Lib.Smithy_api.Types.string_ option;
    (*

    The current password expiry timestamp of the ingress endpoint resource.

    *)
}

The password configuration of the ingress endpoint resource.

type nonrec ingress_point_auth_configuration = {
  1. tls_auth_configuration : tls_auth_configuration option;
    (*

    The mutual TLS authentication configuration for the ingress endpoint resource.

    *)
  2. secret_arn : secret_arn option;
    (*

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

    *)
  3. ingress_point_password_configuration : ingress_point_password_configuration option;
    (*

    The ingress endpoint password configuration for the ingress endpoint resource.

    *)
}

The authentication configuration for the ingress endpoint resource.

type nonrec ingress_point_arn = string
type nonrec get_traffic_policy_response = {
  1. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the traffic policy was last updated.

    *)
  2. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the traffic policy was created.

    *)
  3. default_action : accept_action option;
    (*

    The default action of the traffic policy.

    *)
  4. max_message_size_bytes : max_message_size_bytes option;
    (*

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

    *)
  5. policy_statements : policy_statement_list option;
    (*

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

    *)
  6. traffic_policy_arn : traffic_policy_arn option;
    (*

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

    *)
  7. traffic_policy_id : traffic_policy_id;
    (*

    The identifier of the traffic policy resource.

    *)
  8. traffic_policy_name : traffic_policy_name;
    (*

    A user-friendly name for the traffic policy resource.

    *)
}
type nonrec get_traffic_policy_request = {
  1. traffic_policy_id : traffic_policy_id;
    (*

    The identifier of the traffic policy resource.

    *)
}
type nonrec get_rule_set_response = {
  1. rules : rules;
    (*

    The rules contained in the rule set.

    *)
  2. last_modification_date : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The date of when the rule set was last modified.

    *)
  3. created_date : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The date of when then rule set was created.

    *)
  4. rule_set_name : rule_set_name;
    (*

    A user-friendly name for the rule set resource.

    *)
  5. rule_set_arn : rule_set_arn;
    (*

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

    *)
  6. rule_set_id : rule_set_id;
    (*

    The identifier of the rule set resource.

    *)
}
type nonrec get_rule_set_request = {
  1. rule_set_id : rule_set_id;
    (*

    The identifier of an existing rule set to be retrieved.

    *)
}
type nonrec get_relay_response = {
  1. last_modified_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when relay was last updated.

    *)
  2. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the relay was created.

    *)
  3. authentication : relay_authentication option;
    (*

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

    *)
  4. server_port : relay_server_port option;
    (*

    The destination relay server port.

    *)
  5. server_name : relay_server_name option;
    (*

    The destination relay server address.

    *)
  6. relay_name : relay_name option;
    (*

    The unique name of the relay.

    *)
  7. relay_arn : relay_arn option;
    (*

    The Amazon Resource Name (ARN) of the relay.

    *)
  8. relay_id : relay_id;
    (*

    The unique relay identifier.

    *)
}
type nonrec get_relay_request = {
  1. relay_id : relay_id;
    (*

    A unique relay identifier.

    *)
}
type nonrec get_ingress_point_response = {
  1. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the ingress endpoint was last updated.

    *)
  2. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the ingress endpoint was created.

    *)
  3. tls_policy : tls_policy option;
    (*

    The selected Transport Layer Security (TLS) policy of the ingress point.

    *)
  4. network_configuration : network_configuration option;
    (*

    The network configuration for the ingress point.

    *)
  5. ingress_point_auth_configuration : ingress_point_auth_configuration option;
    (*

    The authentication configuration of the ingress endpoint resource.

    *)
  6. traffic_policy_id : traffic_policy_id option;
    (*

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

    *)
  7. rule_set_id : rule_set_id option;
    (*

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

    *)
  8. a_record : ingress_point_a_record option;
    (*

    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.

    *)
  9. type_ : ingress_point_type option;
    (*

    The type of ingress endpoint.

    *)
  10. status : ingress_point_status option;
    (*

    The status of the ingress endpoint resource.

    *)
  11. ingress_point_arn : ingress_point_arn option;
    (*

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

    *)
  12. ingress_point_name : ingress_point_name;
    (*

    A user friendly name for the ingress endpoint.

    *)
  13. ingress_point_id : ingress_point_id;
    (*

    The identifier of an ingress endpoint resource.

    *)
}
type nonrec get_ingress_point_request = {
  1. include_trust_store_contents : trust_store_response_option option;
    (*

    Whether to include the trust store contents in the response. Use INCLUDE to retrieve trust store certificate and CRL contents.

    *)
  2. ingress_point_id : ingress_point_id;
    (*

    The identifier of an ingress endpoint.

    *)
}
type nonrec archive_arn = string
type nonrec get_archive_response = {
  1. kms_key_arn : kms_key_arn option;
    (*

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

    *)
  2. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the archive was modified.

    *)
  3. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the archive was created.

    *)
  4. retention : archive_retention;
    (*

    The retention period for emails in this archive.

    *)
  5. archive_state : archive_state;
    (*

    The current state of the archive:

    • ACTIVE – The archive is ready and available for use.
    • PENDING_DELETION – The archive has been marked for deletion and will be permanently deleted in 30 days. No further modifications can be made in this state.
    *)
  6. archive_arn : archive_arn;
    (*

    The Amazon Resource Name (ARN) of the archive.

    *)
  7. archive_name : archive_name_string;
    (*

    The unique name assigned to the archive.

    *)
  8. archive_id : archive_id_string;
    (*

    The unique identifier of the archive.

    *)
}

The response containing details of the requested archive.

type nonrec get_archive_request = {
  1. archive_id : archive_id_string;
    (*

    The identifier of the archive to retrieve.

    *)
}

The request to retrieve details of an email archive.

type nonrec get_address_list_response = {
  1. last_updated_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The date of when the address list was last updated.

    *)
  2. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp;
    (*

    The date of when then address list was created.

    *)
  3. address_list_name : address_list_name;
    (*

    A user-friendly name for the address list resource.

    *)
  4. address_list_arn : address_list_arn;
    (*

    The Amazon Resource Name (ARN) of the address list resource.

    *)
  5. address_list_id : address_list_id;
    (*

    The identifier of the address list resource.

    *)
}
type nonrec get_address_list_request = {
  1. address_list_id : address_list_id;
    (*

    The identifier of an existing address list resource to be retrieved.

    *)
}
type nonrec get_addon_subscription_response = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the Add On subscription was created.

    *)
  2. addon_subscription_arn : addon_subscription_arn option;
    (*

    Amazon Resource Name (ARN) for the subscription.

    *)
  3. addon_name : addon_name option;
    (*

    The name of the Add On for the subscription.

    *)
}
type nonrec get_addon_subscription_request = {
  1. addon_subscription_id : addon_subscription_id;
    (*

    The Add On subscription ID to retrieve information for.

    *)
}
type nonrec get_addon_instance_response = {
  1. created_timestamp : Smaws_Lib.Smithy_api.Types.timestamp option;
    (*

    The timestamp of when the Add On instance was created.

    *)
  2. addon_instance_arn : addon_instance_arn option;
    (*

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

    *)
  3. addon_name : addon_name option;
    (*

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

    *)
  4. addon_subscription_id : addon_subscription_id option;
    (*

    The subscription ID associated to the instance.

    *)
}
type nonrec get_addon_instance_request = {
  1. addon_instance_id : addon_instance_id;
    (*

    The Add On instance ID to retrieve information for.

    *)
}
type nonrec delete_traffic_policy_response = unit
type nonrec delete_traffic_policy_request = {
  1. traffic_policy_id : traffic_policy_id;
    (*

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

    *)
}
type nonrec delete_rule_set_response = unit
type nonrec delete_rule_set_request = {
  1. rule_set_id : rule_set_id;
    (*

    The identifier of an existing rule set resource to delete.

    *)
}
type nonrec delete_relay_response = unit
type nonrec delete_relay_request = {
  1. relay_id : relay_id;
    (*

    The unique relay identifier.

    *)
}
type nonrec delete_ingress_point_response = unit
type nonrec delete_ingress_point_request = {
  1. ingress_point_id : ingress_point_id;
    (*

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

    *)
}
type nonrec delete_archive_response = unit
type nonrec delete_archive_request = {
  1. archive_id : archive_id_string;
    (*

    The identifier of the archive to delete.

    *)
}

The request to initiate deletion of an email archive.

type nonrec delete_address_list_response = unit
type nonrec delete_address_list_request = {
  1. address_list_id : address_list_id;
    (*

    The identifier of an existing address list resource to delete.

    *)
}
type nonrec delete_addon_subscription_response = unit
type nonrec delete_addon_subscription_request = {
  1. addon_subscription_id : addon_subscription_id;
    (*

    The Add On subscription ID to delete.

    *)
}
type nonrec delete_addon_instance_response = unit
type nonrec delete_addon_instance_request = {
  1. addon_instance_id : addon_instance_id;
    (*

    The Add On instance ID to delete.

    *)
}
type nonrec create_traffic_policy_response = {
  1. traffic_policy_id : traffic_policy_id;
    (*

    The identifier of the traffic policy resource.

    *)
}
type nonrec create_traffic_policy_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. max_message_size_bytes : max_message_size_bytes option;
    (*

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

    *)
  3. default_action : accept_action;
    (*

    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

    *)
  4. policy_statements : policy_statement_list;
    (*

    Conditional statements for filtering email traffic.

    *)
  5. traffic_policy_name : traffic_policy_name;
    (*

    A user-friendly name for the traffic policy resource.

    *)
  6. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_rule_set_response = {
  1. rule_set_id : rule_set_id;
    (*

    The identifier of the created rule set.

    *)
}
type nonrec create_rule_set_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. rules : rules;
    (*

    Conditional rules that are evaluated for determining actions on email.

    *)
  3. rule_set_name : rule_set_name;
    (*

    A user-friendly name for the rule set.

    *)
  4. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_relay_response = {
  1. relay_id : relay_id;
    (*

    A unique identifier of the created relay resource.

    *)
}
type nonrec create_relay_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. authentication : relay_authentication;
    (*

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

    *)
  3. server_port : relay_server_port;
    (*

    The destination relay server port.

    *)
  4. server_name : relay_server_name;
    (*

    The destination relay server address.

    *)
  5. relay_name : relay_name;
    (*

    The unique name of the relay resource.

    *)
  6. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_ingress_point_response = {
  1. ingress_point_id : ingress_point_id;
    (*

    The unique identifier for a previously created ingress endpoint.

    *)
}
type nonrec create_ingress_point_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. tls_policy : tls_policy option;
    (*

    The Transport Layer Security (TLS) policy for the ingress point. The FIPS value is only valid in US and Canada regions.

    *)
  3. network_configuration : network_configuration option;
    (*

    Specifies the network configuration for the ingress point. This allows you to create an IPv4-only, Dual-Stack, or PrivateLink type of ingress point. If not specified, the default network type is IPv4-only.

    *)
  4. ingress_point_configuration : ingress_point_configuration option;
    (*

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

    *)
  5. traffic_policy_id : traffic_policy_id;
    (*

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

    *)
  6. rule_set_id : rule_set_id;
    (*

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

    *)
  7. type_ : ingress_point_type;
    (*

    The type of the ingress endpoint to create.

    *)
  8. ingress_point_name : ingress_point_name;
    (*

    A user friendly name for an ingress endpoint resource.

    *)
  9. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_archive_response = {
  1. archive_id : archive_id_string;
    (*

    The unique identifier for the newly created archive.

    *)
}

The response from creating a new email archive.

type nonrec create_archive_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. kms_key_arn : kms_key_arn option;
    (*

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

    *)
  3. retention : archive_retention option;
    (*

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

    *)
  4. archive_name : archive_name_string;
    (*

    A unique name for the new archive.

    *)
  5. client_token : idempotency_token option;
    (*

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

    *)
}

The request to create a new email archive.

type nonrec create_address_list_response = {
  1. address_list_id : address_list_id;
    (*

    The identifier of the created address list.

    *)
}
type nonrec create_address_list_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. address_list_name : address_list_name;
    (*

    A user-friendly name for the address list.

    *)
  3. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_addon_subscription_response = {
  1. addon_subscription_id : addon_subscription_id;
    (*

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

    *)
}
type nonrec create_addon_subscription_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. addon_name : addon_name;
    (*

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

    *)
  3. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec create_addon_instance_response = {
  1. addon_instance_id : addon_instance_id;
    (*

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

    *)
}
type nonrec create_addon_instance_request = {
  1. tags : tag_list option;
    (*

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

    *)
  2. addon_subscription_id : addon_subscription_id;
    (*

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

    *)
  3. client_token : idempotency_token option;
    (*

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

    *)
}
type nonrec archive_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec address_list_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec addon_subscription_resource = Smaws_Lib.CoreTypes.Resource.t
type nonrec addon_instance_resource = Smaws_Lib.CoreTypes.Resource.t