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
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
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.
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
Specs:
- change_message_visibility_batch(queue_url :: binary, opts :: [message_visibility_batch_item, ...]) :: SQS.Request.response_t
Extends the read lock timeout for a batch of 1..10 messages
Specs:
- create_queue(queue_name :: binary) :: SQS.Request.response_t
Create queue
Specs:
- create_queue(queue_name :: binary, queue_attributes :: queue_attributes) :: SQS.Request.response_t
Specs:
- delete_message(queue_url :: binary, receipt_handle :: binary) :: SQS.Request.response_t
Delete a message from a SQS Queue
Specs:
- delete_message_batch(queue_url :: binary, message_receipts :: [delete_message_batch_item, ...]) :: SQS.Request.response_t
Deletes a list of messages from a SQS Queue in a single request
Specs:
- delete_queue(queue_url :: binary) :: SQS.Request.response_t
Delete a queue
Specs:
- get_queue_attributes(queue_url :: binary) :: SQS.Request.response_t
Gets attributes of a SQS Queue
Specs:
- get_queue_attributes(queue_url :: binary, attribute_names :: :all | [sqs_queue_attribute_name, ...]) :: SQS.Request.response_t
Specs:
- get_queue_url(queue_name :: binary) :: SQS.Request.response_t
Get queue URL
Specs:
- get_queue_url(queue_name :: binary, opts :: [{:queue_owner_aws_account_id, binary}]) :: SQS.Request.response_t
Specs:
- list_dead_letter_source_queues(queue_url :: binary) :: SQS.Request.response_t
Retrieves the dead letter source queues for a given SQS Queue
Specs:
- list_queues :: SQS.Request.response_t
Retrieves a list of all the SQS Queues
Specs:
- list_queues(opts :: [{:queue_name_prefix, binary}]) :: SQS.Request.response_t
Specs:
- purge_queue(queue_url :: binary) :: SQS.Request.response_t
Purge all messages in a SQS Queue
Specs:
- receive_message(queue_name :: binary) :: SQS.Request.response_t
Read messages from a SQS Queue
Specs:
- receive_message(queue_name :: binary, opts :: receive_message_opts) :: SQS.Request.response_t
Specs:
- remove_permission(queue_name :: binary, label :: binary) :: SQS.Request.response_t
Removes permission with the given label from the Queue
Specs:
- send_message(queue_name :: binary, message_body :: binary) :: SQS.Request.response_t
Send a message to a SQS Queue
Specs:
- send_message(queue_name :: binary, message_body :: binary, opts :: sqs_message_opts) :: SQS.Request.response_t
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
Specs:
- set_queue_attributes(queue_name :: binary, attributes :: queue_attributes) :: SQS.Request.response_t
Set attributes of a SQS Queue