syntax = "proto3"; package ricochet; message Contact { string address = 2; string nickname = 3; string whenCreated = 4; string lastConnected = 5; ContactRequest request = 6; enum Status { UNKNOWN = 0; OFFLINE = 1; ONLINE = 2; REQUEST = 3; REJECTED = 4; } Status status = 10; } message ContactRequest { enum Direction { INBOUND = 0; OUTBOUND = 1; } Direction direction = 1; string address = 2; string nickname = 3; string text = 4; string fromNickname = 5; string whenCreated = 6; bool rejected = 7; string whenDelivered = 8; string whenRejected = 9; string remoteError = 10; } message MonitorContactsRequest { } message ContactEvent { enum Type { NULL = 0; POPULATE = 1; ADD = 2; UPDATE = 3; DELETE = 4; } Type type = 1; oneof subject { Contact contact = 2; ContactRequest request = 3; } } message AddContactReply { } message DeleteContactRequest { string address = 1; } message DeleteContactReply { } message RejectInboundRequestReply { }