syntax = "proto3";
package event_store.client.gossip;
option java_package = "com.eventstore.dbclient.proto.gossip";

import "shared.proto";

service Gossip {
	rpc Read (event_store.client.shared.Empty) returns (ClusterInfo);
}

message ClusterInfo {
	repeated MemberInfo members = 1;
}

message EndPoint {
	string address = 1;
	uint32 port = 2;
}

message MemberInfo {
	enum VNodeState {
		Initializing = 0;
		DiscoverLeader = 1;
		Unknown = 2;
		PreReplica = 3;
		CatchingUp = 4;
		Clone = 5;
		Follower = 6;
		PreLeader = 7;
		Leader = 8;
		Manager = 9;
		ShuttingDown = 10;
		Shutdown = 11;
		ReadOnlyLeaderless = 12;
		PreReadOnlyReplica = 13;
		ReadOnlyReplica = 14;
		ResigningLeader = 15;
	}
	event_store.client.shared.UUID instance_id = 1;
	int64 time_stamp = 2;
	VNodeState state = 3;
	bool is_alive = 4;
	EndPoint http_end_point = 5;
}