resource "postgresql_role" "slz_admin" {
  name            = "slz_admin"
  login           = true
  create_database = true
  create_role     = true

  roles = [
    "rds_superuser",
    postgresql_role.slz_owner.name,
    "admin_user",
    "chartmetric_owner",
  ]
}

resource "postgresql_role" "slz_owner" {
  name            = "slz_owner"
  login           = true
  create_database = true
  create_role     = false

  roles = [
    "admin_user",
  ]
}

resource "postgresql_role" "slz_user" {
  name  = "slz_user"
  login = true
}

resource "postgresql_role" "slz_user_iam" {
  name  = "slz_user_iam"
  login = true

  roles = [
    postgresql_role.slz_user.name,
    "rds_iam",
  ]
}

resource "postgresql_role" "slz_user_proxy" {
  name  = "slz_user_proxy"
  login = true

  roles = [
    postgresql_role.slz_user.name,
  ]
}

resource "postgresql_role" "slz_reader" {
  name  = "slz_reader"
  login = true
}

resource "postgresql_role" "slz_reader_iam" {
  name  = "slz_reader_iam"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
    "rds_iam",
  ]
}

resource "postgresql_role" "slz_reader_proxy" {
  name  = "slz_reader_proxy"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
  ]
}

resource "postgresql_role" "carlosv" {
  name  = "carlosv"
  login = true

  roles = [
    "slz_reader_proxy",
    postgresql_role.slz_brandwatch_restart.name,
  ]
}

resource "postgresql_role" "carlosv_user" {
  name    = "carlosv_user"
  login   = true
  inherit = false

  roles = [
    "slz_reader_proxy",
    postgresql_role.slz_brandwatch_restart.name,
  ]
}

resource "postgresql_role" "etaranenko" {
  name  = "etaranenko"
  login = true

  roles = [
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "kshrayber" {
  name  = "kshrayber"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
  ]
}

resource "postgresql_role" "l2support" {
  name  = "l2support"
  login = true

  roles = [
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "oshainoha" {
  name  = "oshainoha"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "wcheong" {
  name  = "wcheong"
  login = true

  roles = [
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "chartmetric_owner" {
  name            = "chartmetric_owner"
  login           = true
  create_database = true
  create_role     = false
}

resource "postgresql_role" "chartmetric_user" {
  name  = "chartmetric_user"
  login = true

  roles = [
    "rds_iam",
  ]
}

resource "postgresql_role" "chartmetric_user_proxy" {
  name  = "chartmetric_user_proxy"
  login = true
}

resource "postgresql_role" "chartmetric_reader" {
  name  = "chartmetric_reader"
  login = true

  roles = [
    "rds_iam",
  ]
}

resource "postgresql_role" "chartmetric_reader_proxy" {
  name  = "chartmetric_reader_proxy"
  login = true
}

resource "postgresql_role" "readonly_user" {
  name  = "readonly_user"
  login = true

  roles = [
    "rds_iam"
  ]
}

resource "postgresql_role" "write_user" {
  name  = "write_user"
  login = true

  roles = [
    "rds_iam"
  ]
}

resource "postgresql_role" "fasadullayev" {
  name  = "fasadullayev"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
    "slz_reader_proxy",
  ]
}

moved {
  from = postgresql_role.efedorov
  to   = postgresql_role.reader["efedorov"]
}

resource "postgresql_role" "reader" {
  for_each = toset(var.readers)
  name     = each.value
  login    = true

  roles = [
    postgresql_role.slz_reader.name,
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "slz_brandwatch_restart" {
  name  = "slz_brandwatch_restart"
  login = false

  roles = [
    postgresql_role.slz_reader.name,
    "slz_reader_proxy",
  ]
}

resource "postgresql_role" "monty_user" {
  name  = "monty_user"
  login = true

  roles = [
    postgresql_role.slz_reader.name,
  ]
}
