provider "aws" {
  region = "us-east-1"

  default_tags {
    tags = module.default_tags.tags
  }
}

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "dev-orcd-terraform-state"
    key     = "dev/dev-datadog/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=2.0.0"
  environment        = var.environment
  application_family = var.application_family
  service_name       = var.service_name
  team_name          = var.team_name
}

resource "aws_lambda_permission" "datadog_lambda_invoke_permission_cloudwatch" {
  statement_id  = "Datadog-lambda-AllowExecutionFromCloudwatch"
  action        = "lambda:InvokeFunction"
  function_name = "${var.datadog_function_destination_arn}"
  principal     = "logs.${var.aws_region}.amazonaws.com"
  source_arn    = "arn:aws:logs:${var.aws_region}:103233932089:log-group:/a*"
}

resource "aws_lambda_permission" "datadog_lambda_invoke_permission_fargate_prod" {
  statement_id  = "Datadog-lambda-AllowExecutionFromFargateDev"
  action        = "lambda:InvokeFunction"
  function_name = "${var.datadog_function_destination_arn}"
  principal     = "logs.${var.aws_region}.amazonaws.com"
  source_arn    = "arn:aws:logs:${var.aws_region}:103233932089:log-group:dev*"
}

resource "aws_lambda_permission" "datadog_lambda_invoke_permission_fargate_qa" {
  statement_id  = "Datadog-lambda-AllowExecutionFromFargateTest"
  action        = "lambda:InvokeFunction"
  function_name = "${var.datadog_function_destination_arn}"
  principal     = "logs.${var.aws_region}.amazonaws.com"
  source_arn    = "arn:aws:logs:${var.aws_region}:103233932089:log-group:test*"
}

resource "aws_lambda_permission" "datadog_lambda_invoke_permission_s3" {
  statement_id  = "Datadog-lambda-AllowExecutionFromS3"
  action        = "lambda:InvokeFunction"
  function_name = "${var.datadog_function_destination_arn}"
  principal     = "s3.amazonaws.com"
  source_arn    = "arn:aws:s3:::aws-logs-103233932089-us-east-1"
}
