ExAws.SNS (ExAws.SNS v2.3.5)

View Source

Operations on AWS Simple Notification Service (SNS).

See http://docs.aws.amazon.com/sns/latest/api/API_Operations.html for details.

Summary

Functions

Check if phone number is opted out.

Delete topic.

Get endpoint attributes.

Get subscription attributes.

Get topic attributes.

List endpoints and endpoint attributes for devices in a supported push notification service.

List phone numbers opted out.

List platform applications.

List Subscriptions.

Opt in phone number.

Publish message to a target/topic ARN.

Verify message signature.

Types

endpoint_arn()

@type endpoint_arn() :: binary()

endpoint_attributes()

@type endpoint_attributes() :: [
  token: binary(),
  enabled: boolean(),
  custom_user_data: binary()
]

list_endpoints_by_platform_application_opt()

@type list_endpoints_by_platform_application_opt() :: {:next_token, binary()}

list_subscriptions_by_topic_opt()

@type list_subscriptions_by_topic_opt() :: {:next_token, binary()}

message_attribute()

@type message_attribute() :: %{
  name: binary(),
  data_type: :string | :number | :binary | :string_array,
  value: {:string, binary()} | {:binary, binary()}
}

platform_application_arn()

@type platform_application_arn() :: binary()

publish_batch_request_entry()

@type publish_batch_request_entry() :: %{
  :id => binary(),
  :message => binary(),
  optional(:message_attributes) => [message_attribute()],
  optional(:message_deduplication_id) => binary(),
  optional(:message_group_id) => binary(),
  optional(:message_structure) => binary(),
  optional(:subject) => binary()
}

publish_opts()

@type publish_opts() :: [
  message_attributes: [message_attribute()],
  message_structure: :json,
  subject: binary(),
  phone_number: binary(),
  target_arn: binary(),
  topic_arn: binary(),
  message_group_id: binary(),
  message_deduplication_id: binary()
]

subscribe_opt()

@type subscribe_opt() :: {:return_subscription_arn, boolean()}

subscription_attribute_name()

@type subscription_attribute_name() ::
  :delivery_policy | :filter_policy | :raw_message_delivery

topic_arn()

@type topic_arn() :: binary()

topic_attribute_name()

@type topic_attribute_name() :: :policy | :display_name | :delivery_policy

topic_attributes()

@type topic_attributes() :: [
  {atom(), binary()} | {atom(), boolean()} | {atom(), integer()}
]

topic_name()

@type topic_name() :: binary()

Functions

build_message_attribute(arg, params)

check_if_phone_number_is_opted_out(phone_number)

@spec check_if_phone_number_is_opted_out(phone_number :: binary()) ::
  ExAws.Operation.Query.t()

Check if phone number is opted out.

confirm_subscription(topic_arn, token, authenticate_on_unsubscribe \\ false)

@spec confirm_subscription(
  topic_arn :: binary(),
  token :: binary(),
  authenticate_on_unsubscribe :: boolean()
) :: ExAws.Operation.Query.t()

Confirm Subscription.

create_platform_application(name, platform, attributes)

@spec create_platform_application(
  name :: binary(),
  platform :: binary(),
  attributes :: %{required(String.t()) => String.t()}
) :: ExAws.Operation.Query.t()

Create plaform application.

create_platform_endpoint(platform_application_arn, token, custom_user_data \\ nil)

@spec create_platform_endpoint(
  platform_application_arn :: platform_application_arn(),
  token :: binary(),
  custom_user_data :: binary() | nil
) :: ExAws.Operation.Query.t()

Create platform endpoint.

create_topic(topic_name, attributes \\ [])

@spec create_topic(topic_name :: topic_name(), attributes :: topic_attributes()) ::
  ExAws.Operation.Query.t()

Create topic.

delete_endpoint(endpoint_arn)

@spec delete_endpoint(endpoint_arn :: endpoint_arn()) :: ExAws.Operation.Query.t()

Delete endpoint.

delete_platform_application(platform_application_arn)

@spec delete_platform_application(
  platform_application_arn :: platform_application_arn()
) ::
  ExAws.Operation.Query.t()

Delete platform application.

delete_topic(topic_arn)

@spec delete_topic(topic_arn :: topic_arn()) :: ExAws.Operation.Query.t()

Delete topic.

get_endpoint_attributes(endpoint_arn)

@spec get_endpoint_attributes(endpoint_arn :: endpoint_arn()) ::
  ExAws.Operation.Query.t()

Get endpoint attributes.

get_platform_application_attributes(platform_application_arn)

@spec get_platform_application_attributes(
  platform_application_arn :: platform_application_arn()
) ::
  ExAws.Operation.Query.t()

Get platform application attributes.

get_subscription_attributes(subscription_arn)

@spec get_subscription_attributes(subscription_arn :: binary()) ::
  ExAws.Operation.Query.t()

Get subscription attributes.

get_topic_attributes(topic_arn)

@spec get_topic_attributes(topic_arn :: topic_arn()) :: ExAws.Operation.Query.t()

Get topic attributes.

list_endpoints_by_platform_application(platform_application_arn, opts \\ [])

@spec list_endpoints_by_platform_application(topic_arn :: topic_arn(), [
  list_endpoints_by_platform_application_opt()
]) :: ExAws.Operation.Query.t()

List endpoints and endpoint attributes for devices in a supported push notification service.

list_phone_numbers_opted_out()

@spec list_phone_numbers_opted_out() :: ExAws.Operation.Query.t()

List phone numbers opted out.

list_phone_numbers_opted_out(next_token)

@spec list_phone_numbers_opted_out(next_token :: binary()) ::
  ExAws.Operation.Query.t()

list_platform_applications()

@spec list_platform_applications() :: ExAws.Operation.Query.t()

List platform applications.

list_platform_applications(next_token)

@spec list_platform_applications(next_token :: binary()) :: ExAws.Operation.Query.t()

list_subscriptions()

@spec list_subscriptions() :: ExAws.Operation.Query.t()

List Subscriptions.

list_subscriptions(next_token)

@spec list_subscriptions(next_token :: binary()) :: ExAws.Operation.Query.t()

list_subscriptions_by_topic(topic_arn, opts \\ [])

@spec list_subscriptions_by_topic(topic_arn :: topic_arn(), [
  list_subscriptions_by_topic_opt()
]) ::
  ExAws.Operation.Query.t()

List Subscriptions by Topic.

list_topics(opts \\ [])

@spec list_topics(opts :: [{:next_token, binary()}]) :: ExAws.Operation.Query.t()

List topics

opt_in_phone_number(phone_number)

@spec opt_in_phone_number(phone_number :: binary()) :: ExAws.Operation.Query.t()

Opt in phone number.

publish(message, opts)

@spec publish(message :: binary(), opts :: publish_opts()) ::
  ExAws.Operation.Query.t()

Publish message to a target/topic ARN.

You must set either :phone_number, :target_arn or :topic_arn but only one, via the options argument.

Do NOT assume that because your message is a JSON blob that you should set :message_structure to :json. This has a very specific meaning, see http://docs.aws.amazon.com/sns/latest/api/API_Publish.html for details.

publish_batch(publish_batch_requests, topic_arn)

@spec publish_batch(
  publish_batch_requests :: [publish_batch_request_entry(), ...],
  topic_arn :: topic_arn()
) :: ExAws.Operation.Query.t()

set_endpoint_attributes(endpoint_arn, attributes)

@spec set_endpoint_attributes(
  endpoint_arn :: endpoint_arn(),
  attributes :: endpoint_attributes()
) ::
  ExAws.Operation.Query.t()

Set endpoint attributes.

set_subscription_attributes(attribute_name, attribute_value, subscription_arn)

@spec set_subscription_attributes(
  attribute_name :: subscription_attribute_name(),
  attribute_value :: binary(),
  subscription_arn :: binary()
) :: ExAws.Operation.Query.t()

Set subscription attributes.

set_topic_attributes(attribute_name, attribute_value, topic_arn)

@spec set_topic_attributes(
  attribute_name :: topic_attribute_name(),
  attribute_value :: binary(),
  topic_arn :: topic_arn()
) :: ExAws.Operation.Query.t()

Set topic attributes.

subscribe(topic_arn, protocol, endpoint, opts \\ [])

@spec subscribe(topic_arn :: binary(), protocol :: binary(), endpoint :: binary(), [
  subscribe_opt()
]) ::
  ExAws.Operation.Query.t()

Create Subscription.

unsubscribe(subscription_arn)

@spec unsubscribe(subscription_arn :: binary()) :: ExAws.Operation.Query.t()

Unsubscribe.

verify_message(message_params)

@spec verify_message(message_params :: %{required(String.t()) => String.t()}) ::
  :ok | {:error, String.t()}

Verify message signature.