provider "aws" {
  region = var.aws_region
}

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

module "aws_accounts_map" {
  source = "git@github.com:theorchard/terraform-aws-accounts-map.git?ref=1.0.0"
}

# Dev groups
module "developers" {
  source = "git@github.com:theorchard/terraform-iam-policies.git//modules/groups?ref=1.5.2"

  group_name                     = "gdb-${var.project_group}-developers"
  users                          = local.developers
  application_families_to_access = []
  iam_roles_to_access = [
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_user",
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_qa",
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_developer",
  ]
}

module "qa" {
  source = "git@github.com:theorchard/terraform-iam-policies.git//modules/groups?ref=1.5.2"

  group_name                     = "gdb-${var.project_group}-qa"
  users                          = local.qa
  application_families_to_access = []
  iam_roles_to_access = [
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_user",
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_qa",
  ]
}

module "users" {
  source = "git@github.com:theorchard/terraform-iam-policies.git//modules/groups?ref=1.5.2"

  group_name                     = "gdb-${var.project_group}-user"
  users                          = local.users
  application_families_to_access = []
  iam_roles_to_access = [
    "arn:aws:iam::${module.aws_accounts_map.gdb_accounts["gdb-${var.project_group}-legacy"]}:role/cross_account_user",
  ]
}
