terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "qa/lambda-product-staging/sqs-finalize-bulk-session/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

provider "aws" {
  region = var.aws_region
}

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

  environment                    = var.environment
  application_family             = var.application_family
  queue_name                     = var.sqs_queue_name

  sqs_fifo_queue                 = "false"
  sqs_message_retention_seconds  = 1209600

  sqs_deadletter_enabled               = "true"
  deadletter_message_retention_seconds = 1209600
  deadletter_max_receive_count         = 10
  deadletter_max_message_size          = 2048
}

data "aws_iam_policy_document" "sqs_finalize_bulk_session_policy_document" {
  statement {
    effect = "Allow"
    actions = [
      "sqs:DeleteMessage",
      "sqs:GetQueue*",
      "sqs:ReceiveMessage",
      "sqs:SendMessage",
    ]
    resources = [
      module.finalize_bulk_session_queue.queue_arn
    ]
  }
}

resource "aws_iam_policy" "sqs_finalize_bulk_session_policy" {
  name   = "SQS-${var.environment}-finalize-bulk-session-policy"
  policy = data.aws_iam_policy_document.sqs_finalize_bulk_session_policy_document.json
  tags = {
    environment        = var.environment
    service_name       = var.service_name
    application_family = var.application_family
    terraformed        = true
  }
}
