locals {
  image_encoding_lambda_name = "asset-transcoder-image-encoding"
}

# Lambda function for the image encoding step
module "image_encoding_lambda" {
  source = "git@github.com:theorchard/terraform-lambda.git"

  environment              = var.environment
  lambda_name              = "${local.image_encoding_lambda_name}"
  use_custom_function_name = true
  custom_function_name     = "${local.image_encoding_lambda_name}-${var.environment}"
  lambda_description       = "Encodes images"

  lambda_function_environment_variables = {
    Environment                  = var.environment
    SNS_FINAL_STATUS_TOPIC_ARN   = module.sns_final_status.proxied_sns_arn
    SNS_GENERAL_STATUS_TOPIC_ARN = module.sns_general_status.proxied_sns_arn
    PREVIEW_OUTPUT_BUCKET_NAME   = var.image_previews_bucket
  }

  lambda_function_timeout                        = var.lambda_default_timeout
  vpc_security_group_ids                         = var.vpc_security_group_ids
  vpc_subnet_ids                                 = var.vpc_subnet_ids
  lambda_function_memory_size                    = var.image_encoding_lambda_memory_size
  lambda_function_reserved_concurrent_executions = var.lambda_concurrent_executions
  datadog_enabled                                = var.datadog_enabled
  iam_policy_file_enabled                        = false
  iam_managed_policy_attachments = [
    aws_iam_policy.common_lambda_policy.arn,
    aws_iam_policy.write_to_output_bucket_policy.arn,
    aws_iam_policy.final_status_publish_lambda_policy.arn,
  ]
}

