// 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;

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