provider "aws" {
  region = var.region

  default_tags {
    tags = module.default_tags.tags
  }
}

module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=2.0.0"
  environment        = var.environment
  application_family = var.application_family
  service_name       = "example-queue-simple"
  team_name          = var.team_name
}

module "example_sqs_module" {
  source = "../"

  environment                   = var.environment
  queue_name                    = "example_queue_simple"
  application_family            = var.application_family
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10
  additional_tags               = {
    "module_type" = "terraform_module_test"
  }
}

module "example_sqs_with_custom_name_module" {
  source = "../"

  environment                   = var.environment
  custom_queue_name             = "${var.environment}-example_custom_name_queue"
  application_family            = var.application_family
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10
}

module "example_fifo_sqs_module" {
  source = "../"

  environment                   = var.environment
  queue_name                    = "example_queue_with_fifo"
  application_family            = var.application_family
  sqs_fifo_queue                = true
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10
}

module "example_sqs_module_with_deadletter" {
  source = "../"

  environment                   = var.environment
  queue_name                    = "example_queue_with_deadletter"
  application_family            = var.application_family
  sqs_fifo_queue                = true
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10

  sqs_deadletter_enabled = true

  deadletter_max_receive_count         = 200
  deadletter_delay_seconds             = 10
  deadletter_max_message_size          = 2048
  deadletter_message_retention_seconds = 86400
  deadletter_receive_wait_time_seconds = 10
}

module "example_sqs_module_with_sse_sqs" {
  source = "../"

  environment                   = var.environment
  queue_name                    = "example_queue_sse_sqs"
  application_family            = var.application_family
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10

  sqs_encryption_type = "sse-sqs"
}

module "example_sqs_module_with_sse_sqs_and_deadletter" {
  source = "../"

  environment                   = var.environment
  queue_name                    = "example_queue_sse_sqs_deadletter"
  application_family            = var.application_family
  sqs_delay_seconds             = 10
  sqs_max_message_size          = 2048
  sqs_message_retention_seconds = 86400
  sqs_receive_wait_time_seconds = 10

  sqs_encryption_type    = "sse-sqs"
  sqs_deadletter_enabled = true

  deadletter_max_receive_count         = 200
  deadletter_delay_seconds             = 10
  deadletter_max_message_size          = 2048
  deadletter_message_retention_seconds = 86400
  deadletter_receive_wait_time_seconds = 10
}
