aboutsummaryrefslogtreecommitdiffstats
path: root/proto/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'proto/configuration')
-rw-r--r--proto/configuration/reload_event.proto1
-rw-r--r--proto/configuration/rule.proto70
2 files changed, 71 insertions, 0 deletions
diff --git a/proto/configuration/reload_event.proto b/proto/configuration/reload_event.proto
index a77645f..569de80 100644
--- a/proto/configuration/reload_event.proto
+++ b/proto/configuration/reload_event.proto
@@ -4,4 +4,5 @@ package configuration;
enum ReloadEvent {
ROUTING = 0;
+ RULE = 1;
}
diff --git a/proto/configuration/rule.proto b/proto/configuration/rule.proto
new file mode 100644
index 0000000..f963fde
--- /dev/null
+++ b/proto/configuration/rule.proto
@@ -0,0 +1,70 @@
+syntax = "proto3";
+
+package configuration.rule;
+
+import "google/protobuf/struct.proto";
+
+message Timeframe {
+ double threshold = 1;
+}
+
+message OutcomeResult {
+ string sub_rule_ref = 1;
+ string reason = 2;
+}
+
+message Band {
+ string sub_rule_ref = 1;
+ string reason = 2;
+ optional double lower_limit = 3;
+ optional double upper_limit = 4;
+}
+
+message Case {
+ string sub_rule_ref = 1;
+ string reason = 2;
+ double value = 3;
+}
+
+message Config {
+ optional google.protobuf.Value parameters = 1;
+ repeated OutcomeResult exit_conditions = 2;
+ repeated Band bands = 3;
+ repeated Case cases = 4;
+ repeated Timeframe time_frames = 5;
+}
+
+message RuleConfiguration {
+ string id = 1;
+ string version = 2;
+ Config configuration = 3;
+ string description = 4;
+}
+
+message RuleConfigurationRequest {
+ string id = 1;
+ string version = 2;
+}
+
+message DeleteRuleConfigurationRequest {
+ string id = 1;
+ string version = 2;
+}
+
+message UpdateRuleRequest {
+ RuleConfiguration configuration = 1;
+}
+
+message GetRuleConfigResponse {
+ optional RuleConfiguration configuration = 1;
+}
+
+service QueryRuleConfiguration {
+ rpc GetRuleConfiguration (RuleConfigurationRequest) returns (GetRuleConfigResponse);
+}
+
+service MutateRuleConfiguration {
+ rpc CreateRuleConfiguration (RuleConfiguration) returns (RuleConfiguration);
+ rpc UpdateRuleConfiguration (UpdateRuleRequest) returns (RuleConfiguration);
+ rpc DeleteRuleConfiguration (DeleteRuleConfigurationRequest) returns (RuleConfiguration);
+}