module "lambda_apple_music_api_create_sentry_project" {
  source = "git@github.com:theorchard/terraform-sentry.git?ref=2.0.1"

  application_family = var.application_family
  environment        = var.environment
  platform           = "python"
  service_name       = var.lambda_apple_music_api_name
  team               = var.environment
}


module "lambda_apple_music_api" {
  source = "git@github.com:theorchard/terraform-lambda.git//?ref=2.4.4"

  application_family       = var.application_family
  datadog_enabled          = true
  datadog_advanced_enabled = true
  environment              = var.environment
  lambda_name              = var.lambda_apple_music_api_name
  lambda_description       = "Lambda for executing Apple Music API requests."
  use_container_image      = true
  vpc_id                   = var.vpc_id
  vpc_subnet_ids           = var.vpc_subnet_ids

  // The lambda will be triggered by a MSK event
  msk_event_enabled                      = true
  event_source_mapping_batch_size        = 50
  msk_topics                             = ["stream.storeAPIRequest.appleMusic.split"]
  event_source_mapping_msk_cluster_name  = var.trigger_msk_cluster_name
  event_source_mapping_msk_cluster_uuid  = var.trigger_msk_cluster_uuid
  event_source_mapping_starting_position = "LATEST"

  lambda_function_reserved_concurrent_executions = "1"
  datadog_function_destination_lambda_name       = "DatadogLambdaFunction"

  lambda_function_environment_variables = {
    Environment   = var.environment
    KAFKA_BROKERS = var.kafka_brokers
  }
}

module "lambda_apple_music_api_secrets" {
  source   = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.0.4"
  for_each = toset([
    "APPLE_MUSIC_CLIENT_ID",
    "APPLE_MUSIC_TEAM_ID",
    "APPLE_MUSIC_PRIVATE_KEY"
  ])

  application_family = var.application_family
  environment        = var.environment
  service_name       = var.lambda_apple_music_api_name
  secret_name        = each.value
}
