data "aws_msk_cluster" "msk_cluster" {
  cluster_name = "${var.environment}-${var.trigger_msk_cluster_name}"
}

locals {
  lambda_name = "${var.service_name}-idenfy-url-generator"
}

module "vpc_info" {
  source      = "git@github.com:theorchard/terraform-vpc-info.git//?ref=3.2.2"
  environment = var.environment
}


# lambda configuration
module "lambda_idenfy_url_generator" {
  source                   = "git@github.com:theorchard/terraform-lambda.git?ref=3.1.4"
  environment              = var.environment
  lambda_name              = local.lambda_name
  lambda_description       = "Generate iDenfy verification URL"
  datadog_enabled          = var.datadog_enabled
  datadog_advanced_enabled = var.datadog_advanced_enabled

  application_family = var.application_family

  use_container_image = true

  vpc_id                     = module.vpc_info.vpc_id
  vpc_subnet_ids             = module.vpc_info.default_private_subnet_ids

  msk_event_enabled                      = true
  event_source_mapping_msk_cluster_name  = data.aws_msk_cluster.msk_cluster.cluster_name
  event_source_mapping_msk_cluster_uuid  = data.aws_msk_cluster.msk_cluster.cluster_uuid
  event_source_mapping_batch_size        = 1
  msk_topics                             = [var.trigger_msk_topic]
  event_source_mapping_starting_position = "LATEST"

  lambda_function_environment_variables = {
    ENVIRONMENT = var.environment
    SENTRY_DSN  = module.sentry_identity_verification.sentry_key_dsn_public_output
  }
}

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

  environment                       = var.environment
  service_name                      = local.lambda_name
  notification_endpoints            = var.datadog_notification_endpoints
  lambda_invocation_monitor_enabled = true
}
