// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package monorail;

option go_package = "infra/monorailv2/api/api_proto;monorail";

service Sitewide {
  rpc RefreshToken (RefreshTokenRequest) returns (RefreshTokenResponse) {}
  rpc GetServerStatus (GetServerStatusRequest) returns (GetServerStatusResponse) {}
}


// Next available tag: 4
message RefreshTokenRequest {
  string token = 2;
  string token_path = 3;
}


// Next available tag: 3
message RefreshTokenResponse {
  string token = 1;
  uint32 token_expires_sec = 2;
}


// Next available tag: 1
message GetServerStatusRequest {
}


// Next available tag: 4
message GetServerStatusResponse {
  string banner_message = 1;
  fixed32 banner_time = 2;
  bool read_only = 3;
}
