Current section
Files
Jump to
Current section
Files
src/aws_ses.erl
%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc Amazon Simple Email Service
%%
%% This document contains reference information for the Amazon Simple Email
%% Service (Amazon SES) API, version 2010-12-01.
%%
%% This document is best used in conjunction with the Amazon SES Developer
%% Guide.
%%
%% For a list of Amazon SES endpoints to use in service requests, see Regions
%% and Amazon SES in the Amazon SES Developer Guide.
-module(aws_ses).
-export([clone_receipt_rule_set/2,
clone_receipt_rule_set/3,
create_configuration_set/2,
create_configuration_set/3,
create_configuration_set_event_destination/2,
create_configuration_set_event_destination/3,
create_configuration_set_tracking_options/2,
create_configuration_set_tracking_options/3,
create_custom_verification_email_template/2,
create_custom_verification_email_template/3,
create_receipt_filter/2,
create_receipt_filter/3,
create_receipt_rule/2,
create_receipt_rule/3,
create_receipt_rule_set/2,
create_receipt_rule_set/3,
create_template/2,
create_template/3,
delete_configuration_set/2,
delete_configuration_set/3,
delete_configuration_set_event_destination/2,
delete_configuration_set_event_destination/3,
delete_configuration_set_tracking_options/2,
delete_configuration_set_tracking_options/3,
delete_custom_verification_email_template/2,
delete_custom_verification_email_template/3,
delete_identity/2,
delete_identity/3,
delete_identity_policy/2,
delete_identity_policy/3,
delete_receipt_filter/2,
delete_receipt_filter/3,
delete_receipt_rule/2,
delete_receipt_rule/3,
delete_receipt_rule_set/2,
delete_receipt_rule_set/3,
delete_template/2,
delete_template/3,
delete_verified_email_address/2,
delete_verified_email_address/3,
describe_active_receipt_rule_set/2,
describe_active_receipt_rule_set/3,
describe_configuration_set/2,
describe_configuration_set/3,
describe_receipt_rule/2,
describe_receipt_rule/3,
describe_receipt_rule_set/2,
describe_receipt_rule_set/3,
get_account_sending_enabled/2,
get_account_sending_enabled/3,
get_custom_verification_email_template/2,
get_custom_verification_email_template/3,
get_identity_dkim_attributes/2,
get_identity_dkim_attributes/3,
get_identity_mail_from_domain_attributes/2,
get_identity_mail_from_domain_attributes/3,
get_identity_notification_attributes/2,
get_identity_notification_attributes/3,
get_identity_policies/2,
get_identity_policies/3,
get_identity_verification_attributes/2,
get_identity_verification_attributes/3,
get_send_quota/2,
get_send_quota/3,
get_send_statistics/2,
get_send_statistics/3,
get_template/2,
get_template/3,
list_configuration_sets/2,
list_configuration_sets/3,
list_custom_verification_email_templates/2,
list_custom_verification_email_templates/3,
list_identities/2,
list_identities/3,
list_identity_policies/2,
list_identity_policies/3,
list_receipt_filters/2,
list_receipt_filters/3,
list_receipt_rule_sets/2,
list_receipt_rule_sets/3,
list_templates/2,
list_templates/3,
list_verified_email_addresses/2,
list_verified_email_addresses/3,
put_configuration_set_delivery_options/2,
put_configuration_set_delivery_options/3,
put_identity_policy/2,
put_identity_policy/3,
reorder_receipt_rule_set/2,
reorder_receipt_rule_set/3,
send_bounce/2,
send_bounce/3,
send_bulk_templated_email/2,
send_bulk_templated_email/3,
send_custom_verification_email/2,
send_custom_verification_email/3,
send_email/2,
send_email/3,
send_raw_email/2,
send_raw_email/3,
send_templated_email/2,
send_templated_email/3,
set_active_receipt_rule_set/2,
set_active_receipt_rule_set/3,
set_identity_dkim_enabled/2,
set_identity_dkim_enabled/3,
set_identity_feedback_forwarding_enabled/2,
set_identity_feedback_forwarding_enabled/3,
set_identity_headers_in_notifications_enabled/2,
set_identity_headers_in_notifications_enabled/3,
set_identity_mail_from_domain/2,
set_identity_mail_from_domain/3,
set_identity_notification_topic/2,
set_identity_notification_topic/3,
set_receipt_rule_position/2,
set_receipt_rule_position/3,
test_render_template/2,
test_render_template/3,
update_account_sending_enabled/2,
update_account_sending_enabled/3,
update_configuration_set_event_destination/2,
update_configuration_set_event_destination/3,
update_configuration_set_reputation_metrics_enabled/2,
update_configuration_set_reputation_metrics_enabled/3,
update_configuration_set_sending_enabled/2,
update_configuration_set_sending_enabled/3,
update_configuration_set_tracking_options/2,
update_configuration_set_tracking_options/3,
update_custom_verification_email_template/2,
update_custom_verification_email_template/3,
update_receipt_rule/2,
update_receipt_rule/3,
update_template/2,
update_template/3,
verify_domain_dkim/2,
verify_domain_dkim/3,
verify_domain_identity/2,
verify_domain_identity/3,
verify_email_address/2,
verify_email_address/3,
verify_email_identity/2,
verify_email_identity/3]).
-include_lib("hackney/include/hackney_lib.hrl").
%%====================================================================
%% API
%%====================================================================
%% @doc Creates a receipt rule set by cloning an existing one.
%%
%% All receipt rules and configurations are copied to the new receipt rule
%% set and are completely independent of the source rule set.
%%
%% For information about setting up rule sets, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
clone_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
clone_receipt_rule_set(Client, Input, []).
clone_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CloneReceiptRuleSet">>, Input, Options).
%% @doc Creates a configuration set.
%%
%% Configuration sets enable you to publish email sending events. For
%% information about using configuration sets, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
create_configuration_set(Client, Input)
when is_map(Client), is_map(Input) ->
create_configuration_set(Client, Input, []).
create_configuration_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateConfigurationSet">>, Input, Options).
%% @doc Creates a configuration set event destination.
%%
%% When you create or update an event destination, you must provide one, and
%% only one, destination. The destination can be CloudWatch, Amazon Kinesis
%% Firehose, or Amazon Simple Notification Service (Amazon SNS).
%%
%% An event destination is the AWS service to which Amazon SES publishes the
%% email sending events associated with a configuration set. For information
%% about using configuration sets, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_configuration_set_event_destination(Client, Input)
when is_map(Client), is_map(Input) ->
create_configuration_set_event_destination(Client, Input, []).
create_configuration_set_event_destination(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateConfigurationSetEventDestination">>, Input, Options).
%% @doc Creates an association between a configuration set and a custom
%% domain for open and click event tracking.
%%
%% By default, images and links used for tracking open and click events are
%% hosted on domains operated by Amazon SES. You can configure a subdomain of
%% your own to handle these events. For information about using custom
%% domains, see the Amazon SES Developer Guide.
create_configuration_set_tracking_options(Client, Input)
when is_map(Client), is_map(Input) ->
create_configuration_set_tracking_options(Client, Input, []).
create_configuration_set_tracking_options(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateConfigurationSetTrackingOptions">>, Input, Options).
%% @doc Creates a new custom verification email template.
%%
%% For more information about custom verification email templates, see Using
%% Custom Verification Email Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_custom_verification_email_template(Client, Input)
when is_map(Client), is_map(Input) ->
create_custom_verification_email_template(Client, Input, []).
create_custom_verification_email_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateCustomVerificationEmailTemplate">>, Input, Options).
%% @doc Creates a new IP address filter.
%%
%% For information about setting up IP address filters, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_receipt_filter(Client, Input)
when is_map(Client), is_map(Input) ->
create_receipt_filter(Client, Input, []).
create_receipt_filter(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateReceiptFilter">>, Input, Options).
%% @doc Creates a receipt rule.
%%
%% For information about setting up receipt rules, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_receipt_rule(Client, Input)
when is_map(Client), is_map(Input) ->
create_receipt_rule(Client, Input, []).
create_receipt_rule(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateReceiptRule">>, Input, Options).
%% @doc Creates an empty receipt rule set.
%%
%% For information about setting up receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
create_receipt_rule_set(Client, Input, []).
create_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateReceiptRuleSet">>, Input, Options).
%% @doc Creates an email template.
%%
%% Email templates enable you to send personalized email to one or more
%% destinations in a single API operation. For more information, see the
%% Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
create_template(Client, Input)
when is_map(Client), is_map(Input) ->
create_template(Client, Input, []).
create_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateTemplate">>, Input, Options).
%% @doc Deletes a configuration set.
%%
%% Configuration sets enable you to publish email sending events. For
%% information about using configuration sets, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
delete_configuration_set(Client, Input)
when is_map(Client), is_map(Input) ->
delete_configuration_set(Client, Input, []).
delete_configuration_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteConfigurationSet">>, Input, Options).
%% @doc Deletes a configuration set event destination.
%%
%% Configuration set event destinations are associated with configuration
%% sets, which enable you to publish email sending events. For information
%% about using configuration sets, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
delete_configuration_set_event_destination(Client, Input)
when is_map(Client), is_map(Input) ->
delete_configuration_set_event_destination(Client, Input, []).
delete_configuration_set_event_destination(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteConfigurationSetEventDestination">>, Input, Options).
%% @doc Deletes an association between a configuration set and a custom
%% domain for open and click event tracking.
%%
%% By default, images and links used for tracking open and click events are
%% hosted on domains operated by Amazon SES. You can configure a subdomain of
%% your own to handle these events. For information about using custom
%% domains, see the Amazon SES Developer Guide.
%%
%% Deleting this kind of association will result in emails sent using the
%% specified configuration set to capture open and click events using the
%% standard, Amazon SES-operated domains.
delete_configuration_set_tracking_options(Client, Input)
when is_map(Client), is_map(Input) ->
delete_configuration_set_tracking_options(Client, Input, []).
delete_configuration_set_tracking_options(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteConfigurationSetTrackingOptions">>, Input, Options).
%% @doc Deletes an existing custom verification email template.
%%
%% For more information about custom verification email templates, see Using
%% Custom Verification Email Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
delete_custom_verification_email_template(Client, Input)
when is_map(Client), is_map(Input) ->
delete_custom_verification_email_template(Client, Input, []).
delete_custom_verification_email_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteCustomVerificationEmailTemplate">>, Input, Options).
%% @doc Deletes the specified identity (an email address or a domain) from
%% the list of verified identities.
%%
%% You can execute this operation no more than once per second.
delete_identity(Client, Input)
when is_map(Client), is_map(Input) ->
delete_identity(Client, Input, []).
delete_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteIdentity">>, Input, Options).
%% @doc Deletes the specified sending authorization policy for the given
%% identity (an email address or a domain).
%%
%% This API returns successfully even if a policy with the specified name
%% does not exist.
%%
%% This API is for the identity owner only. If you have not verified the
%% identity, this API will return an error.
%%
%% Sending authorization is a feature that enables an identity owner to
%% authorize other senders to use its identities. For information about using
%% sending authorization, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
delete_identity_policy(Client, Input)
when is_map(Client), is_map(Input) ->
delete_identity_policy(Client, Input, []).
delete_identity_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteIdentityPolicy">>, Input, Options).
%% @doc Deletes the specified IP address filter.
%%
%% For information about managing IP address filters, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
delete_receipt_filter(Client, Input)
when is_map(Client), is_map(Input) ->
delete_receipt_filter(Client, Input, []).
delete_receipt_filter(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteReceiptFilter">>, Input, Options).
%% @doc Deletes the specified receipt rule.
%%
%% For information about managing receipt rules, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
delete_receipt_rule(Client, Input)
when is_map(Client), is_map(Input) ->
delete_receipt_rule(Client, Input, []).
delete_receipt_rule(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteReceiptRule">>, Input, Options).
%% @doc Deletes the specified receipt rule set and all of the receipt rules
%% it contains.
%%
%% The currently active rule set cannot be deleted.
%%
%% For information about managing receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
delete_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
delete_receipt_rule_set(Client, Input, []).
delete_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteReceiptRuleSet">>, Input, Options).
%% @doc Deletes an email template.
%%
%% You can execute this operation no more than once per second.
delete_template(Client, Input)
when is_map(Client), is_map(Input) ->
delete_template(Client, Input, []).
delete_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteTemplate">>, Input, Options).
%% @doc Deprecated.
%%
%% Use the `DeleteIdentity' operation to delete email addresses and domains.
delete_verified_email_address(Client, Input)
when is_map(Client), is_map(Input) ->
delete_verified_email_address(Client, Input, []).
delete_verified_email_address(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteVerifiedEmailAddress">>, Input, Options).
%% @doc Returns the metadata and receipt rules for the receipt rule set that
%% is currently active.
%%
%% For information about setting up receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
describe_active_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
describe_active_receipt_rule_set(Client, Input, []).
describe_active_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeActiveReceiptRuleSet">>, Input, Options).
%% @doc Returns the details of the specified configuration set.
%%
%% For information about using configuration sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
describe_configuration_set(Client, Input)
when is_map(Client), is_map(Input) ->
describe_configuration_set(Client, Input, []).
describe_configuration_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeConfigurationSet">>, Input, Options).
%% @doc Returns the details of the specified receipt rule.
%%
%% For information about setting up receipt rules, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
describe_receipt_rule(Client, Input)
when is_map(Client), is_map(Input) ->
describe_receipt_rule(Client, Input, []).
describe_receipt_rule(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeReceiptRule">>, Input, Options).
%% @doc Returns the details of the specified receipt rule set.
%%
%% For information about managing receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
describe_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
describe_receipt_rule_set(Client, Input, []).
describe_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeReceiptRuleSet">>, Input, Options).
%% @doc Returns the email sending status of the Amazon SES account for the
%% current region.
%%
%% You can execute this operation no more than once per second.
get_account_sending_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
get_account_sending_enabled(Client, Input, []).
get_account_sending_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetAccountSendingEnabled">>, Input, Options).
%% @doc Returns the custom email verification template for the template name
%% you specify.
%%
%% For more information about custom verification email templates, see Using
%% Custom Verification Email Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
get_custom_verification_email_template(Client, Input)
when is_map(Client), is_map(Input) ->
get_custom_verification_email_template(Client, Input, []).
get_custom_verification_email_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetCustomVerificationEmailTemplate">>, Input, Options).
%% @doc Returns the current status of Easy DKIM signing for an entity.
%%
%% For domain name identities, this operation also returns the DKIM tokens
%% that are required for Easy DKIM signing, and whether Amazon SES has
%% successfully verified that these tokens have been published.
%%
%% This operation takes a list of identities as input and returns the
%% following information for each:
%%
%% <ul> <li> Whether Easy DKIM signing is enabled or disabled.
%%
%% </li> <li> A set of DKIM tokens that represent the identity. If the
%% identity is an email address, the tokens represent the domain of that
%% address.
%%
%% </li> <li> Whether Amazon SES has successfully verified the DKIM tokens
%% published in the domain's DNS. This information is only returned for
%% domain name identities, not for email addresses.
%%
%% </li> </ul> This operation is throttled at one request per second and can
%% only get DKIM attributes for up to 100 identities at a time.
%%
%% For more information about creating DNS records using DKIM tokens, go to
%% the Amazon SES Developer Guide.
get_identity_dkim_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_dkim_attributes(Client, Input, []).
get_identity_dkim_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityDkimAttributes">>, Input, Options).
%% @doc Returns the custom MAIL FROM attributes for a list of identities
%% (email addresses : domains).
%%
%% This operation is throttled at one request per second and can only get
%% custom MAIL FROM attributes for up to 100 identities at a time.
get_identity_mail_from_domain_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_mail_from_domain_attributes(Client, Input, []).
get_identity_mail_from_domain_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityMailFromDomainAttributes">>, Input, Options).
%% @doc Given a list of verified identities (email addresses and/or domains),
%% returns a structure describing identity notification attributes.
%%
%% This operation is throttled at one request per second and can only get
%% notification attributes for up to 100 identities at a time.
%%
%% For more information about using notifications with Amazon SES, see the
%% Amazon SES Developer Guide.
get_identity_notification_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_notification_attributes(Client, Input, []).
get_identity_notification_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityNotificationAttributes">>, Input, Options).
%% @doc Returns the requested sending authorization policies for the given
%% identity (an email address or a domain).
%%
%% The policies are returned as a map of policy names to policy contents. You
%% can retrieve a maximum of 20 policies at a time.
%%
%% This API is for the identity owner only. If you have not verified the
%% identity, this API will return an error.
%%
%% Sending authorization is a feature that enables an identity owner to
%% authorize other senders to use its identities. For information about using
%% sending authorization, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
get_identity_policies(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_policies(Client, Input, []).
get_identity_policies(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityPolicies">>, Input, Options).
%% @doc Given a list of identities (email addresses and/or domains), returns
%% the verification status and (for domain identities) the verification token
%% for each identity.
%%
%% The verification status of an email address is "Pending" until the email
%% address owner clicks the link within the verification email that Amazon
%% SES sent to that address. If the email address owner clicks the link
%% within 24 hours, the verification status of the email address changes to
%% "Success". If the link is not clicked within 24 hours, the verification
%% status changes to "Failed." In that case, if you still want to verify the
%% email address, you must restart the verification process from the
%% beginning.
%%
%% For domain identities, the domain's verification status is "Pending" as
%% Amazon SES searches for the required TXT record in the DNS settings of the
%% domain. When Amazon SES detects the record, the domain's verification
%% status changes to "Success". If Amazon SES is unable to detect the record
%% within 72 hours, the domain's verification status changes to "Failed." In
%% that case, if you still want to verify the domain, you must restart the
%% verification process from the beginning.
%%
%% This operation is throttled at one request per second and can only get
%% verification attributes for up to 100 identities at a time.
get_identity_verification_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_verification_attributes(Client, Input, []).
get_identity_verification_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityVerificationAttributes">>, Input, Options).
%% @doc Provides the sending limits for the Amazon SES account.
%%
%% You can execute this operation no more than once per second.
get_send_quota(Client, Input)
when is_map(Client), is_map(Input) ->
get_send_quota(Client, Input, []).
get_send_quota(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetSendQuota">>, Input, Options).
%% @doc Provides sending statistics for the current AWS Region.
%%
%% The result is a list of data points, representing the last two weeks of
%% sending activity. Each data point in the list contains statistics for a
%% 15-minute period of time.
%%
%% You can execute this operation no more than once per second.
get_send_statistics(Client, Input)
when is_map(Client), is_map(Input) ->
get_send_statistics(Client, Input, []).
get_send_statistics(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetSendStatistics">>, Input, Options).
%% @doc Displays the template object (which includes the Subject line, HTML
%% part and text part) for the template you specify.
%%
%% You can execute this operation no more than once per second.
get_template(Client, Input)
when is_map(Client), is_map(Input) ->
get_template(Client, Input, []).
get_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetTemplate">>, Input, Options).
%% @doc Provides a list of the configuration sets associated with your Amazon
%% SES account in the current AWS Region.
%%
%% For information about using configuration sets, see Monitoring Your Amazon
%% SES Sending Activity in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second. This
%% operation will return up to 1,000 configuration sets each time it is run.
%% If your Amazon SES account has more than 1,000 configuration sets, this
%% operation will also return a NextToken element. You can then execute the
%% `ListConfigurationSets' operation again, passing the `NextToken' parameter
%% and the value of the NextToken element to retrieve additional results.
list_configuration_sets(Client, Input)
when is_map(Client), is_map(Input) ->
list_configuration_sets(Client, Input, []).
list_configuration_sets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListConfigurationSets">>, Input, Options).
%% @doc Lists the existing custom verification email templates for your
%% account in the current AWS Region.
%%
%% For more information about custom verification email templates, see Using
%% Custom Verification Email Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
list_custom_verification_email_templates(Client, Input)
when is_map(Client), is_map(Input) ->
list_custom_verification_email_templates(Client, Input, []).
list_custom_verification_email_templates(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListCustomVerificationEmailTemplates">>, Input, Options).
%% @doc Returns a list containing all of the identities (email addresses and
%% domains) for your AWS account in the current AWS Region, regardless of
%% verification status.
%%
%% You can execute this operation no more than once per second.
list_identities(Client, Input)
when is_map(Client), is_map(Input) ->
list_identities(Client, Input, []).
list_identities(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListIdentities">>, Input, Options).
%% @doc Returns a list of sending authorization policies that are attached to
%% the given identity (an email address or a domain).
%%
%% This API returns only a list. If you want the actual policy content, you
%% can use `GetIdentityPolicies'.
%%
%% This API is for the identity owner only. If you have not verified the
%% identity, this API will return an error.
%%
%% Sending authorization is a feature that enables an identity owner to
%% authorize other senders to use its identities. For information about using
%% sending authorization, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
list_identity_policies(Client, Input)
when is_map(Client), is_map(Input) ->
list_identity_policies(Client, Input, []).
list_identity_policies(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListIdentityPolicies">>, Input, Options).
%% @doc Lists the IP address filters associated with your AWS account in the
%% current AWS Region.
%%
%% For information about managing IP address filters, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
list_receipt_filters(Client, Input)
when is_map(Client), is_map(Input) ->
list_receipt_filters(Client, Input, []).
list_receipt_filters(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListReceiptFilters">>, Input, Options).
%% @doc Lists the receipt rule sets that exist under your AWS account in the
%% current AWS Region.
%%
%% If there are additional receipt rule sets to be retrieved, you will
%% receive a `NextToken' that you can provide to the next call to
%% `ListReceiptRuleSets' to retrieve the additional entries.
%%
%% For information about managing receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
list_receipt_rule_sets(Client, Input)
when is_map(Client), is_map(Input) ->
list_receipt_rule_sets(Client, Input, []).
list_receipt_rule_sets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListReceiptRuleSets">>, Input, Options).
%% @doc Lists the email templates present in your Amazon SES account in the
%% current AWS Region.
%%
%% You can execute this operation no more than once per second.
list_templates(Client, Input)
when is_map(Client), is_map(Input) ->
list_templates(Client, Input, []).
list_templates(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTemplates">>, Input, Options).
%% @doc Deprecated.
%%
%% Use the `ListIdentities' operation to list the email addresses and domains
%% associated with your account.
list_verified_email_addresses(Client, Input)
when is_map(Client), is_map(Input) ->
list_verified_email_addresses(Client, Input, []).
list_verified_email_addresses(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListVerifiedEmailAddresses">>, Input, Options).
%% @doc Adds or updates the delivery options for a configuration set.
put_configuration_set_delivery_options(Client, Input)
when is_map(Client), is_map(Input) ->
put_configuration_set_delivery_options(Client, Input, []).
put_configuration_set_delivery_options(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutConfigurationSetDeliveryOptions">>, Input, Options).
%% @doc Adds or updates a sending authorization policy for the specified
%% identity (an email address or a domain).
%%
%% This API is for the identity owner only. If you have not verified the
%% identity, this API will return an error.
%%
%% Sending authorization is a feature that enables an identity owner to
%% authorize other senders to use its identities. For information about using
%% sending authorization, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
put_identity_policy(Client, Input)
when is_map(Client), is_map(Input) ->
put_identity_policy(Client, Input, []).
put_identity_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutIdentityPolicy">>, Input, Options).
%% @doc Reorders the receipt rules within a receipt rule set.
%%
%% All of the rules in the rule set must be represented in this request. That
%% is, this API will return an error if the reorder request doesn't
%% explicitly position all of the rules.
%%
%% For information about managing receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
reorder_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
reorder_receipt_rule_set(Client, Input, []).
reorder_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ReorderReceiptRuleSet">>, Input, Options).
%% @doc Generates and sends a bounce message to the sender of an email you
%% received through Amazon SES.
%%
%% You can only use this API on an email up to 24 hours after you receive it.
%%
%% You cannot use this API to send generic bounces for mail that was not
%% received by Amazon SES.
%%
%% For information about receiving email through Amazon SES, see the Amazon
%% SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
send_bounce(Client, Input)
when is_map(Client), is_map(Input) ->
send_bounce(Client, Input, []).
send_bounce(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendBounce">>, Input, Options).
%% @doc Composes an email message to multiple destinations.
%%
%% The message body is created using an email template.
%%
%% In order to send email using the `SendBulkTemplatedEmail' operation, your
%% call to the API must meet the following requirements:
%%
%% <ul> <li> The call must refer to an existing email template. You can
%% create email templates using the `CreateTemplate' operation.
%%
%% </li> <li> The message must be sent from a verified email address or
%% domain.
%%
%% </li> <li> If your account is still in the Amazon SES sandbox, you may
%% only send to verified addresses or domains, or to email addresses
%% associated with the Amazon SES Mailbox Simulator. For more information,
%% see Verifying Email Addresses and Domains in the Amazon SES Developer
%% Guide.
%%
%% </li> <li> The maximum message size is 10 MB.
%%
%% </li> <li> Each `Destination' parameter must include at least one
%% recipient email address. The recipient address can be a To: address, a CC:
%% address, or a BCC: address. If a recipient email address is invalid (that
%% is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain),
%% the entire message will be rejected, even if the message contains other
%% recipients that are valid.
%%
%% </li> <li> The message may not include more than 50 recipients, across the
%% To:, CC: and BCC: fields. If you need to send an email message to a larger
%% audience, you can divide your recipient list into groups of 50 or fewer,
%% and then call the `SendBulkTemplatedEmail' operation several times to send
%% the message to each group.
%%
%% </li> <li> The number of destinations you can contact in a single call to
%% the API may be limited by your account's maximum sending rate.
%%
%% </li> </ul>
send_bulk_templated_email(Client, Input)
when is_map(Client), is_map(Input) ->
send_bulk_templated_email(Client, Input, []).
send_bulk_templated_email(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendBulkTemplatedEmail">>, Input, Options).
%% @doc Adds an email address to the list of identities for your Amazon SES
%% account in the current AWS Region and attempts to verify it.
%%
%% As a result of executing this operation, a customized verification email
%% is sent to the specified address.
%%
%% To use this operation, you must first create a custom verification email
%% template. For more information about creating and using custom
%% verification email templates, see Using Custom Verification Email
%% Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
send_custom_verification_email(Client, Input)
when is_map(Client), is_map(Input) ->
send_custom_verification_email(Client, Input, []).
send_custom_verification_email(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendCustomVerificationEmail">>, Input, Options).
%% @doc Composes an email message and immediately queues it for sending.
%%
%% In order to send email using the `SendEmail' operation, your message must
%% meet the following requirements:
%%
%% <ul> <li> The message must be sent from a verified email address or
%% domain. If you attempt to send email using a non-verified address or
%% domain, the operation will result in an "Email address not verified"
%% error.
%%
%% </li> <li> If your account is still in the Amazon SES sandbox, you may
%% only send to verified addresses or domains, or to email addresses
%% associated with the Amazon SES Mailbox Simulator. For more information,
%% see Verifying Email Addresses and Domains in the Amazon SES Developer
%% Guide.
%%
%% </li> <li> The maximum message size is 10 MB.
%%
%% </li> <li> The message must include at least one recipient email address.
%% The recipient address can be a To: address, a CC: address, or a BCC:
%% address. If a recipient email address is invalid (that is, it is not in
%% the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire message
%% will be rejected, even if the message contains other recipients that are
%% valid.
%%
%% </li> <li> The message may not include more than 50 recipients, across the
%% To:, CC: and BCC: fields. If you need to send an email message to a larger
%% audience, you can divide your recipient list into groups of 50 or fewer,
%% and then call the `SendEmail' operation several times to send the message
%% to each group.
%%
%% </li> </ul> For every message that you send, the total number of
%% recipients (including each recipient in the To:, CC: and BCC: fields) is
%% counted against the maximum number of emails you can send in a 24-hour
%% period (your sending quota). For more information about sending quotas in
%% Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES
%% Developer Guide.
send_email(Client, Input)
when is_map(Client), is_map(Input) ->
send_email(Client, Input, []).
send_email(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendEmail">>, Input, Options).
%% @doc Composes an email message and immediately queues it for sending.
%%
%% This operation is more flexible than the `SendEmail' API operation. When
%% you use the `SendRawEmail' operation, you can specify the headers of the
%% message as well as its content. This flexibility is useful, for example,
%% when you want to send a multipart MIME email (such a message that contains
%% both a text and an HTML version). You can also use this operation to send
%% messages that include attachments.
%%
%% The `SendRawEmail' operation has the following requirements:
%%
%% <ul> <li> You can only send email from verified email addresses or
%% domains. If you try to send email from an address that isn't verified, the
%% operation results in an "Email address not verified" error.
%%
%% </li> <li> If your account is still in the Amazon SES sandbox, you can
%% only send email to other verified addresses in your account, or to
%% addresses that are associated with the Amazon SES mailbox simulator.
%%
%% </li> <li> The maximum message size, including attachments, is 10 MB.
%%
%% </li> <li> Each message has to include at least one recipient address. A
%% recipient address includes any address on the To:, CC:, or BCC: lines.
%%
%% </li> <li> If you send a single message to more than one recipient
%% address, and one of the recipient addresses isn't in a valid format (that
%% is, it's not in the format UserName@[SubDomain.]Domain.TopLevelDomain),
%% Amazon SES rejects the entire message, even if the other addresses are
%% valid.
%%
%% </li> <li> Each message can include up to 50 recipient addresses across
%% the To:, CC:, or BCC: lines. If you need to send a single message to more
%% than 50 recipients, you have to split the list of recipient addresses into
%% groups of less than 50 recipients, and send separate messages to each
%% group.
%%
%% </li> <li> Amazon SES allows you to specify 8-bit
%% Content-Transfer-Encoding for MIME message parts. However, if Amazon SES
%% has to modify the contents of your message (for example, if you use open
%% and click tracking), 8-bit content isn't preserved. For this reason, we
%% highly recommend that you encode all content that isn't 7-bit ASCII. For
%% more information, see MIME Encoding in the Amazon SES Developer Guide.
%%
%% </li> </ul> Additionally, keep the following considerations in mind when
%% using the `SendRawEmail' operation:
%%
%% <ul> <li> Although you can customize the message headers when using the
%% `SendRawEmail' operation, Amazon SES will automatically apply its own
%% `Message-ID' and `Date' headers; if you passed these headers when creating
%% the message, they will be overwritten by the values that Amazon SES
%% provides.
%%
%% </li> <li> If you are using sending authorization to send on behalf of
%% another user, `SendRawEmail' enables you to specify the cross-account
%% identity for the email's Source, From, and Return-Path parameters in one
%% of two ways: you can pass optional parameters `SourceArn', `FromArn',
%% and/or `ReturnPathArn' to the API, or you can include the following
%% X-headers in the header of your raw email:
%%
%% <ul> <li> `X-SES-SOURCE-ARN'
%%
%% </li> <li> `X-SES-FROM-ARN'
%%
%% </li> <li> `X-SES-RETURN-PATH-ARN'
%%
%% </li> </ul> Don't include these X-headers in the DKIM signature. Amazon
%% SES removes these before it sends the email.
%%
%% If you only specify the `SourceIdentityArn' parameter, Amazon SES sets the
%% From and Return-Path addresses to the same identity that you specified.
%%
%% For more information about sending authorization, see the Using Sending
%% Authorization with Amazon SES in the Amazon SES Developer Guide.
%%
%% </li> <li> For every message that you send, the total number of recipients
%% (including each recipient in the To:, CC: and BCC: fields) is counted
%% against the maximum number of emails you can send in a 24-hour period
%% (your sending quota). For more information about sending quotas in Amazon
%% SES, see Managing Your Amazon SES Sending Limits in the Amazon SES
%% Developer Guide.
%%
%% </li> </ul>
send_raw_email(Client, Input)
when is_map(Client), is_map(Input) ->
send_raw_email(Client, Input, []).
send_raw_email(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendRawEmail">>, Input, Options).
%% @doc Composes an email message using an email template and immediately
%% queues it for sending.
%%
%% In order to send email using the `SendTemplatedEmail' operation, your call
%% to the API must meet the following requirements:
%%
%% <ul> <li> The call must refer to an existing email template. You can
%% create email templates using the `CreateTemplate' operation.
%%
%% </li> <li> The message must be sent from a verified email address or
%% domain.
%%
%% </li> <li> If your account is still in the Amazon SES sandbox, you may
%% only send to verified addresses or domains, or to email addresses
%% associated with the Amazon SES Mailbox Simulator. For more information,
%% see Verifying Email Addresses and Domains in the Amazon SES Developer
%% Guide.
%%
%% </li> <li> The maximum message size is 10 MB.
%%
%% </li> <li> Calls to the `SendTemplatedEmail' operation may only include
%% one `Destination' parameter. A destination is a set of recipients who will
%% receive the same version of the email. The `Destination' parameter can
%% include up to 50 recipients, across the To:, CC: and BCC: fields.
%%
%% </li> <li> The `Destination' parameter must include at least one recipient
%% email address. The recipient address can be a To: address, a CC: address,
%% or a BCC: address. If a recipient email address is invalid (that is, it is
%% not in the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire
%% message will be rejected, even if the message contains other recipients
%% that are valid.
%%
%% </li> </ul> If your call to the `SendTemplatedEmail' operation includes
%% all of the required parameters, Amazon SES accepts it and returns a
%% Message ID. However, if Amazon SES can't render the email because the
%% template contains errors, it doesn't send the email. Additionally, because
%% it already accepted the message, Amazon SES doesn't return a message
%% stating that it was unable to send the email.
%%
%% For these reasons, we highly recommend that you set up Amazon SES to send
%% you notifications when Rendering Failure events occur. For more
%% information, see Sending Personalized Email Using the Amazon SES API in
%% the Amazon Simple Email Service Developer Guide.
send_templated_email(Client, Input)
when is_map(Client), is_map(Input) ->
send_templated_email(Client, Input, []).
send_templated_email(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SendTemplatedEmail">>, Input, Options).
%% @doc Sets the specified receipt rule set as the active receipt rule set.
%%
%% To disable your email-receiving through Amazon SES completely, you can
%% call this API with RuleSetName set to null.
%%
%% For information about managing receipt rule sets, see the Amazon SES
%% Developer Guide.
%%
%% You can execute this operation no more than once per second.
set_active_receipt_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
set_active_receipt_rule_set(Client, Input, []).
set_active_receipt_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetActiveReceiptRuleSet">>, Input, Options).
%% @doc Enables or disables Easy DKIM signing of email sent from an identity.
%%
%% If Easy DKIM signing is enabled for a domain, then Amazon SES uses DKIM to
%% sign all email that it sends from addresses on that domain. If Easy DKIM
%% signing is enabled for an email address, then Amazon SES uses DKIM to sign
%% all email it sends from that address.
%%
%% For email addresses (for example, `user@example.com'), you can only enable
%% DKIM signing if the corresponding domain (in this case, `example.com') has
%% been set up to use Easy DKIM.
%%
%% You can enable DKIM signing for an identity at any time after you start
%% the verification process for the identity, even if the verification
%% process isn't complete.
%%
%% You can execute this operation no more than once per second.
%%
%% For more information about Easy DKIM signing, go to the Amazon SES
%% Developer Guide.
set_identity_dkim_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_dkim_enabled(Client, Input, []).
set_identity_dkim_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityDkimEnabled">>, Input, Options).
%% @doc Given an identity (an email address or a domain), enables or disables
%% whether Amazon SES forwards bounce and complaint notifications as email.
%%
%% Feedback forwarding can only be disabled when Amazon Simple Notification
%% Service (Amazon SNS) topics are specified for both bounces and complaints.
%%
%% Feedback forwarding does not apply to delivery notifications. Delivery
%% notifications are only available through Amazon SNS.
%%
%% You can execute this operation no more than once per second.
%%
%% For more information about using notifications with Amazon SES, see the
%% Amazon SES Developer Guide.
set_identity_feedback_forwarding_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_feedback_forwarding_enabled(Client, Input, []).
set_identity_feedback_forwarding_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityFeedbackForwardingEnabled">>, Input, Options).
%% @doc Given an identity (an email address or a domain), sets whether Amazon
%% SES includes the original email headers in the Amazon Simple Notification
%% Service (Amazon SNS) notifications of a specified type.
%%
%% You can execute this operation no more than once per second.
%%
%% For more information about using notifications with Amazon SES, see the
%% Amazon SES Developer Guide.
set_identity_headers_in_notifications_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_headers_in_notifications_enabled(Client, Input, []).
set_identity_headers_in_notifications_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityHeadersInNotificationsEnabled">>, Input, Options).
%% @doc Enables or disables the custom MAIL FROM domain setup for a verified
%% identity (an email address or a domain).
%%
%% To send emails using the specified MAIL FROM domain, you must add an MX
%% record to your MAIL FROM domain's DNS settings. If you want your emails to
%% pass Sender Policy Framework (SPF) checks, you must also add or update an
%% SPF record. For more information, see the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
set_identity_mail_from_domain(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_mail_from_domain(Client, Input, []).
set_identity_mail_from_domain(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityMailFromDomain">>, Input, Options).
%% @doc Sets an Amazon Simple Notification Service (Amazon SNS) topic to use
%% when delivering notifications.
%%
%% When you use this operation, you specify a verified identity, such as an
%% email address or domain. When you send an email that uses the chosen
%% identity in the Source field, Amazon SES sends notifications to the topic
%% you specified. You can send bounce, complaint, or delivery notifications
%% (or any combination of the three) to the Amazon SNS topic that you
%% specify.
%%
%% You can execute this operation no more than once per second.
%%
%% For more information about feedback notification, see the Amazon SES
%% Developer Guide.
set_identity_notification_topic(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_notification_topic(Client, Input, []).
set_identity_notification_topic(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityNotificationTopic">>, Input, Options).
%% @doc Sets the position of the specified receipt rule in the receipt rule
%% set.
%%
%% For information about managing receipt rules, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
set_receipt_rule_position(Client, Input)
when is_map(Client), is_map(Input) ->
set_receipt_rule_position(Client, Input, []).
set_receipt_rule_position(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetReceiptRulePosition">>, Input, Options).
%% @doc Creates a preview of the MIME content of an email when provided with
%% a template and a set of replacement data.
%%
%% You can execute this operation no more than once per second.
test_render_template(Client, Input)
when is_map(Client), is_map(Input) ->
test_render_template(Client, Input, []).
test_render_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TestRenderTemplate">>, Input, Options).
%% @doc Enables or disables email sending across your entire Amazon SES
%% account in the current AWS Region.
%%
%% You can use this operation in conjunction with Amazon CloudWatch alarms to
%% temporarily pause email sending across your Amazon SES account in a given
%% AWS Region when reputation metrics (such as your bounce or complaint
%% rates) reach certain thresholds.
%%
%% You can execute this operation no more than once per second.
update_account_sending_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
update_account_sending_enabled(Client, Input, []).
update_account_sending_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateAccountSendingEnabled">>, Input, Options).
%% @doc Updates the event destination of a configuration set.
%%
%% Event destinations are associated with configuration sets, which enable
%% you to publish email sending events to Amazon CloudWatch, Amazon Kinesis
%% Firehose, or Amazon Simple Notification Service (Amazon SNS). For
%% information about using configuration sets, see Monitoring Your Amazon SES
%% Sending Activity in the Amazon SES Developer Guide.
%%
%% When you create or update an event destination, you must provide one, and
%% only one, destination. The destination can be Amazon CloudWatch, Amazon
%% Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS).
%%
%% You can execute this operation no more than once per second.
update_configuration_set_event_destination(Client, Input)
when is_map(Client), is_map(Input) ->
update_configuration_set_event_destination(Client, Input, []).
update_configuration_set_event_destination(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateConfigurationSetEventDestination">>, Input, Options).
%% @doc Enables or disables the publishing of reputation metrics for emails
%% sent using a specific configuration set in a given AWS Region.
%%
%% Reputation metrics include bounce and complaint rates. These metrics are
%% published to Amazon CloudWatch. By using CloudWatch, you can create alarms
%% when bounce or complaint rates exceed certain thresholds.
%%
%% You can execute this operation no more than once per second.
update_configuration_set_reputation_metrics_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
update_configuration_set_reputation_metrics_enabled(Client, Input, []).
update_configuration_set_reputation_metrics_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateConfigurationSetReputationMetricsEnabled">>, Input, Options).
%% @doc Enables or disables email sending for messages sent using a specific
%% configuration set in a given AWS Region.
%%
%% You can use this operation in conjunction with Amazon CloudWatch alarms to
%% temporarily pause email sending for a configuration set when the
%% reputation metrics for that configuration set (such as your bounce on
%% complaint rate) exceed certain thresholds.
%%
%% You can execute this operation no more than once per second.
update_configuration_set_sending_enabled(Client, Input)
when is_map(Client), is_map(Input) ->
update_configuration_set_sending_enabled(Client, Input, []).
update_configuration_set_sending_enabled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateConfigurationSetSendingEnabled">>, Input, Options).
%% @doc Modifies an association between a configuration set and a custom
%% domain for open and click event tracking.
%%
%% By default, images and links used for tracking open and click events are
%% hosted on domains operated by Amazon SES. You can configure a subdomain of
%% your own to handle these events. For information about using custom
%% domains, see the Amazon SES Developer Guide.
update_configuration_set_tracking_options(Client, Input)
when is_map(Client), is_map(Input) ->
update_configuration_set_tracking_options(Client, Input, []).
update_configuration_set_tracking_options(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateConfigurationSetTrackingOptions">>, Input, Options).
%% @doc Updates an existing custom verification email template.
%%
%% For more information about custom verification email templates, see Using
%% Custom Verification Email Templates in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
update_custom_verification_email_template(Client, Input)
when is_map(Client), is_map(Input) ->
update_custom_verification_email_template(Client, Input, []).
update_custom_verification_email_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateCustomVerificationEmailTemplate">>, Input, Options).
%% @doc Updates a receipt rule.
%%
%% For information about managing receipt rules, see the Amazon SES Developer
%% Guide.
%%
%% You can execute this operation no more than once per second.
update_receipt_rule(Client, Input)
when is_map(Client), is_map(Input) ->
update_receipt_rule(Client, Input, []).
update_receipt_rule(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateReceiptRule">>, Input, Options).
%% @doc Updates an email template.
%%
%% Email templates enable you to send personalized email to one or more
%% destinations in a single API operation. For more information, see the
%% Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
update_template(Client, Input)
when is_map(Client), is_map(Input) ->
update_template(Client, Input, []).
update_template(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateTemplate">>, Input, Options).
%% @doc Returns a set of DKIM tokens for a domain identity.
%%
%% When you execute the `VerifyDomainDkim' operation, the domain that you
%% specify is added to the list of identities that are associated with your
%% account. This is true even if you haven't already associated the domain
%% with your account by using the `VerifyDomainIdentity' operation. However,
%% you can't send email from the domain until you either successfully verify
%% it or you successfully set up DKIM for it.
%%
%% You use the tokens that are generated by this operation to create CNAME
%% records. When Amazon SES detects that you've added these records to the
%% DNS configuration for a domain, you can start sending email from that
%% domain. You can start sending email even if you haven't added the TXT
%% record provided by the VerifyDomainIdentity operation to the DNS
%% configuration for your domain. All email that you send from the domain is
%% authenticated using DKIM.
%%
%% To create the CNAME records for DKIM authentication, use the following
%% values:
%%
%% <ul> <li> Name: token._domainkey.example.com
%%
%% </li> <li> Type: CNAME
%%
%% </li> <li> Value: token.dkim.amazonses.com
%%
%% </li> </ul> In the preceding example, replace token with one of the tokens
%% that are generated when you execute this operation. Replace example.com
%% with your domain. Repeat this process for each token that's generated by
%% this operation.
%%
%% You can execute this operation no more than once per second.
verify_domain_dkim(Client, Input)
when is_map(Client), is_map(Input) ->
verify_domain_dkim(Client, Input, []).
verify_domain_dkim(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"VerifyDomainDkim">>, Input, Options).
%% @doc Adds a domain to the list of identities for your Amazon SES account
%% in the current AWS Region and attempts to verify it.
%%
%% For more information about verifying domains, see Verifying Email
%% Addresses and Domains in the Amazon SES Developer Guide.
%%
%% You can execute this operation no more than once per second.
verify_domain_identity(Client, Input)
when is_map(Client), is_map(Input) ->
verify_domain_identity(Client, Input, []).
verify_domain_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"VerifyDomainIdentity">>, Input, Options).
%% @doc Deprecated.
%%
%% Use the `VerifyEmailIdentity' operation to verify a new email address.
verify_email_address(Client, Input)
when is_map(Client), is_map(Input) ->
verify_email_address(Client, Input, []).
verify_email_address(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"VerifyEmailAddress">>, Input, Options).
%% @doc Adds an email address to the list of identities for your Amazon SES
%% account in the current AWS region and attempts to verify it.
%%
%% As a result of executing this operation, a verification email is sent to
%% the specified address.
%%
%% You can execute this operation no more than once per second.
verify_email_identity(Client, Input)
when is_map(Client), is_map(Input) ->
verify_email_identity(Client, Input, []).
verify_email_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"VerifyEmailIdentity">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: map().
request(Client, Action, Input, Options) ->
RequestFun = fun() -> do_request(Client, Action, Input, Options) end,
aws_request:request(RequestFun, Options).
do_request(Client, Action, Input0, Options) ->
Client1 = Client#{service => <<"ses">>},
Host = build_host(<<"email">>, Client1),
URL = build_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-www-form-urlencoded">>}
],
Input = Input0#{ <<"Action">> => Action
, <<"Version">> => <<"2010-12-01">>
},
Payload = aws_util:encode_query(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = aws_util:decode_xml(Body),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = aws_util:decode_xml(Body),
{error, Error, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) ->
Endpoint;
build_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>).
build_url(Host, Client) ->
Proto = maps:get(proto, Client),
Port = maps:get(port, Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).