diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/configuration/reload_event.proto | 1 | ||||
-rw-r--r-- | proto/configuration/rule.proto | 70 |
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); +} |