> ## Documentation Index
> Fetch the complete documentation index at: https://major-5cc5eebc-docs-bot-mr2qm9w6-typctx.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS SQS

> Send, receive, and delete messages from AWS SQS queues.

The `SQSResourceClient` allows you to perform operations on AWS SQS queues, such as sending messages, receiving messages, and deleting messages.

## Usage

```typescript theme={null}
import { mySQSClient } from "./clients";

// Send a message to a queue
const sendResult = await mySQSClient.invoke(
  "SendMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    MessageBody: "Hello, SQS!",
  },
  "send-message"
);

if (sendResult.ok) {
  console.log("Message ID:", sendResult.result.data.MessageId);
}

// Receive messages from a queue
const receiveResult = await mySQSClient.invoke(
  "ReceiveMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    MaxNumberOfMessages: 10,
  },
  "receive-messages"
);

if (receiveResult.ok) {
  console.log("Messages:", receiveResult.result.data.Messages);
}

// Delete a message from a queue
const deleteResult = await mySQSClient.invoke(
  "DeleteMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    ReceiptHandle: "message-receipt-handle",
  },
  "delete-message"
);

if (deleteResult.ok) {
  console.log("Message deleted");
}
```

## Inputs

The `invoke` method accepts the following arguments:

<ParamField path="command" type="string" required>
  The SQS command to execute. Supported commands include `"SendMessage"`,
  `"ReceiveMessage"`, `"DeleteMessage"`, `"ListQueues"`,
  `"GetQueueAttributes"`, `"SetQueueAttributes"`.
</ParamField>

<ParamField path="params" type="Record<string, unknown>" required>
  The parameters for the command, matching the AWS SDK input shape (e.g.,
  `QueueUrl`, `MessageBody`, `ReceiptHandle`).
</ParamField>

<ParamField path="invocationKey" type="string" required>
  A unique identifier for this operation.
</ParamField>

<ParamField path="options" type="object">
  Optional configuration object.

  <Expandable title="properties">
    <ParamField path="timeoutMs" type="number">
      Timeout in milliseconds.
    </ParamField>
  </Expandable>
</ParamField>

## Outputs

On success (`ok: true`), the `result` object contains:

<ResponseField name="kind" type="&#x22;queue&#x22;">
  Discriminator for the response type.
</ResponseField>

<ResponseField name="command" type="string">
  The command that was executed.
</ResponseField>

<ResponseField name="data" type="unknown">
  The result data from SQS (e.g., the `MessageId` from a `SendMessage` call, or
  `Messages` from a `ReceiveMessage` call).
</ResponseField>
