variable "clients" {
  type        = map(any)
  description = "Map which contains account ids, external ids and bucket_access_maps for external clients"
}

module "isnt_bucket_access" {
  source             = "../../../modules/iam/policies/s3/bucket_custom_paths"
  name               = "isnt_bucket_access"
  name_prefix        = local.name_prefix
  bucket_access_maps = var.clients.isnt.bucket_access_maps
}

module "dev_isnt_role" {
  source             = "../../../modules/iam/roles/client_role"
  name               = "dev_isnt_role"
  client_account_id  = var.clients.isnt.dev.account_id
  client_external_id = var.clients.isnt.dev.external_id
  common_tags = merge(
    local.common_tags,
    {
      plat_env_project_service = local.aggregated_tag
    }
  )
  policies_list = [
    module.isnt_bucket_access.policy.arn
  ]
}

module "prod_isnt_role" {
  source             = "../../../modules/iam/roles/client_role"
  name               = "prod_isnt_role"
  client_account_id  = var.clients.isnt.prod.account_id
  client_external_id = var.clients.isnt.prod.external_id
  common_tags = merge(
    local.common_tags,
    {
      plat_env_project_service = local.aggregated_tag
    }
  )
  policies_list = [
    module.isnt_bucket_access.policy.arn
  ]
}
