289 lines
6.8 KiB
Protocol Buffer
289 lines
6.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
package waymaker.collections;
|
|
|
|
option go_package = "/apis/waymaker_collections";
|
|
|
|
// ============================================================
|
|
// WaymakerCollectionsService — Hash / Set / Queue data
|
|
// structures layered on streams. Each store name is the
|
|
// underlying stream name; subjects encode the
|
|
// (hash_key|set_key) + (field|member) tuple; member-existence
|
|
// uses a "1" marker payload (Set) or per-field values (Hash).
|
|
//
|
|
// Lives in its own proto + crate so the wire surface is
|
|
// composable; handlers continue to share `StreamsController`
|
|
// state in the server crate.
|
|
// ============================================================
|
|
|
|
service WaymakerCollectionsService {
|
|
// ----- Hash -------------------------------------------------
|
|
rpc CreateHashStore (CreateHashStoreRequest) returns (CreateHashStoreResponse);
|
|
rpc DeleteHashStore (DeleteHashStoreRequest) returns (DeleteHashStoreResponse);
|
|
rpc HashSet (HashSetRequest) returns (HashSetResponse);
|
|
rpc HashGet (HashGetRequest) returns (HashGetResponse);
|
|
rpc HashExists (HashExistsRequest) returns (HashExistsResponse);
|
|
rpc HashDelete (HashDeleteRequest) returns (HashDeleteResponse);
|
|
rpc HashGetAll (HashGetAllRequest) returns (HashGetAllResponse);
|
|
rpc HashFields (HashFieldsRequest) returns (HashFieldsResponse);
|
|
rpc HashLen (HashLenRequest) returns (HashLenResponse);
|
|
|
|
// ----- Set --------------------------------------------------
|
|
rpc CreateSetStore (CreateSetStoreRequest) returns (CreateSetStoreResponse);
|
|
rpc DeleteSetStore (DeleteSetStoreRequest) returns (DeleteSetStoreResponse);
|
|
rpc SetAdd (SetAddRequest) returns (SetAddResponse);
|
|
rpc SetRemove (SetRemoveRequest) returns (SetRemoveResponse);
|
|
rpc SetIsMember (SetIsMemberRequest) returns (SetIsMemberResponse);
|
|
rpc SetMembers (SetMembersRequest) returns (SetMembersResponse);
|
|
rpc SetLen (SetLenRequest) returns (SetLenResponse);
|
|
|
|
// ----- Queue ------------------------------------------------
|
|
rpc CreateQueue (CreateQueueRequest) returns (CreateQueueResponse);
|
|
rpc DeleteQueue (DeleteQueueRequest) returns (DeleteQueueResponse);
|
|
rpc QueuePush (QueuePushRequest) returns (QueuePushResponse);
|
|
rpc QueuePop (QueuePopRequest) returns (QueuePopResponse);
|
|
rpc QueueRange (QueueRangeRequest) returns (QueueRangeResponse);
|
|
rpc QueueLen (QueueLenRequest) returns (QueueLenResponse);
|
|
}
|
|
|
|
// ===== Hash ==================================================
|
|
|
|
message CreateHashStoreRequest {
|
|
string name = 1;
|
|
uint64 max_bytes = 2;
|
|
bool ephemeral = 3;
|
|
}
|
|
message CreateHashStoreResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
message DeleteHashStoreRequest { string name = 1; }
|
|
message DeleteHashStoreResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message HashSetRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
string field = 3;
|
|
bytes value = 4;
|
|
}
|
|
message HashSetResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
uint64 revision = 4;
|
|
}
|
|
|
|
message HashGetRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
string field = 3;
|
|
}
|
|
message HashGetResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
optional bytes value = 4;
|
|
uint64 revision = 5;
|
|
}
|
|
|
|
message HashExistsRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
string field = 3;
|
|
}
|
|
message HashExistsResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
bool exists = 4;
|
|
}
|
|
|
|
message HashDeleteRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
string field = 3;
|
|
}
|
|
message HashDeleteResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message HashGetAllRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
}
|
|
message HashGetAllResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
repeated HashFieldEntry entries = 4;
|
|
}
|
|
message HashFieldEntry {
|
|
string field = 1;
|
|
bytes value = 2;
|
|
uint64 revision = 3;
|
|
}
|
|
|
|
message HashFieldsRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
}
|
|
message HashFieldsResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
repeated string fields = 4;
|
|
}
|
|
|
|
message HashLenRequest {
|
|
string bucket = 1;
|
|
string hash_key = 2;
|
|
}
|
|
message HashLenResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
uint64 count = 4;
|
|
}
|
|
|
|
// ===== Set ====================================================
|
|
|
|
message CreateSetStoreRequest {
|
|
string name = 1;
|
|
uint64 max_bytes = 2;
|
|
bool ephemeral = 3;
|
|
}
|
|
message CreateSetStoreResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
message DeleteSetStoreRequest { string name = 1; }
|
|
message DeleteSetStoreResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message SetAddRequest {
|
|
string bucket = 1;
|
|
string set_key = 2;
|
|
string member = 3;
|
|
}
|
|
message SetAddResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message SetRemoveRequest {
|
|
string bucket = 1;
|
|
string set_key = 2;
|
|
string member = 3;
|
|
}
|
|
message SetRemoveResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message SetIsMemberRequest {
|
|
string bucket = 1;
|
|
string set_key = 2;
|
|
string member = 3;
|
|
}
|
|
message SetIsMemberResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
bool is_member = 4;
|
|
}
|
|
|
|
message SetMembersRequest {
|
|
string bucket = 1;
|
|
string set_key = 2;
|
|
}
|
|
message SetMembersResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
repeated string members = 4;
|
|
}
|
|
|
|
message SetLenRequest {
|
|
string bucket = 1;
|
|
string set_key = 2;
|
|
}
|
|
message SetLenResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
uint64 count = 4;
|
|
}
|
|
|
|
// ===== Queue =================================================
|
|
|
|
message CreateQueueRequest {
|
|
string name = 1;
|
|
uint64 max_bytes = 2;
|
|
uint64 max_messages = 3;
|
|
bool ephemeral = 4;
|
|
}
|
|
message CreateQueueResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
message DeleteQueueRequest { string name = 1; }
|
|
message DeleteQueueResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message QueuePushRequest {
|
|
string bucket = 1;
|
|
bytes value = 2;
|
|
}
|
|
message QueuePushResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
uint64 sequence = 4;
|
|
}
|
|
|
|
message QueuePopRequest {
|
|
string bucket = 1;
|
|
}
|
|
message QueuePopResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
optional bytes value = 4;
|
|
}
|
|
|
|
message QueueRangeRequest {
|
|
string bucket = 1;
|
|
uint64 from_sequence = 2;
|
|
uint64 limit = 3;
|
|
}
|
|
message QueueRangeResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
repeated bytes values = 4;
|
|
}
|
|
|
|
message QueueLenRequest { string bucket = 1; }
|
|
message QueueLenResponse {
|
|
bool success = 1;
|
|
string result_code = 2;
|
|
string message = 3;
|
|
uint64 count = 4;
|
|
}
|