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

  environment                 = var.environment
  lambda_name                 = "lambda-${var.service_name}-pub_clt_rpt" # cannot use more than 64 characters
  application_family          = var.application_family
  lambda_description          = "Lambda function to publish client report"
  use_container_image         = true
  datadog_advanced_enabled    = true
  vpc_enabled                 = true
  vpc_id                      = module.vpc_info.vpc_id
  vpc_subnet_ids              = module.vpc_info.default_private_subnet_ids
  lambda_function_timeout     = 900
  lambda_function_memory_size = 10240
  splitio_enabled             = false
  zappa_s3_policy_enabled     = false
  iam_managed_policy_attachments = [
    aws_iam_policy.s3_read_write_policy.arn,
    aws_iam_policy.sns_publish_policy.arn,
    aws_iam_policy.sf_query_results_s3_read_write_policy.arn,
    aws_iam_policy.allow_invoke_sf_query_lambda_policy.arn,
  ]

  lambda_function_environment_variables = {
    ENVIRONMENT  = var.environment
    SERVICE_NAME = "lambda-${var.service_name}-publish_client_report"
  }
}

resource "aws_lambda_permission" "lambda_publish_client_report_invoke_from_sns" {
  statement_id  = "AllowExecutionFromSNS"
  action        = "lambda:InvokeFunction"
  function_name = module.lambda_publish_client_report.lambda_name
  principal     = "sns.amazonaws.com"
  source_arn    = module.sns_publishing_client_report_queue.topic_arn
}
