mirror of
https://github.com/pfzetto/rebacs
synced 2024-11-24 20:22:49 +01:00
96 lines
2 KiB
Protocol Buffer
96 lines
2 KiB
Protocol Buffer
|
syntax = "proto3";
|
||
|
package eu.zettoit.rebacs;
|
||
|
|
||
|
service RelationService {
|
||
|
rpc Create(RelationCreateReq) returns (RelationCreateRes);
|
||
|
rpc Delete(RelationDeleteReq) returns (RelationDeleteRes);
|
||
|
rpc Exists(RelationExistsReq) returns (RelationExistsRes);
|
||
|
}
|
||
|
|
||
|
service QueryService {
|
||
|
// check if one object or objectset is related to another by a relation
|
||
|
rpc IsRelatedTo(QueryIsRelatedToReq) returns (QueryIsRelatedToRes);
|
||
|
|
||
|
// get all objects that are related to one object by a relation
|
||
|
rpc GetRelated(QueryGetRelatedReq) returns (QueryGetRelatedRes);
|
||
|
|
||
|
// get all objects that the given object has a relation with
|
||
|
rpc GetRelations(QueryGetRelationsReq) returns (QueryGetRelationsRes);
|
||
|
}
|
||
|
|
||
|
message RelationCreateReq{
|
||
|
ObjectOrSet src = 1;
|
||
|
Object dst = 2;
|
||
|
string relation = 3;
|
||
|
}
|
||
|
message RelationCreateRes{}
|
||
|
|
||
|
message RelationDeleteReq{
|
||
|
ObjectOrSet src = 1;
|
||
|
Object dst = 3;
|
||
|
string relation = 4;
|
||
|
}
|
||
|
message RelationDeleteRes{}
|
||
|
|
||
|
message RelationExistsReq{
|
||
|
ObjectOrSet src = 1;
|
||
|
Object dst = 2;
|
||
|
string relation = 3;
|
||
|
}
|
||
|
message RelationExistsRes{
|
||
|
bool exists = 1;
|
||
|
}
|
||
|
|
||
|
message QueryIsRelatedToReq{
|
||
|
ObjectOrSet src = 1;
|
||
|
Object dst = 2;
|
||
|
string relation = 3;
|
||
|
}
|
||
|
message QueryIsRelatedToRes{
|
||
|
bool related = 1;
|
||
|
}
|
||
|
|
||
|
message QueryGetRelatedReq{
|
||
|
Object dst = 1;
|
||
|
optional string relation = 2;
|
||
|
optional string namespace = 3;
|
||
|
optional uint32 depth = 4;
|
||
|
}
|
||
|
message QueryGetRelatedRes{
|
||
|
repeated QueryGetRelatedItem objects = 1;
|
||
|
}
|
||
|
message QueryGetRelatedItem{
|
||
|
string relation = 1;
|
||
|
Object src = 2;
|
||
|
}
|
||
|
|
||
|
message QueryGetRelationsReq{
|
||
|
Object src = 1;
|
||
|
optional string relation = 2;
|
||
|
optional string namespace = 3;
|
||
|
optional uint32 depth = 4;
|
||
|
}
|
||
|
message QueryGetRelationsRes{
|
||
|
repeated QueryGetRelationsItem related = 1;
|
||
|
}
|
||
|
message QueryGetRelationsItem{
|
||
|
string relation = 1;
|
||
|
Object dst = 2;
|
||
|
}
|
||
|
|
||
|
message Object{
|
||
|
string namespace = 1;
|
||
|
string id = 2;
|
||
|
}
|
||
|
message Set{
|
||
|
string namespace = 1;
|
||
|
string id = 2;
|
||
|
string relation = 3;
|
||
|
}
|
||
|
|
||
|
message ObjectOrSet {
|
||
|
string namespace = 1;
|
||
|
string id = 2;
|
||
|
optional string relation = 3;
|
||
|
}
|