# -----------------------------------------------------------------------------------------------------------
# Grant the log parsing lambda access to the logs bucket

# resource "aws_lambda_permission" "allow_bucket" {
#   statement_id  = "AllowExecutionFromS3Bucket"
#   action        = "lambda:InvokeFunction"
#   function_name = aws_lambda_function.logs_parser.arn
#   principal     = "s3.amazonaws.com"
#   source_arn    = aws_s3_bucket.logs.arn
# }


# -----------------------------------------------------------------------------------------------------------
# Log Parsing Lambda

# data "archive_file" "logs_parser" {
#   type        = "zip"
#   source_dir  = "${path.module}/files/decorate"
#   output_path = "${path.module}/files/decorate.zip"
# }

# resource "aws_lambda_function" "logs_parser" {
#   filename      = data.archive_file.logs_parser.output_path
#   function_name = "${var.site}-logs-decorator"
#   handler       = "index.handler"
#   source_code_hash = data.archive_file.logs_parser.output_base64sha256
#   runtime = "nodejs12.x"
#   memory_size = "128"
#   timeout = "5"
#   role = aws_iam_role.lambda.arn

#   tags = {
#     Name   = "${var.site}-log-dist"
#     Site = var.site
#   }
# }

# resource "aws_s3_bucket_notification" "bucket_notification" {
#   bucket = aws_s3_bucket.logs.id

#   lambda_function {
#     lambda_function_arn = aws_lambda_function.logs_parser.arn
#     events              = ["s3:ObjectCreated:*"]
#     filter_prefix       = "RAW/"
#     filter_suffix       = ".gz"
#   }
# }

# Reduce log retention to two weeks
# resource "aws_cloudwatch_log_group" "logs_parser" {
#   name              = "/aws/lambda/${aws_lambda_function.logs_parser.function_name}"
#   retention_in_days = 14
# }


# -----------------------------------------------------------------------------------------------------------
# Athena Configuration

# resource "aws_s3_bucket" "athena" {
#   bucket = "${var.site}-athena"
#   acl = "private"
#   tags = {
#     Name = "${var.site}-athena"
#     Site = var.site
#   }
# }

# resource "aws_athena_workgroup" "wg" {
#   name = "${var.site}-wg"
#   tags = {
#     Name = "${var.site}-wg"
#     Site = var.site
#   }
# }

# resource "aws_athena_database" "db" {
#   name = var.site
#   bucket = aws_s3_bucket.athena.id
# }