rpc Watch (stream WatchRequest) returns (stream WatchResponse) { }
message WatchRequest {
oneof request_union {
WatchCreateRequest create_request = 1;
WatchCancelRequest cancel_request = 2;
WatchProgressRequest progress_request = 3;
}
}
message WatchCreateRequest {
enum FilterType {
NOPUT = 0;
NODELETE = 1;
}
bytes key = 1;
bytes range_end = 2;
int64 start_revision = 3;
// Request keepalive notifications
bool progress_notify = 4;
repeated FilterType filters = 5;
bool prev_kv = 6;
int64 watch_id = 7;
bool fragment = 8;
}
message WatchResponse {
ResponseHeader header = 1;
int64 watch_id = 2;
bool created = 3;
bool canceled = 4;
// Indicates attempt to watch already compacted revision
int64 compact_revision = 5;
string cancel_reason = 6;
bool fragment = 7;
repeated Event events = 11;
}
message Event {
enum EventType {
PUT = 0;
DELETE = 1;
}
EventType type = 1;
KeyValue kv = 2;
KeyValue prev_kv = 3;
}
events reported before cluster consensus