--- /dev/null
+resource "aws_sqs_queue" "management-events-dlq" {
+ name = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}-failed"
+ visibility_timeout_seconds = 30
+ message_retention_seconds = 1209600
+ max_message_size = 262144
+ receive_wait_time_seconds = 0
+}
+resource "aws_sqs_queue" "management-events-queue" {
+ name = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}"
+ visibility_timeout_seconds = 60
+ message_retention_seconds = 1209600
+ max_message_size = 262144
+ receive_wait_time_seconds = 20
+ redrive_policy = "{\"deadLetterTargetArn\":\"${aws_sqs_queue.management-events-dlq.arn}\",\"maxReceiveCount\":5}"
+}
+resource "aws_sns_topic" "management-events" {
+ name = "${length(var.sns_events_name) > 0 ? var.sns_events_name : var.management_service_name}${length(var.sns_events_name) > 0 ? "" : "-events"}"
+}
+data "aws_iam_policy_document" "management-queue" {
+ statement {
+ effect = "Allow"
+ sid = "TopicPublish"
+ actions = ["SQS:SendMessage"]
+ resources = ["${aws_sqs_queue.management-events-queue.arn}"]
+ condition {
+ test = "ForAnyValue:ArnEquals"
+ variable = "aws:SourceArn"
+ values = ["${aws_sns_topic.management-events.arn}"]
+ }
+ principals {
+ type = "AWS"
+ identifiers = ["*"]
+ }
+ }
+}
+resource "aws_sqs_queue_policy" "management-events" {
+ queue_url = "${aws_sqs_queue.management-events-queue.id}"
+ policy = "${data.aws_iam_policy_document.management-queue.json}"
+}
+resource "aws_sns_topic_subscription" "management-events-subscription" {
+ topic_arn = "${aws_sns_topic.management-events.arn}"
+ endpoint = "${aws_sqs_queue.management-events-queue.arn}"
+ protocol = "sqs"
+}
+
+resource "aws_sns_topic" "management-alerts" {
+ name = "${length(var.sns_alerts_name) > 0 ? var.sns_alerts_name : var.management_service_name}${length(var.sns_alerts_name) > 0 ? "" : "-alerts"}"
+}