module "dh_data_health_agent" {
  source = "../../../modules/iam/roles/lambda_role"

  name_prefix                = local.name_prefix
  name                       = "dh_data_health_agent"
  allow_execution_inside_vpc = true

  policies_list = [
    module.iam_map.s3_env_rw.arn,
    module.iam_map.sqs_consumer.arn,
    module.iam_map.sqs_producer.arn,
    data.aws_iam_policy.secrets-services-ro.arn,
    data.aws_iam_policy.logging.arn,
  ]

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Data health",
      service                  = "Lambda",
      plat_env_project_service = "${local.aggregated_tag}_DH_LMB"
    }
  )
}

resource "aws_sqs_queue" "data-health-notifications-dlq" {
  name                       = "${local.name_prefix}-data-health-notifications-dlq"
  visibility_timeout_seconds = 120

  tags = merge(
    local.common_tags,
    {
      project                  = "Data health",
      service                  = "SQS",
      plat_env_project_service = "${local.aggregated_tag}_DH_SQS"
    }
  )
}

resource "aws_sqs_queue" "data-health-notifications" {
  name                       = "${local.name_prefix}-data-health-notifications"
  visibility_timeout_seconds = 120
  redrive_policy             = "{\"deadLetterTargetArn\":\"${aws_sqs_queue.data-health-notifications-dlq.arn}\",\"maxReceiveCount\":5}"
  #delay_seconds               = var.delay_seconds
  #max_message_size            = var.max_message_size
  #message_retention_seconds   = var.message_retention_seconds
  #receive_wait_time_seconds   = var.receive_wait_time_seconds
  #content_based_deduplication = var.content_based_deduplication

  tags = merge(
    local.common_tags,
    {
      project                  = "Data health",
      service                  = "SQS",
      plat_env_project_service = "${local.aggregated_tag}_DH_SQS"
    }
  )
}
