# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see RealmsCfg message:
#   https://config.luci.app/schemas/projects:realms.cfg

realms {
  name: "@root"
  bindings {
    role: "role/buildbucket.reader"
    principals: "group:all"
  }
  bindings {
    role: "role/buildbucket.triggerer"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/configs.reader"
    principals: "group:all"
  }
  bindings {
    role: "role/logdog.reader"
    principals: "group:all"
  }
  bindings {
    role: "role/logdog.writer"
    principals: "group:luci-logdog-chromium-dev-writers"
  }
  bindings {
    role: "role/scheduler.owner"
    principals: "group:project-infra-troopers"
  }
  bindings {
    role: "role/scheduler.reader"
    principals: "group:all"
  }
  bindings {
    role: "role/swarming.taskTriggerer"
    principals: "group:mdb/chrome-sre-ops-syd-interns"
    principals: "group:mdb/chrome-troopers"
  }
  enforce_in_service: "cr-buildbucket-dev"
  enforce_in_service: "luci-scheduler-dev"
}
realms {
  name: "ci"
  bindings {
    role: "role/buildbucket.builderServiceAccount"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
}
realms {
  name: "ci.shadow"
  bindings {
    role: "role/buildbucket.builderServiceAccount"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/buildbucket.creator"
    principals: "group:mdb/chrome-troopers"
  }
}
realms {
  name: "cloudbuild"
  bindings {
    role: "role/buildbucket.builderServiceAccount"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
}
realms {
  name: "dynamic-hello-world"
  bindings {
    role: "role/buildbucket.creator"
    principals: "group:mdb/chrome-troopers"
  }
  bindings {
    role: "role/buildbucket.reader"
    principals: "group:googlers"
  }
  bindings {
    role: "role/buildbucket.triggerer"
    principals: "group:mdb/chrome-troopers"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
}
realms {
  name: "loadtest"
  bindings {
    role: "role/buildbucket.builderServiceAccount"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/buildbucket.creator"
    principals: "group:mdb/chrome-troopers"
  }
  bindings {
    role: "role/buildbucket.triggerer"
    principals: "group:mdb/chrome-troopers"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
}
realms {
  name: "pools/chromeos"
  bindings {
    role: "role/swarming.poolOwner"
    principals: "group:administrators"
  }
  bindings {
    role: "role/swarming.poolUser"
    principals: "group:chromium-swarm-dev-privileged-users"
  }
  bindings {
    role: "role/swarming.poolViewer"
    principals: "group:chromium-swarm-dev-view-all-bots"
  }
}
realms {
  name: "pools/loadtest"
  bindings {
    role: "role/swarming.poolUser"
    principals: "group:mdb/chrome-sre-ops-syd-interns"
    principals: "group:mdb/chrome-troopers"
    principals: "user:swarming-bot@luci-backend-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/swarming.poolViewer"
    principals: "project:infra"
  }
  bindings {
    role: "role/swarming.taskTriggerer"
    principals: "user:swarming-bot@luci-backend-dev.iam.gserviceaccount.com"
  }
}
realms {
  name: "pools/skylab"
  bindings {
    role: "role/swarming.poolOwner"
    principals: "group:administrators"
  }
  bindings {
    role: "role/swarming.poolUser"
    principals: "group:mdb/chromeos-build-deputy"
    principals: "group:project-chromeos-skylab-schedulers"
  }
  bindings {
    role: "role/swarming.poolViewer"
    principals: "group:chromium-swarm-dev-view-all-bots"
  }
}
realms {
  name: "pools/tests"
  bindings {
    role: "role/swarming.poolOwner"
    principals: "group:mdb/chrome-troopers"
  }
  bindings {
    role: "role/swarming.poolUser"
    principals: "group:project-infra-tests-submitters"
  }
  bindings {
    role: "role/swarming.poolViewer"
    principals: "group:chromium-swarm-dev-view-all-bots"
  }
}
realms {
  name: "skylab-staging-bot-fleet/admin"
  bindings {
    role: "role/swarming.taskServiceAccount"
    principals: "user:skylab-admin-task@chromeos-service-accounts-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/swarming.taskTriggerer"
    principals: "group:mdb/chromeos-build-deputy"
    principals: "group:project-chromeos-skylab-schedulers"
  }
}
realms {
  name: "tests"
  bindings {
    role: "role/swarming.taskTriggerer"
    principals: "group:project-infra-tests-submitters"
  }
}
realms {
  name: "vm"
  bindings {
    role: "role/buildbucket.builderServiceAccount"
    principals: "user:adhoc-testing@luci-token-server-dev.iam.gserviceaccount.com"
  }
  bindings {
    role: "role/swarming.taskTriggerer"
    principals: "group:chromium-swarming-dev-led-access"
  }
}
