1 /* This Protocol Buffer has been updated for supporting TOSCA-based objects.
2 * The only granularity for executing CRUD operations is at the TopologyTemplate level.
4 * The names of the objects are assigned according to the TOSCA standard, and can be
5 * mapped as follows in the Verigraph domain:
6 * TopologyTemplate -> Graph
8 * RelationshipTemplate -> Neighbour (partial)
15 option java_multiple_files = true;
16 option java_package = "it.polito.verigraph.grpc";
17 option java_outer_classname = "VerigraphProto";
21 // Obtains a list of graphs
22 rpc GetGraphs (GetRequest) returns (stream GraphGrpc) {}
24 rpc GetGraph (RequestID) returns (GraphGrpc) {}
25 // Obtains a list of Nodes
26 rpc GetNodes (RequestID) returns (stream NodeGrpc) {}
28 rpc GetNode (RequestID) returns (NodeGrpc) {}
29 // Obtains a list of Neighbours
30 rpc GetNeighbours (RequestID) returns (stream NeighbourGrpc) {}
31 // Obtains a Neighbour
32 rpc GetNeighbour (RequestID) returns (NeighbourGrpc) {}
35 rpc CreateGraph (GraphGrpc) returns (NewGraph) {}
37 rpc DeleteGraph (RequestID) returns (Status) {}
39 rpc UpdateGraph (GraphGrpc) returns (NewGraph) {}
41 rpc VerifyPolicy (Policy) returns (VerificationGrpc) {}
44 rpc CreateNode (NodeGrpc) returns (NewNode) {}
46 rpc DeleteNode (RequestID) returns (Status) {}
48 rpc UpdateNode (NodeGrpc) returns (NewNode) {}
50 rpc ConfigureNode (ConfigurationGrpc) returns (Status) {}
52 // Creates a neighbour
53 rpc CreateNeighbour (NeighbourGrpc) returns (NewNeighbour) {}
55 rpc DeleteNeighbour (RequestID) returns (Status) {}
56 // Updates a neighbour
57 rpc UpdateNeighbour (NeighbourGrpc) returns (NewNeighbour) {}
60 // Obtain a list of topology templates
61 rpc GetTopologyTemplates (GetRequest) returns (stream TopologyTemplateGrpc) {}
62 // Obtain a topology template
63 rpc GetTopologyTemplate (ToscaRequestID) returns (TopologyTemplateGrpc) {}
64 // Create a TopologyTemplate
65 rpc CreateTopologyTemplate (TopologyTemplateGrpc) returns (NewTopologyTemplate) {}
66 // Delete a TopologyTemplate
67 rpc DeleteTopologyTemplate (ToscaRequestID) returns (Status) {}
68 // Update a TopologyTemplate
69 rpc UpdateTopologyTemplate (TopologyTemplateGrpc) returns (NewTopologyTemplate) {}
70 // Verify a ToscaPolicy
71 rpc VerifyToscaPolicy (ToscaPolicy) returns (ToscaVerificationGrpc) {}
82 int64 idNeighbour = 3;
88 string destination = 3;
98 message ConfigurationGrpc{
101 string description = 3;
102 string configuration = 4;
110 enum FunctionalType {
126 FunctionalType functional_type = 4;
127 repeated NeighbourGrpc neighbour = 5;
128 ConfigurationGrpc configuration = 6;
129 string errorMessage = 7;
134 repeated NodeGrpc node = 2;
135 string errorMessage = 3;
138 message NeighbourGrpc{
143 string errorMessage = 5;
149 string errorMessage = 3;
155 string errorMessage = 3;
158 message NewNeighbour{
160 NeighbourGrpc neighbour = 2;
161 string errorMessage = 3;
165 repeated NodeGrpc node = 1;
169 message VerificationGrpc{
170 bool successOfOperation = 1;
173 repeated TestGrpc test = 4;
174 string errorMessage = 5;
179 string errorMessage = 2;
182 /** TOSCA Messages */
183 message ToscaRequestID {
184 string idTopologyTemplate = 1;
187 message TopologyTemplateGrpc{
190 repeated NodeTemplateGrpc nodeTemplate = 3;
191 repeated RelationshipTemplateGrpc relationshipTemplate = 4;
192 string errorMessage = 5;
195 message NewTopologyTemplate{
197 TopologyTemplateGrpc topologyTemplate = 2;
198 string errorMessage = 3;
201 message NodeTemplateGrpc{
221 ToscaConfigurationGrpc configuration = 4;
222 string errorMessage = 5;
225 message RelationshipTemplateGrpc{
226 string idSourceNodeTemplate = 1;
227 string idTargetNodeTemplate = 2;
230 string errorMessage = 5;
234 string idTopologyTemplate = 1;
236 string destination = 3;
243 string middlebox = 5;
246 message ToscaConfigurationGrpc{
248 string description = 2;
249 string configuration = 3;
252 message ToscaTestGrpc {
253 repeated NodeTemplateGrpc nodeTemplate = 1;
257 message ToscaVerificationGrpc{
258 bool successOfOperation = 1;
261 repeated ToscaTestGrpc test = 4;
262 string errorMessage = 5;