ExAws.SQS.Client behaviour

The purpose of this module is to surface the ExAws.SQS API tied to a single configuration chose, such that it does not need passed in with every request

Usage:

defmodule MyApp.SQS do
  use ExAws.SQS.Client, otp_app: :my_otp_app
end

In your config

config :my_otp_app, ExAws,
  sqs: [], #SQS config goes here
Source

Types

sqs_permission :: :send_message | :receive_message | :delete_message | :change_message_visibility | :get_queue_attributes

sqs_acl :: %{binary => :all | [sqs_permission, ...]}

sqs_message_attribute_name :: :sender_id | :sent_timestamp | :approximate_receive_count | :approximate_first_receive_timestamp | :wait_time_seconds | :receive_message_wait_time_seconds

sqs_queue_attribute_name :: :policy | :visibility_timeout | :maximum_message_size | :message_retention_period | :approximate_number_of_messages | :approximate_number_of_messags_not_visible | :created_timestamp | :last_modified_timestamp | :queue_arn | :approximate_number_of_messages_delayed | :delay_seconds | :receive_message_wait_time_seconds | :redrive_policy

visibility_timeout :: 0..43200

queue_attributes :: [policy: binary, visibility_timeout: visibility_timeout, maximum_message_size: 1024..262144, message_retention_period: 60..1209600, approximate_number_of_messages: binary, approximate_number_of_messags_not_visible: binary, created_timestamp: binary, last_modified_timestamp: binary, queue_arn: binary, approximate_number_of_messages_delayed: binary, delay_seconds: 0..900, receive_message_wait_time_seconds: 0..20, redrive_policy: binary]

sqs_message_attribute :: %{name: binary, data_type: :string | :binary | :number, custom_type: binary | none, value: binary | number}

message_visibility_batch_item :: %{id: binary, receipt_handle: binary, visibility_timeout: visibility_timeout}

delete_message_batch_item :: %{id: binary, receipt_handle: binary}

receive_message_opts :: [attribute_names: :all | [sqs_message_attribute_name, ...], max_number_of_messages: 1..10, visibility_timeout: 0..43200, wait_time_seconds: 0..20]

sqs_message_opts :: [delay_seconds: 0..900, message_attributes: sqs_message_attribute | [sqs_message_attribute, ...]]

sqs_batch_message :: binary | [id: binary, message_body: binary, delay_seconds: 0..900, message_attributes: sqs_message_attribute | [sqs_message_attribute, ...]]

Callbacks

add_permission/3

Specs:

  • add_permission(queue_url :: binary, label :: binary, permissions :: sqs_acl) :: SQS.Request.response_t

Adds a permission with the provided label to the Queue for a specific action for a specific account.

Source
change_message_visibility/3

Specs:

  • change_message_visibility(queue_url :: binary, receipt_handle :: binary, visibility_timeout :: visibility_timeout) :: SQS.Request.response_t

Extends the read lock timeout for the specified message from the specified queue to the specified value

Source
change_message_visibility_batch/2

Specs:

Extends the read lock timeout for a batch of 1..10 messages

Source
create_queue/1

Specs:

  • create_queue(queue_name :: binary) :: SQS.Request.response_t

Create queue

Source
create_queue/2

Specs:

  • create_queue(queue_name :: binary, queue_attributes :: queue_attributes) :: SQS.Request.response_t
Source
delete_message/2

Specs:

  • delete_message(queue_url :: binary, receipt_handle :: binary) :: SQS.Request.response_t

Delete a message from a SQS Queue

Source
delete_message_batch/2

Specs:

Deletes a list of messages from a SQS Queue in a single request

Source
delete_queue/1

Specs:

  • delete_queue(queue_url :: binary) :: SQS.Request.response_t

Delete a queue

Source
get_queue_attributes/1

Specs:

  • get_queue_attributes(queue_url :: binary) :: SQS.Request.response_t

Gets attributes of a SQS Queue

Source
get_queue_attributes/2

Specs:

  • get_queue_attributes(queue_url :: binary, attribute_names :: :all | [sqs_queue_attribute_name, ...]) :: SQS.Request.response_t
Source
get_queue_url/1

Specs:

  • get_queue_url(queue_name :: binary) :: SQS.Request.response_t

Get queue URL

Source
get_queue_url/2

Specs:

  • get_queue_url(queue_name :: binary, opts :: [{:queue_owner_aws_account_id, binary}]) :: SQS.Request.response_t
Source
list_dead_letter_source_queues/1

Specs:

  • list_dead_letter_source_queues(queue_url :: binary) :: SQS.Request.response_t

Retrieves the dead letter source queues for a given SQS Queue

Source
list_queues/0

Specs:

  • list_queues :: SQS.Request.response_t

Retrieves a list of all the SQS Queues

Source
list_queues/1

Specs:

  • list_queues(opts :: [{:queue_name_prefix, binary}]) :: SQS.Request.response_t
Source
purge_queue/1

Specs:

  • purge_queue(queue_url :: binary) :: SQS.Request.response_t

Purge all messages in a SQS Queue

Source
receive_message/1

Specs:

  • receive_message(queue_name :: binary) :: SQS.Request.response_t

Read messages from a SQS Queue

Source
receive_message/2

Specs:

Source
remove_permission/2

Specs:

  • remove_permission(queue_name :: binary, label :: binary) :: SQS.Request.response_t

Removes permission with the given label from the Queue

Source
send_message/2

Specs:

  • send_message(queue_name :: binary, message_body :: binary) :: SQS.Request.response_t

Send a message to a SQS Queue

Source
send_message/3

Specs:

  • send_message(queue_name :: binary, message_body :: binary, opts :: sqs_message_opts) :: SQS.Request.response_t
Source
send_message_batch/2

Specs:

  • send_message_batch(queue_name :: binary, messages :: [sqs_batch_message, ...]) :: SQS.Request.response_t

Send up to 10 messages to a SQS Queue in a single request

Source
set_queue_attributes/2

Specs:

  • set_queue_attributes(queue_name :: binary, attributes :: queue_attributes) :: SQS.Request.response_t

Set attributes of a SQS Queue

Source