module "upc_repository_queue" {
  source = "git@github.com:theorchard/terraform-sqs.git//"

  environment                    = var.environment
  queue_name                     = var.upc_repository_queue_name
  sqs_message_retention_seconds  = var.sqs_message_retention_seconds
  sqs_visibility_timeout_seconds = var.sqs_visibility_timeout_seconds

  sqs_deadletter_enabled = "true"

  deadletter_message_retention_seconds = 86400
  deadletter_max_recieve_count         = 5
  deadletter_delay_seconds             = 10
  deadletter_max_message_size          = 2048
  deadletter_receive_wait_time_seconds = 10
}

resource "aws_cloudwatch_metric_alarm" "upc-provisioner-queue-depth-alarm" {
  alarm_name                = format("%s-upc-provisioner-queue-depth-alarm", var.environment)
  comparison_operator       = "LessThanThreshold"
  evaluation_periods        = "1"
  threshold                 = var.queue_depth_alarm_threshold
  alarm_description         = "This metric monitors the upc provisioner sqs depth"
  alarm_actions             = [var.upc_provisioner_sns_topic_arn]
  metric_name               = "ApproximateNumberOfMessagesVisible"
  namespace                 = "AWS/SQS"
  period                    = "60"
  statistic                 = "Minimum"
  dimensions = {
    QueueName = join("-", [var.environment,var.upc_repository_queue_name, "queue"])
  }
}
