syntax = "proto3";

option go_package = "pbgen/manager";

service TidbBackend {
  rpc WatchBackendV2(WatchBackendRequestV2) returns (stream BackendResponseV2);
  // GetBackendV2 get backend from manager's assign cache.
  rpc GetBackendV2(GetBackendRequestV2) returns (GetBackendResponseV2);
}

message WatchBackendRequestV2 {
  string token = 1;
  string gateway_hostname = 2;
}

message BackendResponseV2 {
  repeated Backend backends = 1;
  string tidb_pool = 2;
  string comment = 3;
  // mod_revision is the latest modify revision of etcd endpoints or replicas kv.
  int64 mod_revision = 4;
  int32 replicas = 5;
}

message Backend {
  string ip = 1;
  string pod_name = 2;
}

message GetBackendRequestV2 {
  string token = 1;
  string gateway_hostname = 2;
}

message GetBackendResponseV2 {
  repeated BackendResponseV2 responses = 1;
}
