resource "aws_lambda_permission" "allow_cloudwatch_logs_trigger" {
  count = var.lambda_cloudwatch_logs_integration_enabled ? 1 : 0

  statement_id = "allow-cloudwatch-logs-trigger"

  principal      = "logs.${var.aws_region}.amazonaws.com"
  source_account = data.aws_caller_identity.current.account_id

  action        = "lambda:InvokeFunction"
  function_name = module.datadog_forwarder_lambda.lambda_name
}

resource "aws_lambda_permission" "allow_cloudwatch_events_trigger" {
  count = var.lambda_cloudwatch_events_integration_enabled ? 1 : 0

  statement_id = "allow-cloudwatch-events-trigger"

  principal      = "events.amazonaws.com"
  source_account = data.aws_caller_identity.current.account_id

  action        = "lambda:InvokeFunction"
  function_name = module.datadog_forwarder_lambda.lambda_name
}

resource "aws_lambda_permission" "allow_s3_trigger" {
  count = var.lambda_s3_integration_enabled ? 1 : 0

  statement_id = "allow-s3-trigger"

  principal      = "s3.amazonaws.com"
  source_account = data.aws_caller_identity.current.account_id

  action        = "lambda:InvokeFunction"
  function_name = module.datadog_forwarder_lambda.lambda_name
}

resource "aws_lambda_permission" "allow_sns_trigger" {
  count = var.lambda_sns_integration_enabled ? 1 : 0

  statement_id = "allow-sns-trigger"

  principal      = "sns.amazonaws.com"
  source_account = data.aws_caller_identity.current.account_id

  action        = "lambda:InvokeFunction"
  function_name = module.datadog_forwarder_lambda.lambda_name
}
