
terraform-aws-arc-sns¶
Module:
sourcefuse/arc-sns/awsRegistry: https://registry.terraform.io/modules/sourcefuse/arc-sns/aws
Category: Messaging / Notifications
Tip
🤖 New: Use this module with AI assistants via the ARC IaC MCP Server — search, scaffold, and security-scan ARC modules from natural language. Quick setup ↓
Overview¶
Creates SNS topics with subscriptions, KMS encryption, access policies, and FIFO support.
Architecture¶

What It Does¶
- Standard and FIFO SNS topics
- Email, SQS, Lambda, HTTP/S, and SMS subscriptions
- KMS encryption for message data
- Topic access policy management
- Message filtering policies
- Dead letter queue for failed deliveries
For more information about this repository and its usage, please see Terraform AWS SNS Usage Guide.
Quickstart¶
Required Inputs¶
| Name | Type | Description |
|---|---|---|
name |
string |
SNS topic name |
| ## Key Outputs |
| Name | Description |
|---|---|
topic_arn |
SNS topic ARN |
topic_name |
SNS topic name |
| ## Full Variable & Output Reference |
The complete inputs/outputs reference is auto-generated below.
Requirements¶
| Name | Version |
|---|---|
| terraform | >= 1.5.0 |
| aws | ~> 5.0 |
Providers¶
| Name | Version |
|---|---|
| aws | 4.67.0 |
Modules¶
No modules.
Resources¶
| Name | Type |
|---|---|
| aws_lambda_permission.external_lambda | resource |
| aws_lambda_permission.sns_invoke | resource |
| aws_sns_topic.this | resource |
| aws_sns_topic_subscription.this | resource |
Inputs¶
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| application_feedback | Map of IAM role ARNs and sample rate for success and failure feedback | object({ |
{} |
no |
| archive_policy | The message archive policy for FIFO topics | string |
null |
no |
| content_based_deduplication | Enables content-based deduplication for FIFO topics | bool |
false |
no |
| create_subscription | Whether to create SNS subscriptions | bool |
true |
no |
| create_topic | Whether to create the SNS topic | bool |
true |
no |
| delivery_policy | The SNS delivery policy | string |
null |
no |
| display_name | Display name for the SNS topic | string |
null |
no |
| fifo_throughput_scope | Enables higher throughput for FIFO topics by adjusting the scope of deduplication. Valid values: Topic, MessageGroup | string |
null |
no |
| fifo_topic | Boolean indicating whether or not to create a FIFO (first-in-first-out) topic | bool |
false |
no |
| firehose_feedback | Map of IAM role ARNs and sample rate for success and failure feedback | object({ |
{} |
no |
| http_feedback | Map of IAM role ARNs and sample rate for success and failure feedback | object({ |
{} |
no |
| kms_master_key_id | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK | string |
null |
no |
| lambda_feedback | Map of IAM role ARNs and sample rate for success and failure feedback | object({ |
{} |
no |
| lambda_permissions | Map of Lambda function ARNs that should be granted permission to be invoked by this SNS topic | map(string) |
{} |
no |
| name | Name of the SNS topic | string |
n/a | yes |
| policy | The fully-formed AWS policy as JSON | string |
null |
no |
| signature_version | The signature version corresponds to the hashing algorithm used while creating the signature of the notifications | number |
null |
no |
| sqs_feedback | Map of IAM role ARNs and sample rate for success and failure feedback | object({ |
{} |
no |
| subscriptions | A map of subscription configurations | map(object({ |
{} |
no |
| tags | A map of tags to assign to the resource | map(string) |
{} |
no |
| tracing_config | Tracing mode of an Amazon SNS topic | string |
null |
no |
| use_name_prefix | Determines whether name is used as a prefix | bool |
false |
no |
Outputs¶
| Name | Description |
|---|---|
| subscriptions | Map of subscriptions created and their attributes |
| topic_arn | The ARN of the SNS topic |
| topic_display_name | The display name of the SNS topic |
| topic_id | The ID of the SNS topic |
| topic_name | The name of the SNS topic |
| topic_owner | The AWS Account ID of the SNS topic owner |
Versioning¶
This project uses a .version file at the root of the repo which the pipeline reads from and does a git tag.
When you intend to commit to main, you will need to increment this version. Once the project is merged,
the pipeline will kick off and tag the latest git commit.
Development¶
Prerequisites¶
Configurations¶
- Configure pre-commit hooks
Versioning¶
while Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch
For Example
Tests¶
- Tests are available in
testdirectory - Configure the dependencies
- Now execute the test
AI Assistant Integration (ARC IaC MCP)¶
The ARC IaC MCP Server is a hosted Model Context Protocol service that lets AI assistants browse, search, scaffold, compare, and security-scan any of the SourceFuse ARC Terraform modules — directly from natural language.
What you can do with it:
- Discover — search and filter modules by keyword or AWS resource type.
- Understand — get inputs, outputs, and resources for any module without leaving your editor.
- Scaffold — generate production-ready, multi-file Terraform with cross-module wiring already done.
- Secure — scan generated or existing HCL for misconfigurations before it hits a PR.
- Compare — diff modules side-by-side to make informed architectural decisions.
Setup (one minute)¶
The MCP endpoint is https://arc-iac-mcp.sourcef.us/mcp. Pick your client:
Claude Code CLI:
Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Cursor / Windsurf / Kiro — add the same block to .cursor/mcp.json (or the equivalent for your client).
Example prompts to try¶
- "List all ARC modules sorted by downloads"
- "What inputs does
arc-ecsrequire?" - "Scaffold a production-ready
arc-dbAurora setup with Secrets Manager" - "Compare
arc-eksandarc-ecsfor running 10 microservices" - "Scan this Terraform before I raise a PR:
<paste HCL>"
See the ARC IaC MCP repo for the full tool reference, troubleshooting tips, and local-development instructions.
Contributing¶
See CONTRIBUTING.md for commit conventions and development setup.
Authors¶
This project is authored by: - SourceFuse ARC Team