syntax = "proto3"; package rendezvous.pb; message Message { enum MessageType { REGISTER = 0; REGISTER_RESPONSE = 1; DISCOVER = 2; DISCOVER_RESPONSE = 3; } enum ResponseStatus { OK = 0; E_INVALID_NAMESPACE = 100; E_INVALID_PEER_INFO = 101; E_INVALID_TTL = 102; E_NOT_AUTHORIZED = 200; E_INTERNAL_ERROR = 300; E_UNAVAILABLE = 400; } message Register { string ns = 1; bytes signedPeerRecord = 2; int64 ttl = 3; // in seconds } message RegisterResponse { ResponseStatus status = 1; string statusText = 2; int64 ttl = 3; } message Discover { string ns = 1; int64 limit = 2; } message DiscoverResponse { repeated Register registrations = 1; ResponseStatus status = 3; string statusText = 4; } MessageType type = 1; Register register = 2; RegisterResponse registerResponse = 3; Discover discover = 4; DiscoverResponse discoverResponse = 5; }