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

# AmazonSQSOptions

> Defines the configuration options available for SimpleMessageBus queues backed by Amazon SQS.

## Definition

**Assembly:** CloudNimble.SimpleMessageBus.Amazon.Core.dll

**Namespace:** CloudNimble.SimpleMessageBus.Amazon.Core

**Inheritance:** CloudNimble.WebJobs.Extensions.Amazon.SQS.SQSOptions

## Syntax

```csharp theme={"dark"}
CloudNimble.SimpleMessageBus.Amazon.Core.AmazonSQSOptions
```

## Summary

Defines the configuration options available for SimpleMessageBus queues backed by Amazon SQS.

## Remarks

This class extends the base SQS options to provide SimpleMessageBus-specific configuration for Amazon SQS queues.
It defines the three-queue pattern used by SimpleMessageBus: a main queue for processing, a poison queue for
failed messages, and an optional completed queue for successfully processed messages.

The SimpleMessageBus Amazon SQS provider follows AWS best practices for message processing and error handling,
including dead letter queues, visibility timeouts, and message retention policies.

## Examples

```csharp theme={"dark"}
// Configure Amazon SQS options in appsettings.json
{
  "SimpleMessageBus": {
    "Amazon": {
      "QueueName": "myapp-messages",
      "PoisonQueueName": "myapp-messages-poison",
      "CompletedQueueName": "myapp-messages-completed",
      "Region": "us-west-2",
      "VisibilityTimeoutInSeconds": 300,
      "WaitTimeSeconds": 20
    }
  }
}

// Or configure programmatically
services.Configure&lt;AmazonSQSOptions&gt;(options =&gt;
{
    options.QueueName = "myapp-messages";
    options.PoisonQueueName = "myapp-messages-poison";
    options.CompletedQueueName = "myapp-messages-completed";
    options.Region = "us-west-2";
});
```

## Constructors

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> .ctor

#### Syntax

```csharp theme={"dark"}
public AmazonSQSOptions()
```

## Properties

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> CompletedQueueName

Gets or sets the name of the queue to process for completed messages.

#### Syntax

```csharp theme={"dark"}
public string CompletedQueueName { get; set; }
```

#### Property Value

Type: `string`
The SQS queue name where successfully processed messages are optionally stored.
This queue provides an audit trail of completed processing and can be used for analytics or compliance.

#### Examples

```csharp theme={"dark"}
options.CompletedQueueName = "myapp-messages-completed";
// This queue will contain messages that were successfully processed
```

#### Remarks

The completed queue is optional. If not specified, successfully processed messages are simply deleted
from the main queue. When specified, messages are moved to this queue after successful processing,
allowing for audit trails and processing analytics.

Queue names must follow AWS SQS naming conventions: 1-80 characters, alphanumeric plus hyphens and underscores.

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> PoisonQueueName

Gets or sets the name of the queue to process for poison messages.

#### Syntax

```csharp theme={"dark"}
public string PoisonQueueName { get; set; }
```

#### Property Value

Type: `string`
The SQS queue name where messages that fail processing multiple times are moved.
This queue serves as a dead letter queue for failed message processing.

#### Examples

```csharp theme={"dark"}
options.PoisonQueueName = "myapp-messages-poison";
// Configure with longer retention for investigation
// Queue should be monitored for failure patterns
```

#### Remarks

The poison queue (dead letter queue) contains messages that have exceeded the maximum retry attempts
and could not be processed successfully. These messages require manual intervention or specialized
error handling workflows. The poison queue should have longer message retention periods to allow
for investigation and recovery.

It's recommended to monitor this queue for volume and patterns of failures, as high poison message
volumes may indicate systemic issues in message processing or external dependencies.

Queue names must follow AWS SQS naming conventions: 1-80 characters, alphanumeric plus hyphens and underscores.

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> QueueName

Gets or sets the name of the queue to process for the main messages.

#### Syntax

```csharp theme={"dark"}
public string QueueName { get; set; }
```

#### Property Value

Type: `string`
The primary SQS queue name where messages are published and from which they are consumed for processing.
This is the main message processing queue in the SimpleMessageBus workflow.

#### Examples

```csharp theme={"dark"}
options.QueueName = "myapp-messages";
// or environment-specific naming
options.QueueName = $"myapp-{environment}-messages";
```

#### Remarks

This is the primary queue where all messages are initially published and from which message handlers
consume messages for processing. This queue should be configured with appropriate visibility timeouts,
message retention periods, and dead letter queue policies.

Queue names must follow AWS SQS naming conventions: 1-80 characters, alphanumeric plus hyphens and underscores.
Consider using environment-specific prefixes for queue names to avoid conflicts between environments.
