Skip to content

Latest commit

 

History

History
81 lines (65 loc) · 7.3 KB

File metadata and controls

81 lines (65 loc) · 7.3 KB

Requirements

Requirements

Name Version
terraform >= 1.0
terraform >=1.3
aws ~> 5.0

Providers

Providers

Name Version
aws 5.100.0

Resources

Resources

Name Type
aws_lambda_permission.sns_invoke resource
aws_sns_topic.this resource
aws_sns_topic_policy.this resource
aws_sns_topic_subscription.application resource
aws_sns_topic_subscription.email resource
aws_sns_topic_subscription.http resource
aws_sns_topic_subscription.lambda resource
aws_sns_topic_subscription.sms resource
aws_sns_topic_subscription.sqs resource
aws_sqs_queue_policy.sns_access resource

Inputs

Inputs

Name Description Type Default Required
environment Environment (e.g., prod, dev, test) string n/a yes
project_name Name of the project string n/a yes
application_subscriptions List of application subscriptions
list(object({
endpoint = string
protocol = string
filter_policy = optional(string)
}))
[] no
content_based_deduplication Enables content-based deduplication for FIFO topics bool false no
create_lambda_permissions Whether to create Lambda permissions for SNS to invoke the function bool true no
create_sqs_permissions Whether to create SQS queue policies for SNS to send messages bool true no
delivery_policy The SNS delivery policy string "" no
display_name The display name for the SNS topic string "" no
email_subscriptions List of email subscriptions
list(object({
email_address = string
protocol = string
filter_policy = optional(string)
}))
[] no
fifo_topic Boolean indicating whether or not to create a FIFO (first-in-first-out) topic bool false no
http_subscriptions List of HTTP/HTTPS subscriptions
list(object({
endpoint = string
protocol = string
raw_message_delivery = optional(bool, false)
filter_policy = optional(string)
}))
[] no
kms_master_key_id The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK string "alias/aws/sns" no
lambda_subscriptions List of Lambda subscriptions
list(object({
function_arn = string
protocol = string
filter_policy = optional(string)
}))
[] no
name_prefix Prefix for resource names (if not provided, will use project-environment pattern) string "" no
policy The fully-formed AWS IAM policy setup for the SNS topic string "" no
sms_subscriptions List of SMS subscriptions
list(object({
phone_number = string
protocol = string
filter_policy = optional(string)
}))
[] no
sqs_subscriptions List of SQS subscriptions
list(object({
queue_arn = string
protocol = string
raw_message_delivery = optional(bool, false)
filter_policy = optional(string)
}))
[] no
tags Additional tags for all resources map(string) {} no
topic_name Name of the SNS topic (if empty, will use project-environment pattern) string "" no

Outputs

Outputs

Name Description
application_subscription_arns ARNs of the application subscriptions
email_subscription_arns ARNs of the email subscriptions
http_subscription_arns ARNs of the HTTP/HTTPS subscriptions
lambda_subscription_arns ARNs of the Lambda subscriptions
sms_subscription_arns ARNs of the SMS subscriptions
sqs_subscription_arns ARNs of the SQS subscriptions
topic_arn The ARN 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