data "aws_s3_bucket" "qa_orcd_bucket" {
  bucket = "qa-orcdbucket"
}

resource "aws_ses_receipt_rule_set" "notification_integration_test_ruleset" {
  rule_set_name = "notification-integration-test"
}

resource "aws_ses_receipt_rule" "auth0_react_rule" {
  name          = "auth0-react"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0+react@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0+react"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "auth0_link_test_rule" {
  after         = aws_ses_receipt_rule.auth0_react_rule.name
  name          = "auth0-link-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0+link@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0+link"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "auth0_sso_test_rule" {
  after         = aws_ses_receipt_rule.auth0_link_test_rule.name
  name          = "auth0-sso-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0+sso@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0+sso/"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "auth0_sms_test_rule" {
  after         = aws_ses_receipt_rule.auth0_sso_test_rule.name
  name          = "auth0-sms-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0+sms@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0+sms/"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "auth0_non_test_rule" {
  after         = aws_ses_receipt_rule.auth0_sms_test_rule.name
  name          = "auth0-non-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0+non@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0+non/"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "ows_notification_integration_test_rule" {
  after         = aws_ses_receipt_rule.auth0_non_test_rule.name
  name          = "ows-notification-integration-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = [
    "notification@test.theorchard.io",
    "notification_sub@test.theorchard.io",
    "notification_subaccount@test.theorchard.io",
    "notification_unsub@test.theorchard.io"
  ]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "ows-notifications/emails"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "automation_qa_rule" {
  after         = aws_ses_receipt_rule.ows_notification_integration_test_rule.name
  name          = "automation_qa"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["automation_qa@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Optional"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "ows-notifications/automation_qa/emails"
    position          = 1
  }
}

resource "aws_ses_receipt_rule" "auth0_test_rule" {
  after         = aws_ses_receipt_rule.automation_qa_rule.name
  name          = "auth0-test"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0/emails/auth0/"
    position          = 1
  }
}

# Used auth0-hosted-pages integration tests
resource "aws_ses_receipt_rule" "auth0_integration_tests_rule" {
  after         = aws_ses_receipt_rule.auth0_test_rule.name
  name          = "auth0-hosted-pages.integration-tests"
  rule_set_name = aws_ses_receipt_rule_set.notification_integration_test_ruleset.rule_set_name
  recipients    = ["auth0-integration-tests@test.theorchard.io"]
  enabled       = true
  scan_enabled  = true
  tls_policy    = "Require"

  s3_action {
    bucket_name       = data.aws_s3_bucket.qa_orcd_bucket.bucket
    object_key_prefix = "auth0-hosted-pages/integration-tests/emails"
    position          = 1
  }
}
