// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

syntax = "proto3";

package 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;
}
