| syntax = "proto3"; |
| package mvccpb; |
| |
| import "gogoproto/gogo.proto"; |
| |
| option (gogoproto.marshaler_all) = true; |
| option (gogoproto.sizer_all) = true; |
| option (gogoproto.unmarshaler_all) = true; |
| option (gogoproto.goproto_getters_all) = false; |
| option (gogoproto.goproto_enum_prefix_all) = false; |
| |
| message KeyValue { |
| // key is the key in bytes. An empty key is not allowed. |
| bytes key = 1; |
| // create_revision is the revision of last creation on this key. |
| int64 create_revision = 2; |
| // mod_revision is the revision of last modification on this key. |
| int64 mod_revision = 3; |
| // version is the version of the key. A deletion resets |
| // the version to zero and any modification of the key |
| // increases its version. |
| int64 version = 4; |
| // value is the value held by the key, in bytes. |
| bytes value = 5; |
| // lease is the ID of the lease that attached to key. |
| // When the attached lease expires, the key will be deleted. |
| // If lease is 0, then no lease is attached to the key. |
| int64 lease = 6; |
| } |
| |
| message Event { |
| enum EventType { |
| PUT = 0; |
| DELETE = 1; |
| } |
| // type is the kind of event. If type is a PUT, it indicates |
| // new data has been stored to the key. If type is a DELETE, |
| // it indicates the key was deleted. |
| EventType type = 1; |
| // kv holds the KeyValue for the event. |
| // A PUT event contains current kv pair. |
| // A PUT event with kv.Version=1 indicates the creation of a key. |
| // A DELETE/EXPIRE event contains the deleted key with |
| // its modification revision set to the revision of deletion. |
| KeyValue kv = 2; |
| |
| // prev_kv holds the key-value pair before the event happens. |
| KeyValue prev_kv = 3; |
| } |