locals {
  // Constants
  project_group = "delphi"

  name_prefix         = "${var.env_prefix}-${local.project_group}"
  account_id          = data.aws_caller_identity.current.account_id
  secrets_name_prefix = "${local.project_group}/${var.env_prefix}"
  aggregated_tag      = module.tags.aggregated_tag

  aws_profile_map = {
    "dev"   = "gdb-delphi-dev"
    "qa"    = "gdb-delphi-dev"
    "stage" = "gdb-delphi-dev"
    "prod"  = "gdb-delphi-prod"
  }
  aws_profile = local.aws_profile_map[var.env_prefix]
}

module "tags" {
  source = "../../../modules/tags/defaults_plat_env_project"

  env_prefix    = var.env_prefix
  project_group = local.project_group
  project       = "Infrastructure"
  project_short = "INFRA"
}

data "aws_caller_identity" "current" {}

data "aws_kms_key" "custom_default_sns_key" {
  key_id = "arn:aws:kms:us-east-1:${local.account_id}:alias/default_sns"
}

module "s3_monitor_lambda" {
  source          = "git@github.com:theorchard/delphi-s3-monitor-lambda.git//?ref=1.0.1"
  name            = "${local.name_prefix}-smf-s3-monitor"
  sns_kms_key_arn = data.aws_kms_key.custom_default_sns_key.arn
  env             = var.env_prefix
  s3_paths        = var.s3_paths
  notify_emails   = var.notify_emails

  schedule_expression = var.schedule_expression
  schedule_enabled    = var.schedule_enabled

  tags = {
    runtime = "python3.10"
  }
}
