diff options
Diffstat (limited to 'verigraph/src/main/proto/verigraph.proto')
-rw-r--r-- | verigraph/src/main/proto/verigraph.proto | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/verigraph/src/main/proto/verigraph.proto b/verigraph/src/main/proto/verigraph.proto new file mode 100644 index 0000000..5f77c78 --- /dev/null +++ b/verigraph/src/main/proto/verigraph.proto @@ -0,0 +1,154 @@ +syntax = "proto3"; + +package verigraph; + +option java_multiple_files = true; +option java_package = "io.grpc.verigraph"; +option java_outer_classname = "VerigraphProto"; + +// The service definition. +service Verigraph { + // Obtains a list of graphs + rpc GetGraphs (GetRequest) returns (stream GraphGrpc) {} + // Obtains a graph + rpc GetGraph (RequestID) returns (GraphGrpc) {} + // Obtains a list of Nodes + rpc GetNodes (RequestID) returns (stream NodeGrpc) {} + // Obtains a node + rpc GetNode (RequestID) returns (NodeGrpc) {} + // Obtains a list of Neighbours + rpc GetNeighbours (RequestID) returns (stream NeighbourGrpc) {} + // Obtains a Neighbour + rpc GetNeighbour (RequestID) returns (NeighbourGrpc) {} + + // Creates a graph + rpc CreateGraph (GraphGrpc) returns (NewGraph) {} + // Delete a graph + rpc DeleteGraph (RequestID) returns (Status) {} + // Updates a graph + rpc UpdateGraph (GraphGrpc) returns (NewGraph) {} + // Verify a policy + rpc VerifyPolicy (Policy) returns (VerificationGrpc) {} + + // Creates a Node + rpc CreateNode (NodeGrpc) returns (NewNode) {} + // Delete a Node + rpc DeleteNode (RequestID) returns (Status) {} + // Updates a Node + rpc UpdateNode (NodeGrpc) returns (NewNode) {} + // Configures a Node + rpc ConfigureNode (ConfigurationGrpc) returns (Status) {} + + // Creates a neighbour + rpc CreateNeighbour (NeighbourGrpc) returns (NewNeighbour) {} + // Delete a neighbour + rpc DeleteNeighbour (RequestID) returns (Status) {} + // Updates a neighbour + rpc UpdateNeighbour (NeighbourGrpc) returns (NewNeighbour) {} +} + +message GetRequest { +} + +message RequestID { + int64 idGraph = 1; + int64 idNode = 2; + int64 idNeighbour = 3; +} + +message Policy{ + int64 idGraph = 1; + string source = 2; + string destination = 3; + enum PolicyType { + reachability = 0; + isolation = 1; + traversal = 2; + } + PolicyType type = 4; + string middlebox = 5; +} + +message ConfigurationGrpc{ + int64 idGraph = 1; + int64 idNode = 2; + string description = 3; + string configuration = 4; + string id = 5; +} + +message NodeGrpc{ + int64 idGraph = 1; + string name = 2; + int64 id = 3; //long + enum FunctionalType { + antispam = 0; + cache = 1; + dpi = 2; + endhost = 3; + endpoint = 4; + fieldmodifier = 5; + firewall = 6; + mailclient = 7; + mailserver = 8; + nat = 9; + vpnaccess = 10; + vpnexit = 11; + webclient = 12; + webserver = 13; + } + FunctionalType functional_type = 4; + repeated NeighbourGrpc neighbour = 5; + ConfigurationGrpc configuration = 6; + string errorMessage = 7; +} + +message GraphGrpc{ + int64 id = 1; //long + repeated NodeGrpc node = 2; + string errorMessage = 3; +} + +message NeighbourGrpc{ + int64 idGraph = 1; + int64 idNode = 2; + string name = 3; + int64 id = 4; //long + string errorMessage = 5; +} + +message NewGraph{ + bool success = 1; + GraphGrpc graph = 2; + string errorMessage = 3; +} + +message NewNode{ + bool success = 1; + NodeGrpc node = 2; + string errorMessage = 3; +} + +message NewNeighbour{ + bool success = 1; + NeighbourGrpc neighbour = 2; + string errorMessage = 3; +} + +message TestGrpc { + repeated NodeGrpc node = 1; + string result = 2; +} + +message VerificationGrpc{ + bool successOfOperation = 1; + string result = 2; + string comment = 3; + repeated TestGrpc test = 4; + string errorMessage = 5; +} + +message Status{ + bool success = 1; + string errorMessage = 2; +}
\ No newline at end of file |