package com.orbekk.same; option java_generic_services = true; message Empty { } message UpdateComponentResponse { required bool success = 1; } message Component { required string id = 1; required string data = 2; required int64 revision = 3; } // Next tag: 5 message MasterState { optional string master_url = 1; optional int32 master_id = 2; optional string network_name = 3; optional string master_location = 4; } message ClientState { optional string url = 1; } message NetworkDirectory { repeated MasterState network = 1; } service Client { rpc SetState (Component) returns (Empty); rpc MasterTakeover (MasterState) returns (Empty); rpc MasterDown (MasterState) returns (Empty); } service Master { rpc JoinNetworkRequest (ClientState) returns (Empty); rpc UpdateStateRequest (Component) returns (UpdateComponentResponse); } service Directory { rpc RegisterNetwork (MasterState) returns (Empty); rpc GetNetworks (Empty) returns (NetworkDirectory); }