> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SQS Message

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

<ComponentMetadata warehouses={["Snowflake", "Amazon Redshift"]} unsupportedWarehouses={["Databricks"]} componentType="Orchestration, Test" connectionInputs="One" connectionOutputs="Unlimited" />

SQS Message lets you post a message to an [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) (SQS) queue. Other applications can read those messages and perform further processing. [FIFO Queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) can be used through this component where available.

The AWS API for SQS list queues has a hard limit of 1000, meaning the retrieval of queue names is limited to the first 1000 that are defined. However, users can add additional queues, which will still validate and function, provided the user enters the queues manually.

If the component requires access to a cloud provider (AWS, Azure, or Google Cloud), it will use credentials as follows:

* If using [Matillion Full SaaS](/docs/guides/runner-overview#matillion-full-saas): The component will use the [cloud credentials](/docs/guides/cloud-credentials) associated with your environment to access resources.
* If using [Hybrid SaaS](/docs/guides/runner-overview#hybrid-saas): By default the component will inherit the agent's execution role (service account role). However, if there are [cloud credentials](/docs/guides/cloud-credentials) associated to your environment, these will overwrite the role.

## Video example

<iframe width="560" height="315" src="https://www.youtube.com/embed/TKaP6a-kSZs?si=o3o7UAQ3HeseDoJv&enablejsapi=1" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen />

## Properties

<ResponseField name="Name" type="string" required>
  A human-readable name for the component.
</ResponseField>

{/* <!-- param-start:[region] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Region" type="drop-down" required>
  The AWS region that the queue is located in. This must be an existing SQS queue.
</ResponseField>

{/* <!-- param-start:[queueName] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Queue Name" type="drop-down" required>
  The name of the queue to write to. Available queues for the selected region are listed.
</ResponseField>

{/* <!-- param-start:[message] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Message" type="string" required>
  The message to post to the designated queue. Multi-line messages can be created. In the Message editor, use Shift + Enter to create a new line. Click **Done** to save the message.

  To use variables in this field, type the name of the variable prefixed by the dollar symbol and surrounded by \{ } brackets, as follows: `${variable}`. Once you type `${`, a drop-down list of autocompleted suggested variables will appear. This list updates as you type; for example, if you type `${date`, functions and variables containing `date` will be listed.
</ResponseField>

{/* <!-- param-start:[messageFormat] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Message Format" type="drop-down" required>
  Messages may be optionally Base64 encoded, or compressed with 'gzip' compression. If compression is chosen, then the compressed data is also Base64 encoded, so it can be transported as plain text.
</ResponseField>

{/* <!-- param-start:[messageGroupId] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Message Group ID" type="string" required>
  Visible only when the above properties specify a valid First-In-First-Out (FIFO) queue. The tag that specifies that a message belongs to a specific message group.
</ResponseField>

{/* <!-- param-start:[messageDeduplicationId] | warehouses: [snowflake, redshift] --> */}

<ResponseField name="Message Duplication ID" type="string">
  Visible only when the above properties specify a valid First-In-First-Out (FIFO) queue. The token used for deduplication of sent messages. The default is blank (no token).
</ResponseField>
