syntax = "proto3"; package key_value_store.v1; message KeyValue { bytes key = 1; bytes value = 2; } message KeyValueAppend { bytes key = 1; bytes value = 2; bool last = 3; } message Statement { oneof Operation { bytes delete = 1; KeyValue put = 2; KeyValueAppend append = 3; bytes delete_prefix = 4; } } message OptValue { optional bytes value = 1; } message RequestReadValue { bytes key = 1; } message ReplyReadValue { optional bytes value = 1; int64 message_index = 2; int32 num_chunks = 3; } message RequestContainsKey { bytes key = 1; } message ReplyContainsKey { bool test = 1; } message RequestContainsKeys { repeated bytes keys = 1; } message ReplyContainsKeys { repeated bool tests = 1; } message RequestReadMultiValues { repeated bytes keys = 1; } message ReplyReadMultiValues { repeated OptValue values = 1; int64 message_index = 2; int32 num_chunks = 3; } message RequestFindKeysByPrefix { bytes key_prefix = 1; } message ReplyFindKeysByPrefix { repeated bytes keys = 1; int64 message_index = 2; int32 num_chunks = 3; } message RequestFindKeyValuesByPrefix { bytes key_prefix = 1; } message ReplyFindKeyValuesByPrefix { repeated KeyValue key_values = 1; int64 message_index = 2; int32 num_chunks = 3; } message RequestWriteBatchExtended { repeated Statement statements = 1; } message ReplyWriteBatchExtended { } message RequestSpecificChunk { int64 message_index = 1; int32 index = 2; } message ReplySpecificChunk { bytes chunk = 1; } message RequestCreateNamespace { bytes namespace = 1; } message ReplyCreateNamespace { } message RequestExistsNamespace { bytes namespace = 1; } message ReplyExistsNamespace { bool exists = 1; } message RequestDeleteNamespace { bytes namespace = 1; } message ReplyDeleteNamespace { } message RequestListAll { } message ReplyListAll { repeated bytes namespaces = 1; } message RequestDeleteAll { } message ReplyDeleteAll { } service StoreProcessor { rpc ProcessReadValue (RequestReadValue) returns (ReplyReadValue) {} rpc ProcessContainsKey (RequestContainsKey) returns (ReplyContainsKey) {} rpc ProcessContainsKeys (RequestContainsKeys) returns (ReplyContainsKeys) {} rpc ProcessReadMultiValues (RequestReadMultiValues) returns (ReplyReadMultiValues) {} rpc ProcessFindKeysByPrefix (RequestFindKeysByPrefix) returns (ReplyFindKeysByPrefix) {} rpc ProcessFindKeyValuesByPrefix (RequestFindKeyValuesByPrefix) returns (ReplyFindKeyValuesByPrefix) {} rpc ProcessWriteBatchExtended (RequestWriteBatchExtended) returns (ReplyWriteBatchExtended) {} rpc ProcessSpecificChunk (RequestSpecificChunk) returns (ReplySpecificChunk) {} rpc ProcessCreateNamespace (RequestCreateNamespace) returns (ReplyCreateNamespace) {} rpc ProcessExistsNamespace (RequestExistsNamespace) returns (ReplyExistsNamespace) {} rpc ProcessDeleteNamespace (RequestDeleteNamespace) returns (ReplyDeleteNamespace) {} rpc ProcessListAll (RequestListAll) returns (ReplyListAll) {} rpc ProcessDeleteAll (RequestDeleteAll) returns (ReplyDeleteAll) {} }