# The cypress app family is being deprecated in favor of the automation-testing app family.
provider "aws" {
  region = var.aws_region
}

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/iam/application_family/automation-testing/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

module "abac_policy" {
  source = "git@github.com:theorchard/terraform-iam-policies.git//modules/abac?ref=1.22.2"

  application_family = var.application_family
}

module "rbac_policy" {
  source = "git@github.com:theorchard/terraform-iam-policies.git//modules/rbac?ref=1.22.2"

  application_family = var.application_family
  lambda_functions_or_prefixes_to_access = [
    "*-lambda-cypress-tests-containerized",
    "qa-lambda-vector-ar-to-ddb-sync",
    "qa-lambda-vector-ddb-streams-handler",
    "qa-lambda-vector-save-to-dd-db",
    "qa-lambda-vector-find-assets-to-download",
    "qa-vector-reprocess-orders",
    "qa-vector_handle_sync_errors",
    "qa-lambda-vector-throttler",
    "qa-lambda-vector-ready-deliveries",
    "qa-lambda-vector-ready-deliveries-manager",
    "qa-lambda-vector-find-batch-to-close",
    "qa-lambda-vector-close-batch",
    "*-lambda-sme-isrc-finder",
    "*-lambda-get-isrc-batches-from-snowflake",
    "qa-lambda-documents-calculate-payments",
    "qa-lambda-documents-generate-payments",
    "*-playwright-tests",
  ]
  dynamodb_tables_or_prefixes_to_access = [
    "*lambda_cypress_results*",
    "*qa-vector-orders*",
    "qa-accounting-statement-export",
    "qa_statement_attachments_error",
    "qa_statement_attachments_success"
  ]
  s3_buckets_or_prefixes_to_access = [
    "qa-orcd-cypress-tests",
    "nickelback/cypress-configs",
    "nickelback/cucumber-configs",
    "qa-neighbouring-rights/contributions/*",
    "prod-orcd-mobile",
    "orcd-mobile-binaries",
    "qa-orcdbucket/vector3/vector-orders/*",
    "qa-orcd-mezzanine-assets",
    "qa-encoding-*",
    "qa-abacus-adjustments",
    "qa-orcd-raw-assets",
    "*-lambda-insights-isrc-availability-tests",
    "*-playwright-test-results",
    "prod-ows-product-staging"
  ]
  sqs_queues_or_prefixes_to_access = [
    "*-encoding*",
    "*-delivery*",
    "*-assets_to_download-queue",
    "*-batch_to_close-queue"
  ]
  stepfunctions_state_machines_or_prefixes_to_access = [
    "qa-sfn-bulk-session-ingest*"
  ]
}
