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

  environment                    = var.environment
  application_family             = var.application_family
  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_receive_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       = [module.upc_provisioner_sns.topic_arn]
  metric_name         = "ApproximateNumberOfMessagesVisible"
  namespace           = "AWS/SQS"
  period              = "60"
  statistic           = "Minimum"
  dimensions = {
    QueueName = module.upc_repository_queue.queue_name
  }
}
