hyperlog/crates/hyperlog-protos/proto/hyperlog.proto

79 lines
1.5 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package hyperlog;
message UserGraphItem {
map<string, GraphItem> items = 1;
}
message SectionGraphItem {
map<string, GraphItem> items = 1;
}
message ItemStateNotDone {}
message ItemStateDone {}
message ItemGraphItem {
string title = 1;
string description = 2;
oneof item_state {
ItemStateNotDone not_done = 3;
ItemStateDone done = 4;
}
}
message GraphItem {
string path = 1;
oneof contents {
UserGraphItem user = 2;
SectionGraphItem section = 3;
ItemGraphItem item = 4;
}
}
service Graph {
// Commands
rpc CreateSection(CreateSectionRequest) returns (CreateSectionResponse);
rpc CreateRoot(CreateRootRequest) returns (CreateRootResponse);
rpc CreateItem(CreateItemRequest) returns (CreateItemResponse);
// Queriers
rpc GetAvailableRoots(GetAvailableRootsRequest) returns (GetAvailableRootsResponse);
rpc Get(GetRequest) returns (GetReply);
}
// Commands
message CreateSectionRequest {
string root = 1;
repeated string path = 2;
}
message CreateSectionResponse {}
message CreateRootRequest {
string root = 1;
}
message CreateRootResponse {}
message CreateItemRequest {
string root = 1;
repeated string path = 2;
ItemGraphItem item = 3;
}
message CreateItemResponse {}
// Queries
message GetAvailableRootsRequest {}
message GetAvailableRootsResponse {
repeated string roots = 1;
}
message GetRequest {
string root = 1;
repeated string paths = 2;
}
message GetReply {
GraphItem item = 1;
}