## Resource terragrunt file

### Will include parent terragrunt file depending on environment name.
include "root" {
  path   = find_in_parent_folders(get_env("ENV_NAME") != "local" ? "terragrunt.hcl" : "terragrunt-localstack.hcl")
  expose = true
}

### Decompose remote files into local variables
locals {
  sns_arn = "arn:aws:sns:${include.root.locals.region}:${include.root.locals.aws_account_id}:${include.root.locals.environment}"
}

dependency "sqs-fetch-profile" {
  config_path = "../swg-sqs-fetch-profile"
  mock_outputs = {
    queue_arn = "arn:aws:sqs:*:123456789012:table/mock-swg-sqs-fetch-profile"
  }
}

inputs = {
  create_topic = false
  subscriptions = {
    sqs = {
      protocol            = "sqs",
      endpoint            = dependency.sqs-fetch-profile.outputs.queue_arn,
      filter_policy_scope = "MessageAttributes",
      filter_policy = jsonencode({
        "eventType" : ["agent.webSocket.connected"]
      })
      external_topic_arn   = "${local.sns_arn}-event-bus-sns"
      raw_message_delivery = true
    }
  }
}

terraform {
  source = "git@github.com:perimeter-81/devops-terraform-modules.git//modules/sns_v2?ref=main"
}
