aboutsummaryrefslogtreecommitdiffstats
path: root/proto/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'proto/configuration')
-rw-r--r--proto/configuration/typology.proto73
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);
+}