syntax = "proto3";

package gitaly;

option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";

import "lint.proto";

service ServerService {
  option (intercepted) = true;

  rpc ServerInfo(ServerInfoRequest) returns (ServerInfoResponse);
  rpc DiskStatistics(DiskStatisticsRequest) returns (DiskStatisticsResponse);
}

message ServerInfoRequest {}

message ServerInfoResponse {
  message StorageStatus {
    string storage_name = 1;
    bool readable = 2;
    bool writeable = 3;
    string fs_type = 4;
    string filesystem_id = 5;
    uint32 replication_factor = 6;
  }

  string server_version = 1;
  string git_version = 2;
  repeated StorageStatus storage_statuses = 3;
}

message DiskStatisticsRequest {}

message DiskStatisticsResponse {
  message StorageStatus {
// When both available and used fields are equal 0 that means that
// Gitaly was unable to determine storage stats.
    string storage_name = 1;
    int64 available = 2;
    int64 used = 3;
  }

  repeated StorageStatus storage_statuses = 1;
}
