# Lambda definition for redeem_voucher step
module "secrets" {
  source = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.5.1"
  for_each = toset([
    "VOUCHERIFY-APPLICATION-ID",
    "VOUCHERIFY-CLIENT-SECRET"
  ])

  environment                    = var.environment
  service_name                   = "lambda-redeem-voucher"
  secret_name                    = each.value
  application_family             = var.application_family
  secret_recovery_window_in_days = 7
}

# lambda definition
module "lambda_redeem_voucher" {
  source = "git@github.com:theorchard/terraform-lambda.git//?ref=5.2.1"

  environment              = var.environment
  use_container_image      = true
  lambda_name              = "lambda-redeem-voucher"
  lambda_description       = "For redeem_voucher step in step function."
  application_family       = var.application_family
  datadog_advanced_enabled = var.datadog_advanced_enabled

  lambda_function_environment_variables = {
    Environment       = var.environment
    LOGGER_DSN        = var.logger_dsn
    SENTRY_DSN        = module.sentry_gda_account_creation.sentry_key_dsn_public_output
    BOOTSTRAP_SERVERS = data.aws_msk_cluster.msk_cluster.bootstrap_brokers_tls
    TOPIC_NAME        = "event.gda.redeemVoucher"
  }

  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_enabled                                = var.datadog_enabled
}


# stage datadog creds and create dashboards.
module "datadog_lambda_redeem_voucher_lambda" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/lambda?ref=6.15.3"

  environment                       = var.environment
  service_name                      = "lambda-redeem-voucher"
  lambda_invocation_monitor_enabled = false
}
