Packages
aws
1.0.11
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.14.1
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
AWS clients for Elixir
Current section
Files
Jump to
Current section
Files
lib/aws/generated/pinpoint_email.ex
# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.PinpointEmail do
@moduledoc """
Amazon Pinpoint Email Service
Welcome to the *Amazon Pinpoint Email API Reference*.
This guide provides
information about the Amazon Pinpoint Email API (version 1.0), including
supported
operations, data types, parameters, and schemas.
[Amazon Pinpoint](https://aws.amazon.com/pinpoint) is an AWS service that you can use to engage with your customers across multiple messaging channels. You
can use
Amazon Pinpoint to send email, SMS text messages, voice messages, and push
notifications. The
Amazon Pinpoint Email API provides programmatic access to options that are
unique to the
email channel and supplement the options provided by the Amazon Pinpoint API.
If you're new to Amazon Pinpoint, you might find it helpful to also review the
[Amazon
Pinpoint Developer
Guide](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html).
The *Amazon Pinpoint Developer
Guide* provides tutorials, code samples, and procedures that demonstrate
how to use Amazon Pinpoint features programmatically and how to integrate Amazon
Pinpoint functionality into
mobile apps and other types of applications. The guide also provides information
about
key topics such as Amazon Pinpoint integration with other AWS services and the
limits that apply
to using the service.
The Amazon Pinpoint Email API is available in several AWS Regions and it
provides an endpoint
for each of these Regions. For a list of all the Regions and endpoints where the
API is
currently available, see [AWS Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region)
in
the *Amazon Web Services General Reference*. To learn more about AWS Regions,
see
[Managing AWS Regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in the
*Amazon Web Services General Reference*.
In each Region, AWS maintains multiple Availability Zones. These Availability
Zones
are physically isolated from each other, but are united by private, low-latency,
high-throughput, and highly redundant network connections. These Availability
Zones
enable us to provide very high levels of availability and redundancy, while also
minimizing latency. To learn more about the number of Availability Zones that
are
available in each Region, see [AWS Global Infrastructure](http://aws.amazon.com/about-aws/global-infrastructure/).
"""
alias AWS.Client
alias AWS.Request
@typedoc """
## Example:
put_configuration_set_tracking_options_response() :: %{}
"""
@type put_configuration_set_tracking_options_response() :: %{}
@typedoc """
## Example:
tracking_options() :: %{
"CustomRedirectDomain" => String.t() | atom()
}
"""
@type tracking_options() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_email_identity_response() :: %{
"DkimAttributes" => dkim_attributes(),
"FeedbackForwardingStatus" => boolean(),
"IdentityType" => list(any()),
"MailFromAttributes" => mail_from_attributes(),
"Tags" => list(tag()),
"VerifiedForSendingStatus" => boolean()
}
"""
@type get_email_identity_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_email_identity_dkim_attributes_response() :: %{}
"""
@type put_email_identity_dkim_attributes_response() :: %{}
@typedoc """
## Example:
delete_configuration_set_response() :: %{}
"""
@type delete_configuration_set_response() :: %{}
@typedoc """
## Example:
list_deliverability_test_reports_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer()
}
"""
@type list_deliverability_test_reports_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_request() :: %{
required("ResourceArn") => String.t() | atom(),
required("Tags") => list(tag())
}
"""
@type tag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_account_sending_attributes_request() :: %{
optional("SendingEnabled") => boolean()
}
"""
@type put_account_sending_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_account_response() :: %{
"DedicatedIpAutoWarmupEnabled" => boolean(),
"EnforcementStatus" => String.t() | atom(),
"ProductionAccessEnabled" => boolean(),
"SendQuota" => send_quota(),
"SendingEnabled" => boolean()
}
"""
@type get_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_deliverability_test_report_request() :: %{}
"""
@type get_deliverability_test_report_request() :: %{}
@typedoc """
## Example:
volume_statistics() :: %{
"InboxRawCount" => float(),
"ProjectedInbox" => float(),
"ProjectedSpam" => float(),
"SpamRawCount" => float()
}
"""
@type volume_statistics() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_email_identities_response() :: %{
"EmailIdentities" => list(identity_info()),
"NextToken" => String.t() | atom()
}
"""
@type list_email_identities_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_dedicated_ip_pool_response() :: %{}
"""
@type create_dedicated_ip_pool_response() :: %{}
@typedoc """
## Example:
put_configuration_set_reputation_options_response() :: %{}
"""
@type put_configuration_set_reputation_options_response() :: %{}
@typedoc """
## Example:
untag_resource_response() :: %{}
"""
@type untag_resource_response() :: %{}
@typedoc """
## Example:
put_email_identity_feedback_attributes_request() :: %{
optional("EmailForwardingEnabled") => boolean()
}
"""
@type put_email_identity_feedback_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
isp_placement() :: %{
"IspName" => String.t() | atom(),
"PlacementStatistics" => placement_statistics()
}
"""
@type isp_placement() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_deliverability_test_reports_response() :: %{
"DeliverabilityTestReports" => list(deliverability_test_report()),
"NextToken" => String.t() | atom()
}
"""
@type list_deliverability_test_reports_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
kinesis_firehose_destination() :: %{
"DeliveryStreamArn" => String.t() | atom(),
"IamRoleArn" => String.t() | atom()
}
"""
@type kinesis_firehose_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
already_exists_exception() :: %{
"message" => String.t() | atom()
}
"""
@type already_exists_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_account_dedicated_ip_warmup_attributes_response() :: %{}
"""
@type put_account_dedicated_ip_warmup_attributes_response() :: %{}
@typedoc """
## Example:
send_quota() :: %{
"Max24HourSend" => float(),
"MaxSendRate" => float(),
"SentLast24Hours" => float()
}
"""
@type send_quota() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
dkim_attributes() :: %{
"SigningEnabled" => boolean(),
"Status" => list(any()),
"Tokens" => list(String.t() | atom())
}
"""
@type dkim_attributes() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_email_identity_response() :: %{
"DkimAttributes" => dkim_attributes(),
"IdentityType" => list(any()),
"VerifiedForSendingStatus" => boolean()
}
"""
@type create_email_identity_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
sending_paused_exception() :: %{
"message" => String.t() | atom()
}
"""
@type sending_paused_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_deliverability_dashboard_option_request() :: %{
optional("SubscribedDomains") => list(domain_deliverability_tracking_option()),
required("DashboardEnabled") => boolean()
}
"""
@type put_deliverability_dashboard_option_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_configuration_set_delivery_options_response() :: %{}
"""
@type put_configuration_set_delivery_options_response() :: %{}
@typedoc """
## Example:
account_suspended_exception() :: %{
"message" => String.t() | atom()
}
"""
@type account_suspended_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
email_content() :: %{
"Raw" => raw_message(),
"Simple" => message(),
"Template" => template()
}
"""
@type email_content() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_deliverability_dashboard_options_response() :: %{
"AccountStatus" => list(any()),
"ActiveSubscribedDomains" => list(domain_deliverability_tracking_option()),
"DashboardEnabled" => boolean(),
"PendingExpirationSubscribedDomains" => list(domain_deliverability_tracking_option()),
"SubscriptionExpiryDate" => non_neg_integer()
}
"""
@type get_deliverability_dashboard_options_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_domain_deliverability_campaign_request() :: %{}
"""
@type get_domain_deliverability_campaign_request() :: %{}
@typedoc """
## Example:
delete_configuration_set_event_destination_response() :: %{}
"""
@type delete_configuration_set_event_destination_response() :: %{}
@typedoc """
## Example:
delete_email_identity_request() :: %{}
"""
@type delete_email_identity_request() :: %{}
@typedoc """
## Example:
cloud_watch_dimension_configuration() :: %{
"DefaultDimensionValue" => String.t() | atom(),
"DimensionName" => String.t() | atom(),
"DimensionValueSource" => list(any())
}
"""
@type cloud_watch_dimension_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
untag_resource_request() :: %{
required("ResourceArn") => String.t() | atom(),
required("TagKeys") => list(String.t() | atom())
}
"""
@type untag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
too_many_requests_exception() :: %{
"message" => String.t() | atom()
}
"""
@type too_many_requests_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_deliverability_test_report_response() :: %{
"DeliverabilityTestStatus" => list(any()),
"ReportId" => String.t() | atom()
}
"""
@type create_deliverability_test_report_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
event_destination_definition() :: %{
"CloudWatchDestination" => cloud_watch_destination(),
"Enabled" => boolean(),
"KinesisFirehoseDestination" => kinesis_firehose_destination(),
"MatchingEventTypes" => list(list(any())()),
"PinpointDestination" => pinpoint_destination(),
"SnsDestination" => sns_destination()
}
"""
@type event_destination_definition() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_domain_deliverability_campaigns_response() :: %{
"DomainDeliverabilityCampaigns" => list(domain_deliverability_campaign()),
"NextToken" => String.t() | atom()
}
"""
@type list_domain_deliverability_campaigns_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_configuration_set_request() :: %{}
"""
@type delete_configuration_set_request() :: %{}
@typedoc """
## Example:
send_email_response() :: %{
"MessageId" => String.t() | atom()
}
"""
@type send_email_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_dedicated_ip_pool_request() :: %{}
"""
@type delete_dedicated_ip_pool_request() :: %{}
@typedoc """
## Example:
cloud_watch_destination() :: %{
"DimensionConfigurations" => list(cloud_watch_dimension_configuration())
}
"""
@type cloud_watch_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
blacklist_entry() :: %{
"Description" => String.t() | atom(),
"ListingTime" => non_neg_integer(),
"RblName" => String.t() | atom()
}
"""
@type blacklist_entry() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
mail_from_domain_not_verified_exception() :: %{
"message" => String.t() | atom()
}
"""
@type mail_from_domain_not_verified_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
overall_volume() :: %{
"DomainIspPlacements" => list(domain_isp_placement()),
"ReadRatePercent" => float(),
"VolumeStatistics" => volume_statistics()
}
"""
@type overall_volume() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
domain_isp_placement() :: %{
"InboxPercentage" => float(),
"InboxRawCount" => float(),
"IspName" => String.t() | atom(),
"SpamPercentage" => float(),
"SpamRawCount" => float()
}
"""
@type domain_isp_placement() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
dedicated_ip() :: %{
"Ip" => String.t() | atom(),
"PoolName" => String.t() | atom(),
"WarmupPercentage" => integer(),
"WarmupStatus" => list(any())
}
"""
@type dedicated_ip() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_blacklist_reports_request() :: %{
required("BlacklistItemNames") => list(String.t() | atom())
}
"""
@type get_blacklist_reports_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
mail_from_attributes() :: %{
"BehaviorOnMxFailure" => list(any()),
"MailFromDomain" => String.t() | atom(),
"MailFromDomainStatus" => list(any())
}
"""
@type mail_from_attributes() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_configuration_set_response() :: %{}
"""
@type create_configuration_set_response() :: %{}
@typedoc """
## Example:
reputation_options() :: %{
"LastFreshStart" => non_neg_integer(),
"ReputationMetricsEnabled" => boolean()
}
"""
@type reputation_options() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_deliverability_dashboard_option_response() :: %{}
"""
@type put_deliverability_dashboard_option_response() :: %{}
@typedoc """
## Example:
create_email_identity_request() :: %{
optional("Tags") => list(tag()),
required("EmailIdentity") => String.t() | atom()
}
"""
@type create_email_identity_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
inbox_placement_tracking_option() :: %{
"Global" => boolean(),
"TrackedIsps" => list(String.t() | atom())
}
"""
@type inbox_placement_tracking_option() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag() :: %{
"Key" => String.t() | atom(),
"Value" => String.t() | atom()
}
"""
@type tag() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
event_destination() :: %{
"CloudWatchDestination" => cloud_watch_destination(),
"Enabled" => boolean(),
"KinesisFirehoseDestination" => kinesis_firehose_destination(),
"MatchingEventTypes" => list(list(any())()),
"Name" => String.t() | atom(),
"PinpointDestination" => pinpoint_destination(),
"SnsDestination" => sns_destination()
}
"""
@type event_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_configuration_set_event_destination_request() :: %{
required("EventDestination") => event_destination_definition()
}
"""
@type update_configuration_set_event_destination_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
message_tag() :: %{
"Name" => String.t() | atom(),
"Value" => String.t() | atom()
}
"""
@type message_tag() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_domain_deliverability_campaigns_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer(),
required("EndDate") => non_neg_integer(),
required("StartDate") => non_neg_integer()
}
"""
@type list_domain_deliverability_campaigns_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_configuration_set_event_destinations_request() :: %{}
"""
@type get_configuration_set_event_destinations_request() :: %{}
@typedoc """
## Example:
get_domain_statistics_report_request() :: %{
required("EndDate") => non_neg_integer(),
required("StartDate") => non_neg_integer()
}
"""
@type get_domain_statistics_report_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_account_dedicated_ip_warmup_attributes_request() :: %{
optional("AutoWarmupEnabled") => boolean()
}
"""
@type put_account_dedicated_ip_warmup_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_dedicated_ip_in_pool_response() :: %{}
"""
@type put_dedicated_ip_in_pool_response() :: %{}
@typedoc """
## Example:
not_found_exception() :: %{
"message" => String.t() | atom()
}
"""
@type not_found_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
placement_statistics() :: %{
"DkimPercentage" => float(),
"InboxPercentage" => float(),
"MissingPercentage" => float(),
"SpamPercentage" => float(),
"SpfPercentage" => float()
}
"""
@type placement_statistics() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
identity_info() :: %{
"IdentityName" => String.t() | atom(),
"IdentityType" => list(any()),
"SendingEnabled" => boolean()
}
"""
@type identity_info() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_response() :: %{
"Tags" => list(tag())
}
"""
@type list_tags_for_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_configuration_sets_response() :: %{
"ConfigurationSets" => list(String.t() | atom()),
"NextToken" => String.t() | atom()
}
"""
@type list_configuration_sets_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_dedicated_ip_pools_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer()
}
"""
@type list_dedicated_ip_pools_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_configuration_set_event_destinations_response() :: %{
"EventDestinations" => list(event_destination())
}
"""
@type get_configuration_set_event_destinations_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_domain_deliverability_campaign_response() :: %{
"DomainDeliverabilityCampaign" => domain_deliverability_campaign()
}
"""
@type get_domain_deliverability_campaign_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_configuration_sets_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer()
}
"""
@type list_configuration_sets_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_dedicated_ips_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer(),
optional("PoolName") => String.t() | atom()
}
"""
@type get_dedicated_ips_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
raw_message() :: %{
"Data" => binary()
}
"""
@type raw_message() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_dedicated_ip_in_pool_request() :: %{
required("DestinationPoolName") => String.t() | atom()
}
"""
@type put_dedicated_ip_in_pool_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_email_identity_dkim_attributes_request() :: %{
optional("SigningEnabled") => boolean()
}
"""
@type put_email_identity_dkim_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_configuration_set_sending_options_response() :: %{}
"""
@type put_configuration_set_sending_options_response() :: %{}
@typedoc """
## Example:
delete_dedicated_ip_pool_response() :: %{}
"""
@type delete_dedicated_ip_pool_response() :: %{}
@typedoc """
## Example:
put_configuration_set_tracking_options_request() :: %{
optional("CustomRedirectDomain") => String.t() | atom()
}
"""
@type put_configuration_set_tracking_options_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_dedicated_ip_pool_request() :: %{
optional("Tags") => list(tag()),
required("PoolName") => String.t() | atom()
}
"""
@type create_dedicated_ip_pool_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_dedicated_ip_response() :: %{
"DedicatedIp" => dedicated_ip()
}
"""
@type get_dedicated_ip_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_configuration_set_event_destination_request() :: %{}
"""
@type delete_configuration_set_event_destination_request() :: %{}
@typedoc """
## Example:
create_configuration_set_event_destination_response() :: %{}
"""
@type create_configuration_set_event_destination_response() :: %{}
@typedoc """
## Example:
put_configuration_set_delivery_options_request() :: %{
optional("SendingPoolName") => String.t() | atom(),
optional("TlsPolicy") => list(any())
}
"""
@type put_configuration_set_delivery_options_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_email_identity_mail_from_attributes_request() :: %{
optional("BehaviorOnMxFailure") => list(any()),
optional("MailFromDomain") => String.t() | atom()
}
"""
@type put_email_identity_mail_from_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_email_identity_response() :: %{}
"""
@type delete_email_identity_response() :: %{}
@typedoc """
## Example:
create_deliverability_test_report_request() :: %{
optional("ReportName") => String.t() | atom(),
optional("Tags") => list(tag()),
required("Content") => email_content(),
required("FromEmailAddress") => String.t() | atom()
}
"""
@type create_deliverability_test_report_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
daily_volume() :: %{
"DomainIspPlacements" => list(domain_isp_placement()),
"StartDate" => non_neg_integer(),
"VolumeStatistics" => volume_statistics()
}
"""
@type daily_volume() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_response() :: %{}
"""
@type tag_resource_response() :: %{}
@typedoc """
## Example:
sending_options() :: %{
"SendingEnabled" => boolean()
}
"""
@type sending_options() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
concurrent_modification_exception() :: %{
"message" => String.t() | atom()
}
"""
@type concurrent_modification_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_blacklist_reports_response() :: %{
"BlacklistReport" => map()
}
"""
@type get_blacklist_reports_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_request() :: %{
required("ResourceArn") => String.t() | atom()
}
"""
@type list_tags_for_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
destination() :: %{
"BccAddresses" => list(String.t() | atom()),
"CcAddresses" => list(String.t() | atom()),
"ToAddresses" => list(String.t() | atom())
}
"""
@type destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
body() :: %{
"Html" => content(),
"Text" => content()
}
"""
@type body() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_deliverability_dashboard_options_request() :: %{}
"""
@type get_deliverability_dashboard_options_request() :: %{}
@typedoc """
## Example:
get_domain_statistics_report_response() :: %{
"DailyVolumes" => list(daily_volume()),
"OverallVolume" => overall_volume()
}
"""
@type get_domain_statistics_report_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_account_sending_attributes_response() :: %{}
"""
@type put_account_sending_attributes_response() :: %{}
@typedoc """
## Example:
message_rejected() :: %{
"message" => String.t() | atom()
}
"""
@type message_rejected() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_dedicated_ip_pools_response() :: %{
"DedicatedIpPools" => list(String.t() | atom()),
"NextToken" => String.t() | atom()
}
"""
@type list_dedicated_ip_pools_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_configuration_set_request() :: %{}
"""
@type get_configuration_set_request() :: %{}
@typedoc """
## Example:
put_email_identity_mail_from_attributes_response() :: %{}
"""
@type put_email_identity_mail_from_attributes_response() :: %{}
@typedoc """
## Example:
create_configuration_set_event_destination_request() :: %{
required("EventDestination") => event_destination_definition(),
required("EventDestinationName") => String.t() | atom()
}
"""
@type create_configuration_set_event_destination_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
domain_deliverability_tracking_option() :: %{
"Domain" => String.t() | atom(),
"InboxPlacementTrackingOption" => inbox_placement_tracking_option(),
"SubscriptionStartDate" => non_neg_integer()
}
"""
@type domain_deliverability_tracking_option() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_configuration_set_sending_options_request() :: %{
optional("SendingEnabled") => boolean()
}
"""
@type put_configuration_set_sending_options_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
limit_exceeded_exception() :: %{
"message" => String.t() | atom()
}
"""
@type limit_exceeded_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delivery_options() :: %{
"SendingPoolName" => String.t() | atom(),
"TlsPolicy" => list(any())
}
"""
@type delivery_options() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_configuration_set_event_destination_response() :: %{}
"""
@type update_configuration_set_event_destination_response() :: %{}
@typedoc """
## Example:
bad_request_exception() :: %{
"message" => String.t() | atom()
}
"""
@type bad_request_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
content() :: %{
"Charset" => String.t() | atom(),
"Data" => String.t() | atom()
}
"""
@type content() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_configuration_set_response() :: %{
"ConfigurationSetName" => String.t() | atom(),
"DeliveryOptions" => delivery_options(),
"ReputationOptions" => reputation_options(),
"SendingOptions" => sending_options(),
"Tags" => list(tag()),
"TrackingOptions" => tracking_options()
}
"""
@type get_configuration_set_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
template() :: %{
optional("TemplateArn") => String.t() | atom(),
optional("TemplateData") => String.t() | atom()
}
"""
@type template() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
send_email_request() :: %{
optional("ConfigurationSetName") => String.t() | atom(),
optional("EmailTags") => list(message_tag()),
optional("FeedbackForwardingEmailAddress") => String.t() | atom(),
optional("FromEmailAddress") => String.t() | atom(),
optional("ReplyToAddresses") => list(String.t() | atom()),
required("Content") => email_content(),
required("Destination") => destination()
}
"""
@type send_email_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_dedicated_ip_warmup_attributes_response() :: %{}
"""
@type put_dedicated_ip_warmup_attributes_response() :: %{}
@typedoc """
## Example:
put_dedicated_ip_warmup_attributes_request() :: %{
required("WarmupPercentage") => integer()
}
"""
@type put_dedicated_ip_warmup_attributes_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
domain_deliverability_campaign() :: %{
"CampaignId" => String.t() | atom(),
"DeleteRate" => float(),
"Esps" => list(String.t() | atom()),
"FirstSeenDateTime" => non_neg_integer(),
"FromAddress" => String.t() | atom(),
"ImageUrl" => String.t() | atom(),
"InboxCount" => float(),
"LastSeenDateTime" => non_neg_integer(),
"ProjectedVolume" => float(),
"ReadDeleteRate" => float(),
"ReadRate" => float(),
"SendingIps" => list(String.t() | atom()),
"SpamCount" => float(),
"Subject" => String.t() | atom()
}
"""
@type domain_deliverability_campaign() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_account_request() :: %{}
"""
@type get_account_request() :: %{}
@typedoc """
## Example:
get_dedicated_ip_request() :: %{}
"""
@type get_dedicated_ip_request() :: %{}
@typedoc """
## Example:
list_email_identities_request() :: %{
optional("NextToken") => String.t() | atom(),
optional("PageSize") => integer()
}
"""
@type list_email_identities_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_configuration_set_reputation_options_request() :: %{
optional("ReputationMetricsEnabled") => boolean()
}
"""
@type put_configuration_set_reputation_options_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_configuration_set_request() :: %{
optional("DeliveryOptions") => delivery_options(),
optional("ReputationOptions") => reputation_options(),
optional("SendingOptions") => sending_options(),
optional("Tags") => list(tag()),
optional("TrackingOptions") => tracking_options(),
required("ConfigurationSetName") => String.t() | atom()
}
"""
@type create_configuration_set_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
sns_destination() :: %{
"TopicArn" => String.t() | atom()
}
"""
@type sns_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
pinpoint_destination() :: %{
"ApplicationArn" => String.t() | atom()
}
"""
@type pinpoint_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_email_identity_feedback_attributes_response() :: %{}
"""
@type put_email_identity_feedback_attributes_response() :: %{}
@typedoc """
## Example:
deliverability_test_report() :: %{
"CreateDate" => non_neg_integer(),
"DeliverabilityTestStatus" => list(any()),
"FromEmailAddress" => String.t() | atom(),
"ReportId" => String.t() | atom(),
"ReportName" => String.t() | atom(),
"Subject" => String.t() | atom()
}
"""
@type deliverability_test_report() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_deliverability_test_report_response() :: %{
"DeliverabilityTestReport" => deliverability_test_report(),
"IspPlacements" => list(isp_placement()),
"Message" => String.t() | atom(),
"OverallPlacement" => placement_statistics(),
"Tags" => list(tag())
}
"""
@type get_deliverability_test_report_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_email_identity_request() :: %{}
"""
@type get_email_identity_request() :: %{}
@typedoc """
## Example:
get_dedicated_ips_response() :: %{
"DedicatedIps" => list(dedicated_ip()),
"NextToken" => String.t() | atom()
}
"""
@type get_dedicated_ips_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
message() :: %{
"Body" => body(),
"Subject" => content()
}
"""
@type message() :: %{(String.t() | atom()) => any()}
@type create_configuration_set_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
| already_exists_exception()
@type create_configuration_set_event_destination_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| not_found_exception()
| too_many_requests_exception()
| already_exists_exception()
@type create_dedicated_ip_pool_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| concurrent_modification_exception()
| too_many_requests_exception()
| already_exists_exception()
@type create_deliverability_test_report_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| message_rejected()
| concurrent_modification_exception()
| not_found_exception()
| mail_from_domain_not_verified_exception()
| too_many_requests_exception()
| account_suspended_exception()
| sending_paused_exception()
@type create_email_identity_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| concurrent_modification_exception()
| too_many_requests_exception()
@type delete_configuration_set_errors() ::
bad_request_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
@type delete_configuration_set_event_destination_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type delete_dedicated_ip_pool_errors() ::
bad_request_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
@type delete_email_identity_errors() ::
bad_request_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
@type get_account_errors() :: bad_request_exception() | too_many_requests_exception()
@type get_blacklist_reports_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_configuration_set_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_configuration_set_event_destinations_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_dedicated_ip_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_dedicated_ips_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_deliverability_dashboard_options_errors() ::
bad_request_exception() | limit_exceeded_exception() | too_many_requests_exception()
@type get_deliverability_test_report_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_domain_deliverability_campaign_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_domain_statistics_report_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type get_email_identity_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type list_configuration_sets_errors() ::
bad_request_exception() | too_many_requests_exception()
@type list_dedicated_ip_pools_errors() ::
bad_request_exception() | too_many_requests_exception()
@type list_deliverability_test_reports_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type list_domain_deliverability_campaigns_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type list_email_identities_errors() :: bad_request_exception() | too_many_requests_exception()
@type list_tags_for_resource_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_account_dedicated_ip_warmup_attributes_errors() ::
bad_request_exception() | too_many_requests_exception()
@type put_account_sending_attributes_errors() ::
bad_request_exception() | too_many_requests_exception()
@type put_configuration_set_delivery_options_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_configuration_set_reputation_options_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_configuration_set_sending_options_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_configuration_set_tracking_options_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_dedicated_ip_in_pool_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_dedicated_ip_warmup_attributes_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_deliverability_dashboard_option_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| not_found_exception()
| too_many_requests_exception()
| already_exists_exception()
@type put_email_identity_dkim_attributes_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_email_identity_feedback_attributes_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type put_email_identity_mail_from_attributes_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
@type send_email_errors() ::
bad_request_exception()
| limit_exceeded_exception()
| message_rejected()
| not_found_exception()
| mail_from_domain_not_verified_exception()
| too_many_requests_exception()
| account_suspended_exception()
| sending_paused_exception()
@type tag_resource_errors() ::
bad_request_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
@type untag_resource_errors() ::
bad_request_exception()
| concurrent_modification_exception()
| not_found_exception()
| too_many_requests_exception()
@type update_configuration_set_event_destination_errors() ::
bad_request_exception() | not_found_exception() | too_many_requests_exception()
def metadata do
%{
api_version: "2018-07-26",
content_type: "application/x-amz-json-1.1",
credential_scope: nil,
endpoint_prefix: "email",
global?: false,
hostname: nil,
protocol: "rest-json",
service_id: "Pinpoint Email",
signature_version: "v4",
signing_name: "ses",
target_prefix: nil
}
end
@doc """
Create a configuration set.
*Configuration sets* are groups of
rules that you can apply to the emails you send using Amazon Pinpoint. You apply
a configuration
set to an email by including a reference to the configuration set in the headers
of the
email. When you apply a configuration set to an email, all of the rules in that
configuration set are applied to the email.
"""
@spec create_configuration_set(map(), create_configuration_set_request(), list()) ::
{:ok, create_configuration_set_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_configuration_set_errors()}
def create_configuration_set(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/configuration-sets"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Create an event destination.
In Amazon Pinpoint, *events* include message
sends, deliveries, opens, clicks, bounces, and complaints. *Event
destinations* are places that you can send information about these events
to. For example, you can send event data to Amazon SNS to receive notifications
when you
receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to
stream data to Amazon S3 for long-term
storage.
A single configuration set can include more than one event destination.
"""
@spec create_configuration_set_event_destination(
map(),
String.t() | atom(),
create_configuration_set_event_destination_request(),
list()
) ::
{:ok, create_configuration_set_event_destination_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_configuration_set_event_destination_errors()}
def create_configuration_set_event_destination(
%Client{} = client,
configuration_set_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/event-destinations"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Create a new pool of dedicated IP addresses.
A pool can include one or more dedicated
IP addresses that are associated with your Amazon Pinpoint account. You can
associate a pool with
a configuration set. When you send an email that uses that configuration set,
Amazon Pinpoint
sends it using only the IP addresses in the associated pool.
"""
@spec create_dedicated_ip_pool(map(), create_dedicated_ip_pool_request(), list()) ::
{:ok, create_dedicated_ip_pool_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_dedicated_ip_pool_errors()}
def create_dedicated_ip_pool(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/dedicated-ip-pools"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Create a new predictive inbox placement test.
Predictive inbox placement tests can help you predict how your messages will be
handled
by various email providers around the world. When you perform a predictive inbox
placement test, you provide a
sample message that contains the content that you plan to send to your
customers. Amazon Pinpoint
then sends that message to special email addresses spread across several major
email
providers. After about 24 hours, the test is complete, and you can use the
`GetDeliverabilityTestReport` operation to view the results of the
test.
"""
@spec create_deliverability_test_report(
map(),
create_deliverability_test_report_request(),
list()
) ::
{:ok, create_deliverability_test_report_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_deliverability_test_report_errors()}
def create_deliverability_test_report(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/deliverability-dashboard/test"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Verifies an email identity for use with Amazon Pinpoint.
In Amazon Pinpoint, an identity is an email
address or domain that you use when you send email. Before you can use an
identity to
send email with Amazon Pinpoint, you first have to verify it. By verifying an
address, you
demonstrate that you're the owner of the address, and that you've given Amazon
Pinpoint permission
to send email from the address.
When you verify an email address, Amazon Pinpoint sends an email to the address.
Your email
address is verified as soon as you follow the link in the verification email.
When you verify a domain, this operation provides a set of DKIM tokens, which
you can
convert into CNAME tokens. You add these CNAME tokens to the DNS configuration
for your
domain. Your domain is verified when Amazon Pinpoint detects these records in
the DNS
configuration for your domain. It usually takes around 72 hours to complete the
domain
verification process.
"""
@spec create_email_identity(map(), create_email_identity_request(), list()) ::
{:ok, create_email_identity_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_email_identity_errors()}
def create_email_identity(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/identities"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Delete an existing configuration set.
In Amazon Pinpoint, *configuration sets* are groups of rules that you can
apply to the emails you send. You apply a configuration set to an email by
including a
reference to the configuration set in the headers of the email. When you apply a
configuration set to an email, all of the rules in that configuration set are
applied to
the email.
"""
@spec delete_configuration_set(
map(),
String.t() | atom(),
delete_configuration_set_request(),
list()
) ::
{:ok, delete_configuration_set_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_configuration_set_errors()}
def delete_configuration_set(%Client{} = client, configuration_set_name, input, options \\ []) do
url_path = "/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Delete an event destination.
In Amazon Pinpoint, *events* include message sends, deliveries, opens,
clicks, bounces, and complaints. *Event destinations* are places that
you can send information about these events to. For example, you can send event
data to
Amazon SNS to receive notifications when you receive bounces or complaints, or
you can use
Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.
"""
@spec delete_configuration_set_event_destination(
map(),
String.t() | atom(),
String.t() | atom(),
delete_configuration_set_event_destination_request(),
list()
) ::
{:ok, delete_configuration_set_event_destination_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_configuration_set_event_destination_errors()}
def delete_configuration_set_event_destination(
%Client{} = client,
configuration_set_name,
event_destination_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/event-destinations/#{AWS.Util.encode_uri(event_destination_name)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Delete a dedicated IP pool.
"""
@spec delete_dedicated_ip_pool(
map(),
String.t() | atom(),
delete_dedicated_ip_pool_request(),
list()
) ::
{:ok, delete_dedicated_ip_pool_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_dedicated_ip_pool_errors()}
def delete_dedicated_ip_pool(%Client{} = client, pool_name, input, options \\ []) do
url_path = "/v1/email/dedicated-ip-pools/#{AWS.Util.encode_uri(pool_name)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes an email identity that you previously verified for use with Amazon
Pinpoint.
An identity
can be either an email address or a domain name.
"""
@spec delete_email_identity(map(), String.t() | atom(), delete_email_identity_request(), list()) ::
{:ok, delete_email_identity_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_email_identity_errors()}
def delete_email_identity(%Client{} = client, email_identity, input, options \\ []) do
url_path = "/v1/email/identities/#{AWS.Util.encode_uri(email_identity)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Obtain information about the email-sending status and capabilities of your
Amazon Pinpoint
account in the current AWS Region.
"""
@spec get_account(map(), list()) ::
{:ok, get_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_account_errors()}
def get_account(%Client{} = client, options \\ []) do
url_path = "/v1/email/account"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve a list of the blacklists that your dedicated IP addresses appear on.
"""
@spec get_blacklist_reports(map(), String.t() | atom(), list()) ::
{:ok, get_blacklist_reports_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_blacklist_reports_errors()}
def get_blacklist_reports(%Client{} = client, blacklist_item_names, options \\ []) do
url_path = "/v1/email/deliverability-dashboard/blacklist-report"
headers = []
query_params = []
query_params =
if !is_nil(blacklist_item_names) do
[{"BlacklistItemNames", blacklist_item_names} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Get information about an existing configuration set, including the dedicated IP
pool
that it's associated with, whether or not it's enabled for sending email, and
more.
In Amazon Pinpoint, *configuration sets* are groups of rules that you can
apply to the emails you send. You apply a configuration set to an email by
including a
reference to the configuration set in the headers of the email. When you apply a
configuration set to an email, all of the rules in that configuration set are
applied to
the email.
"""
@spec get_configuration_set(map(), String.t() | atom(), list()) ::
{:ok, get_configuration_set_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_configuration_set_errors()}
def get_configuration_set(%Client{} = client, configuration_set_name, options \\ []) do
url_path = "/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve a list of event destinations that are associated with a configuration
set.
In Amazon Pinpoint, *events* include message sends, deliveries, opens,
clicks, bounces, and complaints. *Event destinations* are places that
you can send information about these events to. For example, you can send event
data to
Amazon SNS to receive notifications when you receive bounces or complaints, or
you can use
Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.
"""
@spec get_configuration_set_event_destinations(map(), String.t() | atom(), list()) ::
{:ok, get_configuration_set_event_destinations_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_configuration_set_event_destinations_errors()}
def get_configuration_set_event_destinations(
%Client{} = client,
configuration_set_name,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/event-destinations"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Get information about a dedicated IP address, including the name of the
dedicated IP
pool that it's associated with, as well information about the automatic warm-up
process
for the address.
"""
@spec get_dedicated_ip(map(), String.t() | atom(), list()) ::
{:ok, get_dedicated_ip_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_dedicated_ip_errors()}
def get_dedicated_ip(%Client{} = client, ip, options \\ []) do
url_path = "/v1/email/dedicated-ips/#{AWS.Util.encode_uri(ip)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
List the dedicated IP addresses that are associated with your Amazon Pinpoint
account.
"""
@spec get_dedicated_ips(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, get_dedicated_ips_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_dedicated_ips_errors()}
def get_dedicated_ips(
%Client{} = client,
next_token \\ nil,
page_size \\ nil,
pool_name \\ nil,
options \\ []
) do
url_path = "/v1/email/dedicated-ips"
headers = []
query_params = []
query_params =
if !is_nil(pool_name) do
[{"PoolName", pool_name} | query_params]
else
query_params
end
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve information about the status of the Deliverability dashboard for your
Amazon Pinpoint account.
When the Deliverability dashboard is enabled, you gain access to reputation,
deliverability, and
other metrics for the domains that you use to send email using Amazon Pinpoint.
You also gain the
ability to perform predictive inbox placement tests.
When you use the Deliverability dashboard, you pay a monthly subscription
charge, in addition
to any other fees that you accrue by using Amazon Pinpoint. For more information
about the
features and cost of a Deliverability dashboard subscription, see [Amazon Pinpoint Pricing](http://aws.amazon.com/pinpoint/pricing/).
"""
@spec get_deliverability_dashboard_options(map(), list()) ::
{:ok, get_deliverability_dashboard_options_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_deliverability_dashboard_options_errors()}
def get_deliverability_dashboard_options(%Client{} = client, options \\ []) do
url_path = "/v1/email/deliverability-dashboard"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve the results of a predictive inbox placement test.
"""
@spec get_deliverability_test_report(map(), String.t() | atom(), list()) ::
{:ok, get_deliverability_test_report_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_deliverability_test_report_errors()}
def get_deliverability_test_report(%Client{} = client, report_id, options \\ []) do
url_path = "/v1/email/deliverability-dashboard/test-reports/#{AWS.Util.encode_uri(report_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve all the deliverability data for a specific campaign.
This data is available
for a campaign only if the campaign sent email by using a domain that the
Deliverability dashboard is enabled for (`PutDeliverabilityDashboardOption`
operation).
"""
@spec get_domain_deliverability_campaign(map(), String.t() | atom(), list()) ::
{:ok, get_domain_deliverability_campaign_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_domain_deliverability_campaign_errors()}
def get_domain_deliverability_campaign(%Client{} = client, campaign_id, options \\ []) do
url_path = "/v1/email/deliverability-dashboard/campaigns/#{AWS.Util.encode_uri(campaign_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve inbox placement and engagement rates for the domains that you use to
send
email.
"""
@spec get_domain_statistics_report(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
list()
) ::
{:ok, get_domain_statistics_report_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_domain_statistics_report_errors()}
def get_domain_statistics_report(
%Client{} = client,
domain,
end_date,
start_date,
options \\ []
) do
url_path =
"/v1/email/deliverability-dashboard/statistics-report/#{AWS.Util.encode_uri(domain)}"
headers = []
query_params = []
query_params =
if !is_nil(start_date) do
[{"StartDate", start_date} | query_params]
else
query_params
end
query_params =
if !is_nil(end_date) do
[{"EndDate", end_date} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Provides information about a specific identity associated with your Amazon
Pinpoint account,
including the identity's verification status, its DKIM authentication status,
and its
custom Mail-From settings.
"""
@spec get_email_identity(map(), String.t() | atom(), list()) ::
{:ok, get_email_identity_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_email_identity_errors()}
def get_email_identity(%Client{} = client, email_identity, options \\ []) do
url_path = "/v1/email/identities/#{AWS.Util.encode_uri(email_identity)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
List all of the configuration sets associated with your Amazon Pinpoint account
in the current
region.
In Amazon Pinpoint, *configuration sets* are groups of rules that you can
apply to the emails you send. You apply a configuration set to an email by
including a
reference to the configuration set in the headers of the email. When you apply a
configuration set to an email, all of the rules in that configuration set are
applied to
the email.
"""
@spec list_configuration_sets(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_configuration_sets_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_configuration_sets_errors()}
def list_configuration_sets(
%Client{} = client,
next_token \\ nil,
page_size \\ nil,
options \\ []
) do
url_path = "/v1/email/configuration-sets"
headers = []
query_params = []
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
List all of the dedicated IP pools that exist in your Amazon Pinpoint account in
the current
AWS Region.
"""
@spec list_dedicated_ip_pools(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_dedicated_ip_pools_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_dedicated_ip_pools_errors()}
def list_dedicated_ip_pools(
%Client{} = client,
next_token \\ nil,
page_size \\ nil,
options \\ []
) do
url_path = "/v1/email/dedicated-ip-pools"
headers = []
query_params = []
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Show a list of the predictive inbox placement tests that you've performed,
regardless of their statuses.
For
predictive inbox placement tests that are complete, you can use the
`GetDeliverabilityTestReport`
operation to view the results.
"""
@spec list_deliverability_test_reports(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_deliverability_test_reports_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_deliverability_test_reports_errors()}
def list_deliverability_test_reports(
%Client{} = client,
next_token \\ nil,
page_size \\ nil,
options \\ []
) do
url_path = "/v1/email/deliverability-dashboard/test-reports"
headers = []
query_params = []
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve deliverability data for all the campaigns that used a specific domain
to send
email during a specified time range.
This data is available for a domain only if you
enabled the Deliverability dashboard (`PutDeliverabilityDashboardOption`
operation)
for the domain.
"""
@spec list_domain_deliverability_campaigns(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom(),
list()
) ::
{:ok, list_domain_deliverability_campaigns_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_domain_deliverability_campaigns_errors()}
def list_domain_deliverability_campaigns(
%Client{} = client,
subscribed_domain,
end_date,
next_token \\ nil,
page_size \\ nil,
start_date,
options \\ []
) do
url_path =
"/v1/email/deliverability-dashboard/domains/#{AWS.Util.encode_uri(subscribed_domain)}/campaigns"
headers = []
query_params = []
query_params =
if !is_nil(start_date) do
[{"StartDate", start_date} | query_params]
else
query_params
end
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(end_date) do
[{"EndDate", end_date} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of all of the email identities that are associated with your
Amazon Pinpoint
account.
An identity can be either an email address or a domain. This operation returns
identities that are verified as well as those that aren't.
"""
@spec list_email_identities(map(), String.t() | atom() | nil, String.t() | atom() | nil, list()) ::
{:ok, list_email_identities_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_email_identities_errors()}
def list_email_identities(
%Client{} = client,
next_token \\ nil,
page_size \\ nil,
options \\ []
) do
url_path = "/v1/email/identities"
headers = []
query_params = []
query_params =
if !is_nil(page_size) do
[{"PageSize", page_size} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"NextToken", next_token} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Retrieve a list of the tags (keys and values) that are associated with a
specified
resource.
A *tag* is a label that you optionally define and associate
with a resource in Amazon Pinpoint. Each tag consists of a required *tag
key* and an optional associated *tag value*. A tag key
is a general label that acts as a category for more specific tag values. A tag
value
acts as a descriptor within a tag key.
"""
@spec list_tags_for_resource(map(), String.t() | atom(), list()) ::
{:ok, list_tags_for_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_tags_for_resource_errors()}
def list_tags_for_resource(%Client{} = client, resource_arn, options \\ []) do
url_path = "/v1/email/tags"
headers = []
query_params = []
query_params =
if !is_nil(resource_arn) do
[{"ResourceArn", resource_arn} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Enable or disable the automatic warm-up feature for dedicated IP addresses.
"""
@spec put_account_dedicated_ip_warmup_attributes(
map(),
put_account_dedicated_ip_warmup_attributes_request(),
list()
) ::
{:ok, put_account_dedicated_ip_warmup_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_account_dedicated_ip_warmup_attributes_errors()}
def put_account_dedicated_ip_warmup_attributes(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/account/dedicated-ips/warmup"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Enable or disable the ability of your account to send email.
"""
@spec put_account_sending_attributes(map(), put_account_sending_attributes_request(), list()) ::
{:ok, put_account_sending_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_account_sending_attributes_errors()}
def put_account_sending_attributes(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/account/sending"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Associate a configuration set with a dedicated IP pool.
You can use dedicated IP pools
to create groups of dedicated IP addresses for sending specific types of email.
"""
@spec put_configuration_set_delivery_options(
map(),
String.t() | atom(),
put_configuration_set_delivery_options_request(),
list()
) ::
{:ok, put_configuration_set_delivery_options_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_configuration_set_delivery_options_errors()}
def put_configuration_set_delivery_options(
%Client{} = client,
configuration_set_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/delivery-options"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Enable or disable collection of reputation metrics for emails that you send
using a
particular configuration set in a specific AWS Region.
"""
@spec put_configuration_set_reputation_options(
map(),
String.t() | atom(),
put_configuration_set_reputation_options_request(),
list()
) ::
{:ok, put_configuration_set_reputation_options_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_configuration_set_reputation_options_errors()}
def put_configuration_set_reputation_options(
%Client{} = client,
configuration_set_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/reputation-options"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Enable or disable email sending for messages that use a particular configuration
set
in a specific AWS Region.
"""
@spec put_configuration_set_sending_options(
map(),
String.t() | atom(),
put_configuration_set_sending_options_request(),
list()
) ::
{:ok, put_configuration_set_sending_options_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_configuration_set_sending_options_errors()}
def put_configuration_set_sending_options(
%Client{} = client,
configuration_set_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/sending"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Specify a custom domain to use for open and click tracking elements in email
that you
send using Amazon Pinpoint.
"""
@spec put_configuration_set_tracking_options(
map(),
String.t() | atom(),
put_configuration_set_tracking_options_request(),
list()
) ::
{:ok, put_configuration_set_tracking_options_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_configuration_set_tracking_options_errors()}
def put_configuration_set_tracking_options(
%Client{} = client,
configuration_set_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/tracking-options"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Move a dedicated IP address to an existing dedicated IP pool.
The dedicated IP address that you specify must already exist, and must be
associated with your Amazon Pinpoint account.
The dedicated IP pool you specify must already exist. You can create a new pool
by
using the `CreateDedicatedIpPool` operation.
"""
@spec put_dedicated_ip_in_pool(
map(),
String.t() | atom(),
put_dedicated_ip_in_pool_request(),
list()
) ::
{:ok, put_dedicated_ip_in_pool_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_dedicated_ip_in_pool_errors()}
def put_dedicated_ip_in_pool(%Client{} = client, ip, input, options \\ []) do
url_path = "/v1/email/dedicated-ips/#{AWS.Util.encode_uri(ip)}/pool"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@spec put_dedicated_ip_warmup_attributes(
map(),
String.t() | atom(),
put_dedicated_ip_warmup_attributes_request(),
list()
) ::
{:ok, put_dedicated_ip_warmup_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_dedicated_ip_warmup_attributes_errors()}
def put_dedicated_ip_warmup_attributes(%Client{} = client, ip, input, options \\ []) do
url_path = "/v1/email/dedicated-ips/#{AWS.Util.encode_uri(ip)}/warmup"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Enable or disable the Deliverability dashboard for your Amazon Pinpoint account.
When you enable the
Deliverability dashboard, you gain access to reputation, deliverability, and
other metrics for
the domains that you use to send email using Amazon Pinpoint. You also gain the
ability to perform
predictive inbox placement tests.
When you use the Deliverability dashboard, you pay a monthly subscription
charge, in addition
to any other fees that you accrue by using Amazon Pinpoint. For more information
about the
features and cost of a Deliverability dashboard subscription, see [Amazon Pinpoint Pricing](http://aws.amazon.com/pinpoint/pricing/).
"""
@spec put_deliverability_dashboard_option(
map(),
put_deliverability_dashboard_option_request(),
list()
) ::
{:ok, put_deliverability_dashboard_option_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_deliverability_dashboard_option_errors()}
def put_deliverability_dashboard_option(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/deliverability-dashboard"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Used to enable or disable DKIM authentication for an email identity.
"""
@spec put_email_identity_dkim_attributes(
map(),
String.t() | atom(),
put_email_identity_dkim_attributes_request(),
list()
) ::
{:ok, put_email_identity_dkim_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_email_identity_dkim_attributes_errors()}
def put_email_identity_dkim_attributes(%Client{} = client, email_identity, input, options \\ []) do
url_path = "/v1/email/identities/#{AWS.Util.encode_uri(email_identity)}/dkim"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Used to enable or disable feedback forwarding for an identity.
This setting determines
what happens when an identity is used to send an email that results in a bounce
or
complaint event.
When you enable feedback forwarding, Amazon Pinpoint sends you email
notifications when bounce
or complaint events occur. Amazon Pinpoint sends this notification to the
address that you
specified in the Return-Path header of the original email.
When you disable feedback forwarding, Amazon Pinpoint sends notifications
through other
mechanisms, such as by notifying an Amazon SNS topic. You're required to have a
method of
tracking bounces and complaints. If you haven't set up another mechanism for
receiving
bounce or complaint notifications, Amazon Pinpoint sends an email notification
when these events
occur (even if this setting is disabled).
"""
@spec put_email_identity_feedback_attributes(
map(),
String.t() | atom(),
put_email_identity_feedback_attributes_request(),
list()
) ::
{:ok, put_email_identity_feedback_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_email_identity_feedback_attributes_errors()}
def put_email_identity_feedback_attributes(
%Client{} = client,
email_identity,
input,
options \\ []
) do
url_path = "/v1/email/identities/#{AWS.Util.encode_uri(email_identity)}/feedback"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Used to enable or disable the custom Mail-From domain configuration for an email
identity.
"""
@spec put_email_identity_mail_from_attributes(
map(),
String.t() | atom(),
put_email_identity_mail_from_attributes_request(),
list()
) ::
{:ok, put_email_identity_mail_from_attributes_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_email_identity_mail_from_attributes_errors()}
def put_email_identity_mail_from_attributes(
%Client{} = client,
email_identity,
input,
options \\ []
) do
url_path = "/v1/email/identities/#{AWS.Util.encode_uri(email_identity)}/mail-from"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Sends an email message.
You can use the Amazon Pinpoint Email API to send two types of
messages:
*
**Simple** – A standard email message. When
you create this type of message, you specify the sender, the recipient, and the
message body, and Amazon Pinpoint assembles the message for you.
*
**Raw** – A raw, MIME-formatted email
message. When you send this type of email, you have to specify all of the
message headers, as well as the message body. You can use this message type to
send messages that contain attachments. The message that you specify has to be a
valid MIME message.
"""
@spec send_email(map(), send_email_request(), list()) ::
{:ok, send_email_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, send_email_errors()}
def send_email(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/outbound-emails"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Add one or more tags (keys and values) to a specified resource.
A
*tag* is a label that you optionally define and associate with a
resource in Amazon Pinpoint. Tags can help you categorize and manage resources
in different ways,
such as by purpose, owner, environment, or other criteria. A resource can have
as many
as 50 tags.
Each tag consists of a required *tag key* and an
associated *tag value*, both of which you define. A tag key is a
general label that acts as a category for more specific tag values. A tag value
acts as
a descriptor within a tag key.
"""
@spec tag_resource(map(), tag_resource_request(), list()) ::
{:ok, tag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, tag_resource_errors()}
def tag_resource(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/tags"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Remove one or more tags (keys and values) from a specified resource.
"""
@spec untag_resource(map(), untag_resource_request(), list()) ::
{:ok, untag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, untag_resource_errors()}
def untag_resource(%Client{} = client, input, options \\ []) do
url_path = "/v1/email/tags"
headers = []
custom_headers = []
{query_params, input} =
[
{"ResourceArn", "ResourceArn"},
{"TagKeys", "TagKeys"}
]
|> Request.build_params(input)
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Update the configuration of an event destination for a configuration set.
In Amazon Pinpoint, *events* include message sends, deliveries, opens,
clicks, bounces, and complaints. *Event destinations* are places that
you can send information about these events to. For example, you can send event
data to
Amazon SNS to receive notifications when you receive bounces or complaints, or
you can use
Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.
"""
@spec update_configuration_set_event_destination(
map(),
String.t() | atom(),
String.t() | atom(),
update_configuration_set_event_destination_request(),
list()
) ::
{:ok, update_configuration_set_event_destination_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_configuration_set_event_destination_errors()}
def update_configuration_set_event_destination(
%Client{} = client,
configuration_set_name,
event_destination_name,
input,
options \\ []
) do
url_path =
"/v1/email/configuration-sets/#{AWS.Util.encode_uri(configuration_set_name)}/event-destinations/#{AWS.Util.encode_uri(event_destination_name)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
end