diff options
Diffstat (limited to 'proto/configuration')
-rw-r--r-- | proto/configuration/typology.proto | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/proto/configuration/typology.proto b/proto/configuration/typology.proto new file mode 100644 index 0000000..bae4630 --- /dev/null +++ b/proto/configuration/typology.proto @@ -0,0 +1,73 @@ +syntax = "proto3"; + +package configuration.typology; + +message Workflow { + double alert_threshold = 1; + optional double interdiction_threshold = 2; +} + +message TypologyRuleWeight { + string ref = 1; + double wght = 2; +} + +message TypologyRule { + string id = 1; + string version = 2; + repeated TypologyRuleWeight wghts = 3; +} + +message TypologyConfiguration { + string id = 1; + string description = 2; + string version = 3; + Workflow workflow = 4; + repeated TypologyRule rules = 5; + Expression expression = 6; +} + +enum Operator { + ADD = 0; + MULTIPLY = 1; + SUBTRACT = 2; + DIVIDE = 3; +} + +message Term { + string id = 1; + string version = 2; +} + +message Expression { + Operator operator = 1; + repeated Term terms = 2; +} + +message TypologyConfigurationRequest { + string id = 1; + string version = 2; +} + +message DeleteTypologyConfigurationRequest { + string id = 1; + string version = 2; +} + +message GetTypologyConfigResponse { + optional TypologyConfiguration configuration = 1; +} + +message UpdateTypologyConfigRequest { + TypologyConfiguration configuration = 1; +} + +service QueryTypologies { + rpc GetTypologyConfiguration (TypologyConfigurationRequest) returns (GetTypologyConfigResponse); +} + +service MutateTypologies { + rpc CreateTypologyConfiguration (TypologyConfiguration) returns (TypologyConfiguration); + rpc UpdateTypologyConfiguration (UpdateTypologyConfigRequest) returns (TypologyConfiguration); + rpc DeleteTypologyConfiguration (DeleteTypologyConfigurationRequest) returns (TypologyConfiguration); +} |