# Lambda defintion for gda_calculate_score step

module "secrets" {
  source   = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.5.1"
  for_each = toset(var.secrets_manager_secret_names)

  environment                    = var.environment
  service_name                   = var.lambda_name_calculate_score
  secret_name                    = each.value
  application_family             = var.application_family
  secret_recovery_window_in_days = 7
}

# owsrequest for accessing ows-blacklist-manager
module "lambda_gda_calculate_score_notifications_owsrequest" {
  source = "git@github.com:theorchard/terraform-owsrequest.git//?ref=1.0.1"

  environment_name = var.environment
  service_name     = var.lambda_name_calculate_score
}

# lambda defination
module "lambda_gda_calculate_score" {
  source = "git@github.com:theorchard/terraform-lambda.git//?ref=4.3.0"

  environment         = var.environment
  application_family  = var.application_family
  use_container_image = true
  lambda_name         = var.lambda_name_calculate_score
  lambda_description  = "For gda_calculate_score step in step function."

  lambda_function_environment_variables = {
    ENVIRONMENT       = var.environment
    SENTRY_DSN        = module.sentry_gda_score_calculation.sentry_key_dsn_public_output
    BOOTSTRAP_SERVERS = data.aws_msk_cluster.msk_cluster.bootstrap_brokers_tls
    TOPIC_NAME        = "event.gdaSignup"
    DD_LAMBDA_HANDLER = var.lambda_handler
  }

  lambda_function_timeout                        = var.lambda_default_timeout
  vpc_id                                         = module.vpc_info.vpc_id
  vpc_subnet_ids                                 = module.vpc_info.default_private_subnet_ids
  lambda_function_reserved_concurrent_executions = var.lambda_concurrent_executions
  datadog_advanced_enabled                       = var.datadog_enabled
  dlq_type                                       = "sqs"
  lambda_function_memory_size                    = "256"
  lambda_function_handler                        = var.lambda_handler

  iam_managed_policy_attachments = [
    module.lambda_gda_calculate_score_notifications_owsrequest.policy_arn_output
  ]
}


# create datadog dashboards.
module "datadog_lambda_gda_calculate_score" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/lambda?ref=6.13.9"

  environment                       = var.environment
  service_name                      = var.lambda_name_calculate_score
  lambda_invocation_monitor_enabled = false
}
