ExAws.SQS v3.0.0 ExAws.SQS

Operations on AWS SQS

Link to this section Summary

Functions

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

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

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

Delete a message from a SQS Queue

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

Delete a queue

Retrieves the dead letter source queues for a given SQS Queue

Retrieves a list of all the SQS Queues

Purge all messages in a SQS Queue

Read messages from a SQS Queue

Removes permission with the given label from the Queue

Send a message to a SQS Queue

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

Link to this section Types

Link to this type

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

Link to this type

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

Link to this type

queue_attributes()
queue_attributes() :: [
  policy: binary(),
  visibility_timeout: visibility_timeout(),
  maximum_message_size: 1024..262_144,
  message_retention_period: 60..1_209_600,
  approximate_number_of_messages: binary(),
  approximate_number_of_messages_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(),
  fifo_queue: boolean(),
  content_based_deduplication: boolean()
]

Link to this type

receive_message_opts()
receive_message_opts() :: [
  attribute_names: :all | [sqs_message_attribute_name(), ...],
  message_attribute_names: :all | [String.Chars.t(), ...],
  max_number_of_messages: 1..10,
  visibility_timeout: 0..43200,
  wait_time_seconds: 0..20
]

Link to this type

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

Link to this type

sqs_batch_message()
sqs_batch_message() ::
  binary()
  | [
      id: binary(),
      message_body: binary(),
      delay_seconds: 0..900,
      message_attributes:
        sqs_message_attribute() | [sqs_message_attribute(), ...],
      message_deduplication_id: binary(),
      message_group_id: binary()
    ]

Link to this type

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

Link to this type

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

Link to this type

sqs_message_opts()
sqs_message_opts() :: [
  delay_seconds: 0..900,
  message_attributes: sqs_message_attribute() | [sqs_message_attribute(), ...],
  message_deduplication_id: binary(),
  message_group_id: binary()
]

Link to this type

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

Link to this type

sqs_queue_attribute_name()
sqs_queue_attribute_name() ::
  :policy
  | :visibility_timeout
  | :maximum_message_size
  | :message_retention_period
  | :approximate_number_of_messages
  | :approximate_number_of_messages_not_visible
  | :created_timestamp
  | :last_modified_timestamp
  | :queue_arn
  | :approximate_number_of_messages_delayed
  | :delay_seconds
  | :receive_message_wait_time_seconds
  | :redrive_policy
  | :fifo_queue
  | :content_based_deduplication

Link to this type

visibility_timeout()
visibility_timeout() :: 0..43200

Link to this section Functions

Link to this function

add_permission(queue_url, label, permissions \\ %{})
add_permission(
  queue_url :: binary(),
  label :: binary(),
  permissions :: sqs_acl()
) :: ExAws.Operation.Query.t()

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

Link to this function

change_message_visibility(queue_url, receipt_handle, visibility_timeout)
change_message_visibility(
  queue_url :: binary(),
  receipt_handle :: binary(),
  visibility_timeout :: visibility_timeout()
) :: ExAws.Operation.Query.t()

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

Link to this function

change_message_visibility_batch(queue_url, messages)
change_message_visibility_batch(
  queue_url :: binary(),
  opts :: [message_visibility_batch_item(), ...]
) :: ExAws.Operation.Query.t()

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

Link to this function

create_queue(queue_name, attributes \\ [])
create_queue(queue_name :: binary(), queue_attributes :: queue_attributes()) ::
  ExAws.Operation.Query.t()

Create queue

Link to this function

delete_message(queue_url, receipt_handle)
delete_message(queue_url :: binary(), receipt_handle :: binary()) ::
  ExAws.Operation.Query.t()

Delete a message from a SQS Queue

Link to this function

delete_message_batch(queue_url, messages)
delete_message_batch(
  queue_url :: binary(),
  message_receipts :: [delete_message_batch_item(), ...]
) :: ExAws.Operation.Query.t()

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

Link to this function

delete_queue(queue_url)
delete_queue(queue_url :: binary()) :: ExAws.Operation.Query.t()

Delete a queue

Link to this function

get_queue_attributes(queue_url, attributes \\ :all)
get_queue_attributes(
  queue_url :: binary(),
  attribute_names :: :all | [sqs_queue_attribute_name(), ...]
) :: ExAws.Operation.Query.t()

Gets attributes of a SQS Queue

Link to this function

get_queue_url(queue_name, opts \\ [])
get_queue_url(
  queue_name :: binary(),
  opts :: [{:queue_owner_aws_account_id, binary()}]
) :: ExAws.Operation.Query.t()

Get queue URL

Link to this function

list_dead_letter_source_queues(queue_url)
list_dead_letter_source_queues(queue_url :: binary()) ::
  ExAws.Operation.Query.t()

Retrieves the dead letter source queues for a given SQS Queue

Link to this function

list_queues(opts \\ [])
list_queues(opts :: [{:queue_name_prefix, binary()}]) ::
  ExAws.Operation.Query.t()

Retrieves a list of all the SQS Queues

Link to this function

purge_queue(queue_url)
purge_queue(queue_url :: binary()) :: ExAws.Operation.Query.t()

Purge all messages in a SQS Queue

Link to this function

receive_message(queue_url, opts \\ [])
receive_message(queue_url :: binary(), opts :: receive_message_opts()) ::
  ExAws.Operation.Query.t()

Read messages from a SQS Queue

Link to this function

remove_permission(queue_url, label)
remove_permission(queue_url :: binary(), label :: binary()) ::
  ExAws.Operation.Query.t()

Removes permission with the given label from the Queue

Link to this function

send_message(queue_url, message, opts \\ [])
send_message(
  queue_url :: binary(),
  message_body :: binary(),
  opts :: sqs_message_opts()
) :: ExAws.Operation.Query.t()

Send a message to a SQS Queue

Link to this function

send_message_batch(queue_url, messages)
send_message_batch(
  queue_url :: binary(),
  messages :: [sqs_batch_message(), ...]
) :: ExAws.Operation.Query.t()

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

Link to this function

set_queue_attributes(queue_url, attributes \\ [])
set_queue_attributes(queue_url :: binary(), attributes :: queue_attributes()) ::
  ExAws.Operation.Query.t()

Set attributes of a SQS Queue