provider "aws" {
    region = "us-east-1"
}

terraform {
    backend "s3" {
        bucket         = "orcd-terraform-state"
        key            = "prod/lambda-upc-provisioner/terraform.tfstate"
        region         = "us-east-1"
        encrypt        = "true"
    }
}

module "buckets" {
  source      = "../modules/bucket"
  environment = var.environment
}

module "queues" {
  source      = "../modules/queue"
  environment = var.environment
  upc_provisioner_sns_topic_arn = module.sns_topic.upc_provisioner_sns_arn
  queue_depth_alarm_threshold   = var.queue_depth_alarm_threshold
}

module "sns_topic" {
  source                     = "../modules/topic"
  environment                = var.environment
  upc_provisioner_lambda_arn = module.lambda_upc_provisioner.lambda_arn
}

module "lambda_upc_provisioner" {
  source = "../modules/lambda"

  environment                  = var.environment
  vpc_security_group_ids       = var.vpc_security_group_ids
  vpc_subnet_ids               = var.vpc_subnet_ids
  lambda_memory_size           = var.lambda_memory_size
  logger_dsn                   = var.logger_dsn
  lambda_concurrent_executions = var.lambda_concurrent_executions
  lambda_default_timeout       = var.lambda_default_timeout
  ar_db_host                   = var.ar_db_host
  ar_db_database               = var.ar_db_database
  sns_topic_arn                = module.sns_topic.upc_provisioner_sns_arn
}
