From 60e47fefa4edd4e8df395f73411fd9a3de6bdd30 Mon Sep 17 00:00:00 2001 From: Or Novogroder <108669655+OrNovo@users.noreply.github.com> Date: Wed, 3 Jul 2024 18:20:44 +0300 Subject: [PATCH] patch - adding less_than_or_equal and more_than_or_equal to promql alert (#240) * patch - adding less_than_or_equal_usual and more_than_or_equal_usual to metric.promql alert * adding descriptions --- CHANGELOG.md | 5 + .../grpc/alerts/v2/alert_condition.pb.go | 1870 +++++++++++------ coralogix/resource_coralogix_alert.go | 73 +- docs/data-sources/alert.md | 2 + docs/resources/alert.md | 20 +- 5 files changed, 1290 insertions(+), 680 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e7a10d7..3729724d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -580,3 +580,8 @@ Breaking Changes: * Roles are replaced by "Presets" and "Permission" keys. Read more [here](https://coralogix.com/docs/api-keys/). Various documentation upgrades + +## Release 1.16.1 +New Features: +#### resource/coralogix_alert +* adding `more_than_or_equal_usual` and `less_than_or_equal_usual` conditions to `metric.promql` alert. \ No newline at end of file diff --git a/coralogix/clientset/grpc/alerts/v2/alert_condition.pb.go b/coralogix/clientset/grpc/alerts/v2/alert_condition.pb.go index 8f4984fb..017927a2 100644 --- a/coralogix/clientset/grpc/alerts/v2/alert_condition.pb.go +++ b/coralogix/clientset/grpc/alerts/v2/alert_condition.pb.go @@ -21,51 +21,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type EvaluationWindow int32 - -const ( - EvaluationWindow_EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED EvaluationWindow = 0 - EvaluationWindow_EVALUATION_WINDOW_DYNAMIC EvaluationWindow = 1 -) - -// Enum value maps for EvaluationWindow. -var ( - EvaluationWindow_name = map[int32]string{ - 0: "EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED", - 1: "EVALUATION_WINDOW_DYNAMIC", - } - EvaluationWindow_value = map[string]int32{ - "EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED": 0, - "EVALUATION_WINDOW_DYNAMIC": 1, - } -) - -func (x EvaluationWindow) Enum() *EvaluationWindow { - p := new(EvaluationWindow) - *p = x - return p -} - -func (x EvaluationWindow) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (EvaluationWindow) Descriptor() protoreflect.EnumDescriptor { - return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[0].Descriptor() -} - -func (EvaluationWindow) Type() protoreflect.EnumType { - return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[0] -} - -func (x EvaluationWindow) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use EvaluationWindow.Descriptor instead. -func (EvaluationWindow) EnumDescriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{0} -} type Timeframe int32 @@ -170,55 +125,49 @@ func (Timeframe) EnumDescriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{1} } -type RelativeTimeframe int32 +type EvaluationWindow int32 const ( - RelativeTimeframe_RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED RelativeTimeframe = 0 - RelativeTimeframe_RELATIVE_TIMEFRAME_DAY RelativeTimeframe = 1 - RelativeTimeframe_RELATIVE_TIMEFRAME_WEEK RelativeTimeframe = 2 - RelativeTimeframe_RELATIVE_TIMEFRAME_MONTH RelativeTimeframe = 3 + EvaluationWindow_EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED EvaluationWindow = 0 + EvaluationWindow_EVALUATION_WINDOW_DYNAMIC EvaluationWindow = 1 ) -// Enum value maps for RelativeTimeframe. +// Enum value maps for EvaluationWindow. var ( - RelativeTimeframe_name = map[int32]string{ - 0: "RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED", - 1: "RELATIVE_TIMEFRAME_DAY", - 2: "RELATIVE_TIMEFRAME_WEEK", - 3: "RELATIVE_TIMEFRAME_MONTH", + EvaluationWindow_name = map[int32]string{ + 0: "EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED", + 1: "EVALUATION_WINDOW_DYNAMIC", } - RelativeTimeframe_value = map[string]int32{ - "RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED": 0, - "RELATIVE_TIMEFRAME_DAY": 1, - "RELATIVE_TIMEFRAME_WEEK": 2, - "RELATIVE_TIMEFRAME_MONTH": 3, + EvaluationWindow_value = map[string]int32{ + "EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED": 0, + "EVALUATION_WINDOW_DYNAMIC": 1, } ) -func (x RelativeTimeframe) Enum() *RelativeTimeframe { - p := new(RelativeTimeframe) +func (x EvaluationWindow) Enum() *EvaluationWindow { + p := new(EvaluationWindow) *p = x return p } -func (x RelativeTimeframe) String() string { +func (x EvaluationWindow) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (RelativeTimeframe) Descriptor() protoreflect.EnumDescriptor { +func (EvaluationWindow) Descriptor() protoreflect.EnumDescriptor { return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[2].Descriptor() } -func (RelativeTimeframe) Type() protoreflect.EnumType { +func (EvaluationWindow) Type() protoreflect.EnumType { return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[2] } -func (x RelativeTimeframe) Number() protoreflect.EnumNumber { +func (x EvaluationWindow) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use RelativeTimeframe.Descriptor instead. -func (RelativeTimeframe) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use EvaluationWindow.Descriptor instead. +func (EvaluationWindow) EnumDescriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{2} } @@ -286,6 +235,58 @@ func (CleanupDeadmanDuration) EnumDescriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{3} } +type RelativeTimeframe int32 + +const ( + RelativeTimeframe_RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED RelativeTimeframe = 0 + RelativeTimeframe_RELATIVE_TIMEFRAME_DAY RelativeTimeframe = 1 + RelativeTimeframe_RELATIVE_TIMEFRAME_WEEK RelativeTimeframe = 2 + RelativeTimeframe_RELATIVE_TIMEFRAME_MONTH RelativeTimeframe = 3 +) + +// Enum value maps for RelativeTimeframe. +var ( + RelativeTimeframe_name = map[int32]string{ + 0: "RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED", + 1: "RELATIVE_TIMEFRAME_DAY", + 2: "RELATIVE_TIMEFRAME_WEEK", + 3: "RELATIVE_TIMEFRAME_MONTH", + } + RelativeTimeframe_value = map[string]int32{ + "RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED": 0, + "RELATIVE_TIMEFRAME_DAY": 1, + "RELATIVE_TIMEFRAME_WEEK": 2, + "RELATIVE_TIMEFRAME_MONTH": 3, + } +) + +func (x RelativeTimeframe) Enum() *RelativeTimeframe { + p := new(RelativeTimeframe) + *p = x + return p +} + +func (x RelativeTimeframe) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RelativeTimeframe) Descriptor() protoreflect.EnumDescriptor { + return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[4].Descriptor() +} + +func (RelativeTimeframe) Type() protoreflect.EnumType { + return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[4] +} + +func (x RelativeTimeframe) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RelativeTimeframe.Descriptor instead. +func (RelativeTimeframe) EnumDescriptor() ([]byte, []int) { + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{4} +} + type MetricAlertConditionParameters_MetricSource int32 const ( @@ -316,11 +317,11 @@ func (x MetricAlertConditionParameters_MetricSource) String() string { } func (MetricAlertConditionParameters_MetricSource) Descriptor() protoreflect.EnumDescriptor { - return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[4].Descriptor() + return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[5].Descriptor() } func (MetricAlertConditionParameters_MetricSource) Type() protoreflect.EnumType { - return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[4] + return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[5] } func (x MetricAlertConditionParameters_MetricSource) Number() protoreflect.EnumNumber { @@ -329,7 +330,7 @@ func (x MetricAlertConditionParameters_MetricSource) Number() protoreflect.EnumN // Deprecated: Use MetricAlertConditionParameters_MetricSource.Descriptor instead. func (MetricAlertConditionParameters_MetricSource) EnumDescriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{10, 0} + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{17, 0} } type MetricAlertConditionParameters_ArithmeticOperator int32 @@ -374,11 +375,11 @@ func (x MetricAlertConditionParameters_ArithmeticOperator) String() string { } func (MetricAlertConditionParameters_ArithmeticOperator) Descriptor() protoreflect.EnumDescriptor { - return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[5].Descriptor() + return file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[6].Descriptor() } func (MetricAlertConditionParameters_ArithmeticOperator) Type() protoreflect.EnumType { - return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[5] + return &file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes[6] } func (x MetricAlertConditionParameters_ArithmeticOperator) Number() protoreflect.EnumNumber { @@ -387,7 +388,7 @@ func (x MetricAlertConditionParameters_ArithmeticOperator) Number() protoreflect // Deprecated: Use MetricAlertConditionParameters_ArithmeticOperator.Descriptor instead. func (MetricAlertConditionParameters_ArithmeticOperator) EnumDescriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{10, 1} + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{17, 1} } type AlertCondition struct { @@ -404,6 +405,8 @@ type AlertCondition struct { // *AlertCondition_Flow // *AlertCondition_UniqueCount // *AlertCondition_LessThanUsual + // *AlertCondition_MoreThanOrEqual + // *AlertCondition_LessThanOrEqual Condition isAlertCondition_Condition `protobuf_oneof:"condition"` } @@ -502,6 +505,20 @@ func (x *AlertCondition) GetLessThanUsual() *LessThanUsualCondition { return nil } +func (x *AlertCondition) GetMoreThanOrEqual() *MoreThanOrEqualCondition { + if x, ok := x.GetCondition().(*AlertCondition_MoreThanOrEqual); ok { + return x.MoreThanOrEqual + } + return nil +} + +func (x *AlertCondition) GetLessThanOrEqual() *LessThanOrEqualCondition { + if x, ok := x.GetCondition().(*AlertCondition_LessThanOrEqual); ok { + return x.LessThanOrEqual + } + return nil +} + type isAlertCondition_Condition interface { isAlertCondition_Condition() } @@ -538,6 +555,14 @@ type AlertCondition_LessThanUsual struct { LessThanUsual *LessThanUsualCondition `protobuf:"bytes,8,opt,name=less_than_usual,json=lessThanUsual,proto3,oneof"` } +type AlertCondition_MoreThanOrEqual struct { + MoreThanOrEqual *MoreThanOrEqualCondition `protobuf:"bytes,9,opt,name=more_than_or_equal,json=moreThanOrEqual,proto3,oneof"` +} + +type AlertCondition_LessThanOrEqual struct { + LessThanOrEqual *LessThanOrEqualCondition `protobuf:"bytes,10,opt,name=less_than_or_equal,json=lessThanOrEqual,proto3,oneof"` // NotCondition not = 11; +} + func (*AlertCondition_Immediate) isAlertCondition_Condition() {} func (*AlertCondition_LessThan) isAlertCondition_Condition() {} @@ -554,6 +579,10 @@ func (*AlertCondition_UniqueCount) isAlertCondition_Condition() {} func (*AlertCondition_LessThanUsual) isAlertCondition_Condition() {} +func (*AlertCondition_MoreThanOrEqual) isAlertCondition_Condition() {} + +func (*AlertCondition_LessThanOrEqual) isAlertCondition_Condition() {} + type ImmediateCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -639,17 +668,16 @@ func (x *LessThanCondition) GetParameters() *ConditionParameters { return nil } -type MoreThanCondition struct { +type LessThanOrEqualCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` - EvaluationWindow *EvaluationWindow `protobuf:"varint,2,opt,name=evaluation_window,json=evaluationWindow,proto3,enum=com.coralogix.alerts.v2.EvaluationWindow,oneof" json:"evaluation_window,omitempty"` + Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } -func (x *MoreThanCondition) Reset() { - *x = MoreThanCondition{} +func (x *LessThanOrEqualCondition) Reset() { + *x = LessThanOrEqualCondition{} if protoimpl.UnsafeEnabled { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -657,13 +685,13 @@ func (x *MoreThanCondition) Reset() { } } -func (x *MoreThanCondition) String() string { +func (x *LessThanOrEqualCondition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MoreThanCondition) ProtoMessage() {} +func (*LessThanOrEqualCondition) ProtoMessage() {} -func (x *MoreThanCondition) ProtoReflect() protoreflect.Message { +func (x *LessThanOrEqualCondition) ProtoReflect() protoreflect.Message { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -675,35 +703,29 @@ func (x *MoreThanCondition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MoreThanCondition.ProtoReflect.Descriptor instead. -func (*MoreThanCondition) Descriptor() ([]byte, []int) { +// Deprecated: Use LessThanOrEqualCondition.ProtoReflect.Descriptor instead. +func (*LessThanOrEqualCondition) Descriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{3} } -func (x *MoreThanCondition) GetParameters() *ConditionParameters { +func (x *LessThanOrEqualCondition) GetParameters() *ConditionParameters { if x != nil { return x.Parameters } return nil } -func (x *MoreThanCondition) GetEvaluationWindow() EvaluationWindow { - if x != nil && x.EvaluationWindow != nil { - return *x.EvaluationWindow - } - return EvaluationWindow_EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED -} - -type MoreThanUsualCondition struct { +type MoreThanCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + EvaluationWindow *EvaluationWindow `protobuf:"varint,2,opt,name=evaluation_window,json=evaluationWindow,proto3,enum=com.coralogix.alerts.v1.EvaluationWindow,oneof" json:"evaluation_window,omitempty"` } -func (x *MoreThanUsualCondition) Reset() { - *x = MoreThanUsualCondition{} +func (x *MoreThanCondition) Reset() { + *x = MoreThanCondition{} if protoimpl.UnsafeEnabled { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -711,13 +733,13 @@ func (x *MoreThanUsualCondition) Reset() { } } -func (x *MoreThanUsualCondition) String() string { +func (x *MoreThanCondition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MoreThanUsualCondition) ProtoMessage() {} +func (*MoreThanCondition) ProtoMessage() {} -func (x *MoreThanUsualCondition) ProtoReflect() protoreflect.Message { +func (x *MoreThanCondition) ProtoReflect() protoreflect.Message { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -729,28 +751,36 @@ func (x *MoreThanUsualCondition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MoreThanUsualCondition.ProtoReflect.Descriptor instead. -func (*MoreThanUsualCondition) Descriptor() ([]byte, []int) { +// Deprecated: Use MoreThanCondition.ProtoReflect.Descriptor instead. +func (*MoreThanCondition) Descriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{4} } -func (x *MoreThanUsualCondition) GetParameters() *ConditionParameters { +func (x *MoreThanCondition) GetParameters() *ConditionParameters { if x != nil { return x.Parameters } return nil } -type LessThanUsualCondition struct { +func (x *MoreThanCondition) GetEvaluationWindow() EvaluationWindow { + if x != nil && x.EvaluationWindow != nil { + return *x.EvaluationWindow + } + return EvaluationWindow_EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED +} + +type MoreThanOrEqualCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + EvaluationWindow *EvaluationWindow `protobuf:"varint,2,opt,name=evaluation_window,json=evaluationWindow,proto3,enum=com.coralogix.alerts.v1.EvaluationWindow,oneof" json:"evaluation_window,omitempty"` } -func (x *LessThanUsualCondition) Reset() { - *x = LessThanUsualCondition{} +func (x *MoreThanOrEqualCondition) Reset() { + *x = MoreThanOrEqualCondition{} if protoimpl.UnsafeEnabled { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -758,13 +788,13 @@ func (x *LessThanUsualCondition) Reset() { } } -func (x *LessThanUsualCondition) String() string { +func (x *MoreThanOrEqualCondition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LessThanUsualCondition) ProtoMessage() {} +func (*MoreThanOrEqualCondition) ProtoMessage() {} -func (x *LessThanUsualCondition) ProtoReflect() protoreflect.Message { +func (x *MoreThanOrEqualCondition) ProtoReflect() protoreflect.Message { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -776,19 +806,26 @@ func (x *LessThanUsualCondition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LessThanUsualCondition.ProtoReflect.Descriptor instead. -func (*LessThanUsualCondition) Descriptor() ([]byte, []int) { +// Deprecated: Use MoreThanOrEqualCondition.ProtoReflect.Descriptor instead. +func (*MoreThanOrEqualCondition) Descriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{5} } -func (x *LessThanUsualCondition) GetParameters() *ConditionParameters { +func (x *MoreThanOrEqualCondition) GetParameters() *ConditionParameters { if x != nil { return x.Parameters } return nil } -type NewValueCondition struct { +func (x *MoreThanOrEqualCondition) GetEvaluationWindow() EvaluationWindow { + if x != nil && x.EvaluationWindow != nil { + return *x.EvaluationWindow + } + return EvaluationWindow_EVALUATION_WINDOW_ROLLING_OR_UNSPECIFIED +} + +type MoreThanUsualCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -796,8 +833,8 @@ type NewValueCondition struct { Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } -func (x *NewValueCondition) Reset() { - *x = NewValueCondition{} +func (x *MoreThanUsualCondition) Reset() { + *x = MoreThanUsualCondition{} if protoimpl.UnsafeEnabled { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -805,13 +842,13 @@ func (x *NewValueCondition) Reset() { } } -func (x *NewValueCondition) String() string { +func (x *MoreThanUsualCondition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NewValueCondition) ProtoMessage() {} +func (*MoreThanUsualCondition) ProtoMessage() {} -func (x *NewValueCondition) ProtoReflect() protoreflect.Message { +func (x *MoreThanUsualCondition) ProtoReflect() protoreflect.Message { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -823,19 +860,19 @@ func (x *NewValueCondition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NewValueCondition.ProtoReflect.Descriptor instead. -func (*NewValueCondition) Descriptor() ([]byte, []int) { +// Deprecated: Use MoreThanUsualCondition.ProtoReflect.Descriptor instead. +func (*MoreThanUsualCondition) Descriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{6} } -func (x *NewValueCondition) GetParameters() *ConditionParameters { +func (x *MoreThanUsualCondition) GetParameters() *ConditionParameters { if x != nil { return x.Parameters } return nil } -type UniqueCountCondition struct { +type LessThanUsualCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -843,8 +880,8 @@ type UniqueCountCondition struct { Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } -func (x *UniqueCountCondition) Reset() { - *x = UniqueCountCondition{} +func (x *LessThanUsualCondition) Reset() { + *x = LessThanUsualCondition{} if protoimpl.UnsafeEnabled { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -852,13 +889,13 @@ func (x *UniqueCountCondition) Reset() { } } -func (x *UniqueCountCondition) String() string { +func (x *LessThanUsualCondition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UniqueCountCondition) ProtoMessage() {} +func (*LessThanUsualCondition) ProtoMessage() {} -func (x *UniqueCountCondition) ProtoReflect() protoreflect.Message { +func (x *LessThanUsualCondition) ProtoReflect() protoreflect.Message { mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -870,19 +907,113 @@ func (x *UniqueCountCondition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UniqueCountCondition.ProtoReflect.Descriptor instead. -func (*UniqueCountCondition) Descriptor() ([]byte, []int) { +// Deprecated: Use LessThanUsualCondition.ProtoReflect.Descriptor instead. +func (*LessThanUsualCondition) Descriptor() ([]byte, []int) { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{7} } -func (x *UniqueCountCondition) GetParameters() *ConditionParameters { +func (x *LessThanUsualCondition) GetParameters() *ConditionParameters { if x != nil { return x.Parameters } return nil } -type FlowCondition struct { +type NewValueCondition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *NewValueCondition) Reset() { + *x = NewValueCondition{} + if protoimpl.UnsafeEnabled { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewValueCondition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewValueCondition) ProtoMessage() {} + +func (x *NewValueCondition) ProtoReflect() protoreflect.Message { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewValueCondition.ProtoReflect.Descriptor instead. +func (*NewValueCondition) Descriptor() ([]byte, []int) { + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{8} +} + +func (x *NewValueCondition) GetParameters() *ConditionParameters { + if x != nil { + return x.Parameters + } + return nil +} + +type UniqueCountCondition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parameters *ConditionParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *UniqueCountCondition) Reset() { + *x = UniqueCountCondition{} + if protoimpl.UnsafeEnabled { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniqueCountCondition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniqueCountCondition) ProtoMessage() {} + +func (x *UniqueCountCondition) ProtoReflect() protoreflect.Message { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UniqueCountCondition.ProtoReflect.Descriptor instead. +func (*UniqueCountCondition) Descriptor() ([]byte, []int) { + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{9} +} + +func (x *UniqueCountCondition) GetParameters() *ConditionParameters { + if x != nil { + return x.Parameters + } + return nil +} + +type FlowCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -895,7 +1026,7 @@ type FlowCondition struct { func (x *FlowCondition) Reset() { *x = FlowCondition{} if protoimpl.UnsafeEnabled { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -908,7 +1039,7 @@ func (x *FlowCondition) String() string { func (*FlowCondition) ProtoMessage() {} func (x *FlowCondition) ProtoReflect() protoreflect.Message { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -921,7 +1052,7 @@ func (x *FlowCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowCondition.ProtoReflect.Descriptor instead. func (*FlowCondition) Descriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{8} + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{10} } func (x *FlowCondition) GetStages() []*FlowStage { @@ -945,32 +1076,308 @@ func (x *FlowCondition) GetEnforceSuppression() *wrapperspb.BoolValue { return nil } -type RelatedExtendedData struct { +//type FlowStage struct { +// state protoimpl.MessageState +// sizeCache protoimpl.SizeCache +// unknownFields protoimpl.UnknownFields +// +// Groups []*FlowGroup `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` +// Timeframe *FlowTimeframe `protobuf:"bytes,2,opt,name=timeframe,proto3" json:"timeframe,omitempty"` +//} + +//func (x *FlowStage) Reset() { +// *x = FlowStage{} +// if protoimpl.UnsafeEnabled { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[11] +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// ms.StoreMessageInfo(mi) +// } +//} +// +//func (x *FlowStage) String() string { +// return protoimpl.X.MessageStringOf(x) +//} +// +//func (*FlowStage) ProtoMessage() {} +// +//func (x *FlowStage) ProtoReflect() protoreflect.Message { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[11] +// if protoimpl.UnsafeEnabled && x != nil { +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// if ms.LoadMessageInfo() == nil { +// ms.StoreMessageInfo(mi) +// } +// return ms +// } +// return mi.MessageOf(x) +//} +// +//// Deprecated: Use FlowStage.ProtoReflect.Descriptor instead. +//func (*FlowStage) Descriptor() ([]byte, []int) { +// return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{11} +//} +// +//func (x *FlowStage) GetGroups() []*FlowGroup { +// if x != nil { +// return x.Groups +// } +// return nil +//} +// +//func (x *FlowStage) GetTimeframe() *FlowTimeframe { +// if x != nil { +// return x.Timeframe +// } +// return nil +//} +// +//type FlowAlert struct { +// state protoimpl.MessageState +// sizeCache protoimpl.SizeCache +// unknownFields protoimpl.UnknownFields +// +// Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +// Not *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=not,proto3" json:"not,omitempty"` +//} +// +//func (x *FlowAlert) Reset() { +// *x = FlowAlert{} +// if protoimpl.UnsafeEnabled { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12] +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// ms.StoreMessageInfo(mi) +// } +//} +// +//func (x *FlowAlert) String() string { +// return protoimpl.X.MessageStringOf(x) +//} +// +//func (*FlowAlert) ProtoMessage() {} +// +//func (x *FlowAlert) ProtoReflect() protoreflect.Message { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12] +// if protoimpl.UnsafeEnabled && x != nil { +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// if ms.LoadMessageInfo() == nil { +// ms.StoreMessageInfo(mi) +// } +// return ms +// } +// return mi.MessageOf(x) +//} +// +//// Deprecated: Use FlowAlert.ProtoReflect.Descriptor instead. +//func (*FlowAlert) Descriptor() ([]byte, []int) { +// return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{12} +//} +// +//func (x *FlowAlert) GetId() *wrapperspb.StringValue { +// if x != nil { +// return x.Id +// } +// return nil +//} +// +//func (x *FlowAlert) GetNot() *wrapperspb.BoolValue { +// if x != nil { +// return x.Not +// } +// return nil +//} +// +//type FlowAlerts struct { +// state protoimpl.MessageState +// sizeCache protoimpl.SizeCache +// unknownFields protoimpl.UnknownFields +// +// Op FlowOperator `protobuf:"varint,1,opt,name=op,proto3,enum=com.coralogix.alerts.v2.FlowOperator" json:"op,omitempty"` +// Values []*FlowAlert `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` +//} +// +//func (x *FlowAlerts) Reset() { +// *x = FlowAlerts{} +// if protoimpl.UnsafeEnabled { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[13] +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// ms.StoreMessageInfo(mi) +// } +//} +// +//func (x *FlowAlerts) String() string { +// return protoimpl.X.MessageStringOf(x) +//} +// +//func (*FlowAlerts) ProtoMessage() {} +// +//func (x *FlowAlerts) ProtoReflect() protoreflect.Message { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[13] +// if protoimpl.UnsafeEnabled && x != nil { +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// if ms.LoadMessageInfo() == nil { +// ms.StoreMessageInfo(mi) +// } +// return ms +// } +// return mi.MessageOf(x) +//} +// +//// Deprecated: Use FlowAlerts.ProtoReflect.Descriptor instead. +//func (*FlowAlerts) Descriptor() ([]byte, []int) { +// return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{13} +//} +// +//func (x *FlowAlerts) GetOp() FlowOperator { +// if x != nil { +// return x.Op +// } +// return FlowOperator_AND +//} +// +//func (x *FlowAlerts) GetValues() []*FlowAlert { +// if x != nil { +// return x.Values +// } +// return nil +//} +// +//type FlowGroup struct { +// state protoimpl.MessageState +// sizeCache protoimpl.SizeCache +// unknownFields protoimpl.UnknownFields +// +// Alerts *FlowAlerts `protobuf:"bytes,1,opt,name=alerts,proto3" json:"alerts,omitempty"` +// NextOp FlowOperator `protobuf:"varint,2,opt,name=nextOp,proto3,enum=com.coralogix.alerts.v2.FlowOperator" json:"nextOp,omitempty"` +//} +// +//func (x *FlowGroup) Reset() { +// *x = FlowGroup{} +// if protoimpl.UnsafeEnabled { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[14] +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// ms.StoreMessageInfo(mi) +// } +//} +// +//func (x *FlowGroup) String() string { +// return protoimpl.X.MessageStringOf(x) +//} +// +//func (*FlowGroup) ProtoMessage() {} +// +//func (x *FlowGroup) ProtoReflect() protoreflect.Message { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[14] +// if protoimpl.UnsafeEnabled && x != nil { +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// if ms.LoadMessageInfo() == nil { +// ms.StoreMessageInfo(mi) +// } +// return ms +// } +// return mi.MessageOf(x) +//} +// +//// Deprecated: Use FlowGroup.ProtoReflect.Descriptor instead. +//func (*FlowGroup) Descriptor() ([]byte, []int) { +// return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{14} +//} +// +//func (x *FlowGroup) GetAlerts() *FlowAlerts { +// if x != nil { +// return x.Alerts +// } +// return nil +//} +// +//func (x *FlowGroup) GetNextOp() FlowOperator { +// if x != nil { +// return x.NextOp +// } +// return FlowOperator_AND +//} +// +//type FlowTimeframe struct { +// state protoimpl.MessageState +// sizeCache protoimpl.SizeCache +// unknownFields protoimpl.UnknownFields +// +// Ms *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=ms,proto3" json:"ms,omitempty"` +//} +// +//func (x *FlowTimeframe) Reset() { +// *x = FlowTimeframe{} +// if protoimpl.UnsafeEnabled { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[15] +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// ms.StoreMessageInfo(mi) +// } +//} +// +//func (x *FlowTimeframe) String() string { +// return protoimpl.X.MessageStringOf(x) +//} +// +//func (*FlowTimeframe) ProtoMessage() {} +// +//func (x *FlowTimeframe) ProtoReflect() protoreflect.Message { +// mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[15] +// if protoimpl.UnsafeEnabled && x != nil { +// ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +// if ms.LoadMessageInfo() == nil { +// ms.StoreMessageInfo(mi) +// } +// return ms +// } +// return mi.MessageOf(x) +//} +// +//// Deprecated: Use FlowTimeframe.ProtoReflect.Descriptor instead. +//func (*FlowTimeframe) Descriptor() ([]byte, []int) { +// return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{15} +//} +// +//func (x *FlowTimeframe) GetMs() *wrapperspb.UInt32Value { +// if x != nil { +// return x.Ms +// } +// return nil +//} + +type ConditionParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CleanupDeadmanDuration *CleanupDeadmanDuration `protobuf:"varint,1,opt,name=cleanup_deadman_duration,json=cleanupDeadmanDuration,proto3,enum=com.coralogix.alerts.v2.CleanupDeadmanDuration,oneof" json:"cleanup_deadman_duration,omitempty"` - ShouldTriggerDeadman *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=should_trigger_deadman,json=shouldTriggerDeadman,proto3,oneof" json:"should_trigger_deadman,omitempty"` + Threshold *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=threshold,proto3" json:"threshold,omitempty"` + Timeframe Timeframe `protobuf:"varint,2,opt,name=timeframe,proto3,enum=com.coralogix.alerts.v2.Timeframe" json:"timeframe,omitempty"` + GroupBy []*wrapperspb.StringValue `protobuf:"bytes,3,rep,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"` + MetricAlertParameters *MetricAlertConditionParameters `protobuf:"bytes,4,opt,name=metric_alert_parameters,json=metricAlertParameters,proto3" json:"metric_alert_parameters,omitempty"` + MetricAlertPromqlParameters *MetricAlertPromqlConditionParameters `protobuf:"bytes,5,opt,name=metric_alert_promql_parameters,json=metricAlertPromqlParameters,proto3" json:"metric_alert_promql_parameters,omitempty"` + IgnoreInfinity *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=ignore_infinity,json=ignoreInfinity,proto3" json:"ignore_infinity,omitempty"` + RelativeTimeframe RelativeTimeframe `protobuf:"varint,7,opt,name=relative_timeframe,json=relativeTimeframe,proto3,enum=com.coralogix.alerts.v2.RelativeTimeframe" json:"relative_timeframe,omitempty"` + NotifyGroupByOnlyAlerts *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=notify_group_by_only_alerts,json=notifyGroupByOnlyAlerts,proto3" json:"notify_group_by_only_alerts,omitempty"` + CardinalityFields []*wrapperspb.StringValue `protobuf:"bytes,10,rep,name=cardinality_fields,json=cardinalityFields,proto3" json:"cardinality_fields,omitempty"` + MaxUniqueCountValuesForGroupByKey *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=max_unique_count_values_for_group_by_key,json=maxUniqueCountValuesForGroupByKey,proto3" json:"max_unique_count_values_for_group_by_key,omitempty"` + RelatedExtendedData *RelatedExtendedData `protobuf:"bytes,12,opt,name=related_extended_data,json=relatedExtendedData,proto3,oneof" json:"related_extended_data,omitempty"` } -func (x *RelatedExtendedData) Reset() { - *x = RelatedExtendedData{} +func (x *ConditionParameters) Reset() { + *x = ConditionParameters{} if protoimpl.UnsafeEnabled { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RelatedExtendedData) String() string { +func (x *ConditionParameters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RelatedExtendedData) ProtoMessage() {} +func (*ConditionParameters) ProtoMessage() {} -func (x *RelatedExtendedData) ProtoReflect() protoreflect.Message { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9] +func (x *ConditionParameters) ProtoReflect() protoreflect.Message { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -981,21 +1388,84 @@ func (x *RelatedExtendedData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RelatedExtendedData.ProtoReflect.Descriptor instead. -func (*RelatedExtendedData) Descriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{9} +// Deprecated: Use ConditionParameters.ProtoReflect.Descriptor instead. +func (*ConditionParameters) Descriptor() ([]byte, []int) { + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{16} } -func (x *RelatedExtendedData) GetCleanupDeadmanDuration() CleanupDeadmanDuration { - if x != nil && x.CleanupDeadmanDuration != nil { - return *x.CleanupDeadmanDuration +func (x *ConditionParameters) GetThreshold() *wrapperspb.DoubleValue { + if x != nil { + return x.Threshold } - return CleanupDeadmanDuration_CLEANUP_DEADMAN_DURATION_NEVER_OR_UNSPECIFIED + return nil } -func (x *RelatedExtendedData) GetShouldTriggerDeadman() *wrapperspb.BoolValue { +func (x *ConditionParameters) GetTimeframe() Timeframe { if x != nil { - return x.ShouldTriggerDeadman + return x.Timeframe + } + return Timeframe_TIMEFRAME_5_MIN_OR_UNSPECIFIED +} + +func (x *ConditionParameters) GetGroupBy() []*wrapperspb.StringValue { + if x != nil { + return x.GroupBy + } + return nil +} + +func (x *ConditionParameters) GetMetricAlertParameters() *MetricAlertConditionParameters { + if x != nil { + return x.MetricAlertParameters + } + return nil +} + +func (x *ConditionParameters) GetMetricAlertPromqlParameters() *MetricAlertPromqlConditionParameters { + if x != nil { + return x.MetricAlertPromqlParameters + } + return nil +} + +func (x *ConditionParameters) GetIgnoreInfinity() *wrapperspb.BoolValue { + if x != nil { + return x.IgnoreInfinity + } + return nil +} + +func (x *ConditionParameters) GetRelativeTimeframe() RelativeTimeframe { + if x != nil { + return x.RelativeTimeframe + } + return RelativeTimeframe_RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED +} + +func (x *ConditionParameters) GetNotifyGroupByOnlyAlerts() *wrapperspb.BoolValue { + if x != nil { + return x.NotifyGroupByOnlyAlerts + } + return nil +} + +func (x *ConditionParameters) GetCardinalityFields() []*wrapperspb.StringValue { + if x != nil { + return x.CardinalityFields + } + return nil +} + +func (x *ConditionParameters) GetMaxUniqueCountValuesForGroupByKey() *wrapperspb.UInt32Value { + if x != nil { + return x.MaxUniqueCountValuesForGroupByKey + } + return nil +} + +func (x *ConditionParameters) GetRelatedExtendedData() *RelatedExtendedData { + if x != nil { + return x.RelatedExtendedData } return nil } @@ -1017,7 +1487,7 @@ type MetricAlertConditionParameters struct { func (x *MetricAlertConditionParameters) Reset() { *x = MetricAlertConditionParameters{} if protoimpl.UnsafeEnabled { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1030,7 +1500,7 @@ func (x *MetricAlertConditionParameters) String() string { func (*MetricAlertConditionParameters) ProtoMessage() {} func (x *MetricAlertConditionParameters) ProtoReflect() protoreflect.Message { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1043,7 +1513,7 @@ func (x *MetricAlertConditionParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricAlertConditionParameters.ProtoReflect.Descriptor instead. func (*MetricAlertConditionParameters) Descriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{10} + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{17} } func (x *MetricAlertConditionParameters) GetMetricField() *wrapperspb.StringValue { @@ -1110,7 +1580,7 @@ type MetricAlertPromqlConditionParameters struct { func (x *MetricAlertPromqlConditionParameters) Reset() { *x = MetricAlertPromqlConditionParameters{} if protoimpl.UnsafeEnabled { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[11] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1123,7 +1593,7 @@ func (x *MetricAlertPromqlConditionParameters) String() string { func (*MetricAlertPromqlConditionParameters) ProtoMessage() {} func (x *MetricAlertPromqlConditionParameters) ProtoReflect() protoreflect.Message { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[11] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1136,7 +1606,7 @@ func (x *MetricAlertPromqlConditionParameters) ProtoReflect() protoreflect.Messa // Deprecated: Use MetricAlertPromqlConditionParameters.ProtoReflect.Descriptor instead. func (*MetricAlertPromqlConditionParameters) Descriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{11} + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{18} } func (x *MetricAlertPromqlConditionParameters) GetPromqlText() *wrapperspb.StringValue { @@ -1174,41 +1644,32 @@ func (x *MetricAlertPromqlConditionParameters) GetSwapNullValues() *wrapperspb.B return nil } -type ConditionParameters struct { +type RelatedExtendedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Threshold *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=threshold,proto3" json:"threshold,omitempty"` - Timeframe Timeframe `protobuf:"varint,2,opt,name=timeframe,proto3,enum=com.coralogix.alerts.v2.Timeframe" json:"timeframe,omitempty"` - GroupBy []*wrapperspb.StringValue `protobuf:"bytes,3,rep,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"` - MetricAlertParameters *MetricAlertConditionParameters `protobuf:"bytes,4,opt,name=metric_alert_parameters,json=metricAlertParameters,proto3" json:"metric_alert_parameters,omitempty"` - MetricAlertPromqlParameters *MetricAlertPromqlConditionParameters `protobuf:"bytes,5,opt,name=metric_alert_promql_parameters,json=metricAlertPromqlParameters,proto3" json:"metric_alert_promql_parameters,omitempty"` - IgnoreInfinity *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=ignore_infinity,json=ignoreInfinity,proto3" json:"ignore_infinity,omitempty"` - RelativeTimeframe RelativeTimeframe `protobuf:"varint,7,opt,name=relative_timeframe,json=relativeTimeframe,proto3,enum=com.coralogix.alerts.v2.RelativeTimeframe" json:"relative_timeframe,omitempty"` - NotifyGroupByOnlyAlerts *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=notify_group_by_only_alerts,json=notifyGroupByOnlyAlerts,proto3" json:"notify_group_by_only_alerts,omitempty"` - CardinalityFields []*wrapperspb.StringValue `protobuf:"bytes,10,rep,name=cardinality_fields,json=cardinalityFields,proto3" json:"cardinality_fields,omitempty"` - MaxUniqueCountValuesForGroupByKey *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=max_unique_count_values_for_group_by_key,json=maxUniqueCountValuesForGroupByKey,proto3" json:"max_unique_count_values_for_group_by_key,omitempty"` - RelatedExtendedData *RelatedExtendedData `protobuf:"bytes,12,opt,name=related_extended_data,json=relatedExtendedData,proto3,oneof" json:"related_extended_data,omitempty"` + CleanupDeadmanDuration *CleanupDeadmanDuration `protobuf:"varint,1,opt,name=cleanup_deadman_duration,json=cleanupDeadmanDuration,proto3,enum=com.coralogix.alerts.v2.CleanupDeadmanDuration,oneof" json:"cleanup_deadman_duration,omitempty"` + ShouldTriggerDeadman *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=should_trigger_deadman,json=shouldTriggerDeadman,proto3,oneof" json:"should_trigger_deadman,omitempty"` } -func (x *ConditionParameters) Reset() { - *x = ConditionParameters{} +func (x *RelatedExtendedData) Reset() { + *x = RelatedExtendedData{} if protoimpl.UnsafeEnabled { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12] + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConditionParameters) String() string { +func (x *RelatedExtendedData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConditionParameters) ProtoMessage() {} +func (*RelatedExtendedData) ProtoMessage() {} -func (x *ConditionParameters) ProtoReflect() protoreflect.Message { - mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12] +func (x *RelatedExtendedData) ProtoReflect() protoreflect.Message { + mi := &file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1219,84 +1680,21 @@ func (x *ConditionParameters) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConditionParameters.ProtoReflect.Descriptor instead. -func (*ConditionParameters) Descriptor() ([]byte, []int) { - return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{12} -} - -func (x *ConditionParameters) GetThreshold() *wrapperspb.DoubleValue { - if x != nil { - return x.Threshold - } - return nil -} - -func (x *ConditionParameters) GetTimeframe() Timeframe { - if x != nil { - return x.Timeframe - } - return Timeframe_TIMEFRAME_5_MIN_OR_UNSPECIFIED -} - -func (x *ConditionParameters) GetGroupBy() []*wrapperspb.StringValue { - if x != nil { - return x.GroupBy - } - return nil -} - -func (x *ConditionParameters) GetMetricAlertParameters() *MetricAlertConditionParameters { - if x != nil { - return x.MetricAlertParameters - } - return nil -} - -func (x *ConditionParameters) GetMetricAlertPromqlParameters() *MetricAlertPromqlConditionParameters { - if x != nil { - return x.MetricAlertPromqlParameters - } - return nil -} - -func (x *ConditionParameters) GetIgnoreInfinity() *wrapperspb.BoolValue { - if x != nil { - return x.IgnoreInfinity - } - return nil -} - -func (x *ConditionParameters) GetRelativeTimeframe() RelativeTimeframe { - if x != nil { - return x.RelativeTimeframe - } - return RelativeTimeframe_RELATIVE_TIMEFRAME_HOUR_OR_UNSPECIFIED -} - -func (x *ConditionParameters) GetNotifyGroupByOnlyAlerts() *wrapperspb.BoolValue { - if x != nil { - return x.NotifyGroupByOnlyAlerts - } - return nil -} - -func (x *ConditionParameters) GetCardinalityFields() []*wrapperspb.StringValue { - if x != nil { - return x.CardinalityFields - } - return nil +// Deprecated: Use RelatedExtendedData.ProtoReflect.Descriptor instead. +func (*RelatedExtendedData) Descriptor() ([]byte, []int) { + return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP(), []int{19} } -func (x *ConditionParameters) GetMaxUniqueCountValuesForGroupByKey() *wrapperspb.UInt32Value { - if x != nil { - return x.MaxUniqueCountValuesForGroupByKey +func (x *RelatedExtendedData) GetCleanupDeadmanDuration() CleanupDeadmanDuration { + if x != nil && x.CleanupDeadmanDuration != nil { + return *x.CleanupDeadmanDuration } - return nil + return CleanupDeadmanDuration_CLEANUP_DEADMAN_DURATION_NEVER_OR_UNSPECIFIED } -func (x *ConditionParameters) GetRelatedExtendedData() *RelatedExtendedData { +func (x *RelatedExtendedData) GetShouldTriggerDeadman() *wrapperspb.BoolValue { if x != nil { - return x.RelatedExtendedData + return x.ShouldTriggerDeadman } return nil } @@ -1313,110 +1711,335 @@ var file_com_coralogix_alerts_v2_alert_condition_proto_rawDesc = []byte{ 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x0e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x65, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, - 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x12, 0x49, 0x0a, - 0x09, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, - 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x72, 0x65, 0x54, - 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, - 0x6d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x6d, 0x6f, 0x72, 0x65, - 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, - 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x72, 0x65, - 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, - 0x75, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, - 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x4e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x52, 0x0a, 0x0c, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, - 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x59, 0x0a, 0x0f, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x75, 0x73, - 0x75, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x65, - 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x49, 0x6d, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, - 0x0a, 0x11, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x74, 0x6f, 0x1a, 0x2d, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, + 0x78, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xd7, 0x06, 0x0a, 0x0e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, + 0x32, 0x2e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, + 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x08, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x12, 0x49, 0x0a, 0x09, + 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, + 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, + 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6d, + 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, + 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x72, 0x65, 0x54, + 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, + 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, + 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x4e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, + 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5b, 0x0a, 0x11, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, - 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, - 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0x66, 0x0a, 0x16, 0x4d, 0x6f, 0x72, 0x65, - 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x52, 0x0a, 0x0c, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, + 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x59, 0x0a, 0x0f, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x75, + 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x65, 0x73, + 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x12, 0x60, 0x0a, 0x12, 0x6d, 0x6f, + 0x72, 0x65, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x6f, 0x72, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, + 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x72, + 0x65, 0x54, 0x68, 0x61, 0x6e, 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x60, 0x0a, 0x12, + 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x5f, 0x6f, 0x72, 0x5f, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x4f, 0x72, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x6c, + 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x42, 0x0b, + 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x49, + 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x61, 0x0a, 0x11, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, 0x18, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, + 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, + 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xd4, + 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x5b, 0x0a, 0x11, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xdb, 0x01, 0x0a, 0x18, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, + 0x61, 0x6e, 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x22, 0x66, 0x0a, 0x16, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x61, 0x0a, 0x11, 0x4e, 0x65, 0x77, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, + 0x12, 0x5b, 0x0a, 0x11, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x22, 0x66, 0x0a, 0x16, 0x4d, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x61, 0x6e, 0x55, + 0x73, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x64, 0x0a, 0x14, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x66, 0x0a, 0x16, 0x4c, + 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x22, 0x61, 0x0a, 0x11, 0x4e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x64, 0x0a, 0x14, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, + 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, + 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xfa, 0x01, 0x0a, + 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x09, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, + 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x09, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6e, + 0x6f, 0x74, 0x22, 0x7f, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, + 0x12, 0x35, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, - 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x51, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, - 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3b, 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, + 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x3d, + 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x4f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x4f, 0x70, 0x22, 0x3d, 0x0a, + 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, + 0x0a, 0x02, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x6d, 0x73, 0x22, 0xfd, 0x07, 0x0a, + 0x13, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x12, 0x40, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, + 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x6f, 0x0a, 0x17, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x15, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x82, 0x01, 0x0a, + 0x1e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x6d, 0x71, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, + 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x71, + 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x59, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, + 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x11, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x12, 0x58, 0x0a, 0x1b, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x17, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, + 0x79, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x63, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x71, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x46, 0x6f, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x65, 0x0a, 0x15, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd5, 0x07, 0x0a, + 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x3f, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x12, 0x69, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x7b, 0x0a, 0x13, 0x61, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x65, 0x6e, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x94, + 0x73, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5e, 0x0a, 0x1c, 0x61, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x61, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, + 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, + 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x11, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x77, 0x61, 0x70, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x5b, 0x0a, 0x0c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x45, + 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x53, + 0x32, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, + 0x52, 0x49, 0x43, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4d, 0x45, + 0x54, 0x48, 0x45, 0x55, 0x53, 0x10, 0x01, 0x22, 0xda, 0x01, 0x0a, 0x12, 0x41, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x56, 0x47, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, + 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4d, + 0x41, 0x58, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, + 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x55, 0x4d, 0x10, + 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x04, + 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, + 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x49, + 0x4c, 0x45, 0x10, 0x05, 0x22, 0xb7, 0x03, 0x0a, 0x24, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x5e, 0x0a, 0x1c, + 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1a, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1b, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x19, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x6f, + 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x77, 0x61, 0x70, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x73, 0x77, 0x61, 0x70, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x13, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x18, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, @@ -1434,224 +2057,73 @@ var file_com_coralogix_alerts_v2_alert_condition_proto_rawDesc = []byte{ 0x19, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x22, 0xd5, 0x07, 0x0a, 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x69, 0x0a, 0x0d, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, - 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x7b, 0x0a, 0x13, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, - 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, - 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x61, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x5e, 0x0a, 0x1c, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x5f, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, - 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x12, 0x5c, 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, - 0x4c, 0x0a, 0x13, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6e, 0x6f, 0x6e, 0x4e, - 0x75, 0x6c, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, - 0x10, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x22, 0x5b, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x32, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, - 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4d, 0x45, 0x54, 0x48, 0x45, 0x55, 0x53, 0x10, 0x01, - 0x22, 0xda, 0x01, 0x0a, 0x12, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x52, 0x49, 0x54, 0x48, - 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, - 0x56, 0x47, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, - 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x01, - 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x52, - 0x49, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x52, 0x49, - 0x54, 0x48, 0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, - 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x49, 0x4c, 0x45, 0x10, 0x05, 0x22, 0xb7, 0x03, - 0x0a, 0x24, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, - 0x6d, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x71, 0x6c, - 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x71, - 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x5e, 0x0a, 0x1c, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, - 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x61, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x65, 0x74, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, - 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, - 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x4e, 0x75, 0x6c, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xfd, 0x07, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x3a, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, - 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x6f, 0x0a, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x15, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, - 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, - 0x71, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0f, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x79, 0x12, 0x59, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, - 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x1b, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x5f, - 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4f, 0x6e, 0x6c, 0x79, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x11, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x12, 0x71, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x5f, 0x66, - 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x21, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x65, 0x0a, 0x15, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, - 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x5f, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2c, 0x0a, 0x28, 0x45, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x2a, 0x1f, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x01, 0x2a, 0xc0, 0x03, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, + 0x45, 0x5f, 0x35, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x49, 0x4d, 0x45, + 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x12, 0x12, 0x13, 0x0a, + 0x0f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x5f, 0x4d, 0x49, 0x4e, + 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, + 0x31, 0x30, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, + 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x35, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x11, 0x12, 0x14, + 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x30, 0x5f, 0x4d, + 0x49, 0x4e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, + 0x45, 0x5f, 0x33, 0x30, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, + 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x48, 0x10, 0x04, 0x12, 0x11, 0x0a, + 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x5f, 0x48, 0x10, 0x05, + 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x33, 0x5f, + 0x48, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x5f, 0x34, 0x5f, 0x48, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x5f, 0x36, 0x5f, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, + 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x32, 0x5f, 0x48, 0x10, 0x09, 0x12, 0x12, 0x0a, + 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x34, 0x5f, 0x48, 0x10, + 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x33, + 0x36, 0x5f, 0x48, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x34, 0x38, 0x5f, 0x48, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, + 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x37, 0x32, 0x5f, 0x48, 0x10, 0x0c, 0x12, 0x11, 0x0a, + 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x57, 0x10, 0x0d, + 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, + 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x5f, 0x32, 0x5f, 0x4d, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x5f, 0x33, 0x5f, 0x4d, 0x10, 0x10, 0x2a, 0x5f, 0x0a, 0x10, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2c, 0x0a, + 0x28, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, + 0x4f, 0x57, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x41, - 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x5f, 0x44, - 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x2a, 0xc0, 0x03, 0x0a, 0x09, 0x54, 0x69, 0x6d, - 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x5f, 0x35, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x49, - 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x12, 0x12, - 0x13, 0x0a, 0x0f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x5f, 0x4d, - 0x49, 0x4e, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, - 0x45, 0x5f, 0x31, 0x30, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, - 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x35, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x11, - 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x30, - 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x5f, 0x33, 0x30, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, - 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x48, 0x10, 0x04, 0x12, - 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x5f, 0x48, - 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, - 0x33, 0x5f, 0x48, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, - 0x4d, 0x45, 0x5f, 0x34, 0x5f, 0x48, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, - 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x36, 0x5f, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x54, - 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x32, 0x5f, 0x48, 0x10, 0x09, 0x12, - 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x32, 0x34, 0x5f, - 0x48, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, - 0x5f, 0x33, 0x36, 0x5f, 0x48, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x46, - 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x34, 0x38, 0x5f, 0x48, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x54, - 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x37, 0x32, 0x5f, 0x48, 0x10, 0x0c, 0x12, - 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x31, 0x5f, 0x57, - 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, - 0x31, 0x5f, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, - 0x4d, 0x45, 0x5f, 0x32, 0x5f, 0x4d, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, - 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x33, 0x5f, 0x4d, 0x10, 0x10, 0x2a, 0x96, 0x01, 0x0a, 0x11, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x5f, 0x4f, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x4c, - 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, - 0x57, 0x45, 0x45, 0x4b, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, - 0x56, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, - 0x54, 0x48, 0x10, 0x03, 0x2a, 0xb9, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, - 0x44, 0x65, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x31, 0x0a, 0x2d, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, - 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x56, 0x45, - 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, - 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x35, - 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, + 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x2a, 0xb9, 0x02, 0x0a, 0x16, 0x43, + 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x44, 0x65, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x31, 0x30, 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4c, 0x45, - 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x48, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4c, - 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x48, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x43, + 0x4e, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4c, 0x45, 0x41, + 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x35, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, - 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x36, 0x48, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, - 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, - 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x32, 0x48, 0x10, 0x06, 0x12, 0x20, - 0x0a, 0x1c, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, - 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x34, 0x48, 0x10, 0x07, - 0x42, 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x30, 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x12, + 0x1f, 0x0a, 0x1b, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4d, + 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x48, 0x10, 0x03, + 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, 0x44, + 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x48, 0x10, + 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, 0x41, + 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x36, 0x48, + 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, 0x44, 0x45, + 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, + 0x32, 0x48, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x5f, + 0x44, 0x45, 0x41, 0x44, 0x4d, 0x41, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x32, 0x34, 0x48, 0x10, 0x07, 0x2a, 0x96, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x26, + 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x4c, 0x41, + 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, + 0x41, 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x03, 0x42, + 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1666,83 +2138,105 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_rawDescGZIP() []byte { return file_com_coralogix_alerts_v2_alert_condition_proto_rawDescData } -var file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_com_coralogix_alerts_v2_alert_condition_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_com_coralogix_alerts_v2_alert_condition_proto_goTypes = []interface{}{ - (EvaluationWindow)(0), // 0: com.coralogix.alerts.v2.EvaluationWindow + (FlowOperator)(0), // 0: com.coralogix.alerts.v2.FlowOperator (Timeframe)(0), // 1: com.coralogix.alerts.v2.Timeframe - (RelativeTimeframe)(0), // 2: com.coralogix.alerts.v2.RelativeTimeframe + (EvaluationWindow)(0), // 2: com.coralogix.alerts.v2.EvaluationWindow (CleanupDeadmanDuration)(0), // 3: com.coralogix.alerts.v2.CleanupDeadmanDuration - (MetricAlertConditionParameters_MetricSource)(0), // 4: com.coralogix.alerts.v2.MetricAlertConditionParameters.MetricSource - (MetricAlertConditionParameters_ArithmeticOperator)(0), // 5: com.coralogix.alerts.v2.MetricAlertConditionParameters.ArithmeticOperator - (*AlertCondition)(nil), // 6: com.coralogix.alerts.v2.AlertCondition - (*ImmediateCondition)(nil), // 7: com.coralogix.alerts.v2.ImmediateCondition - (*LessThanCondition)(nil), // 8: com.coralogix.alerts.v2.LessThanCondition - (*MoreThanCondition)(nil), // 9: com.coralogix.alerts.v2.MoreThanCondition - (*MoreThanUsualCondition)(nil), // 10: com.coralogix.alerts.v2.MoreThanUsualCondition - (*LessThanUsualCondition)(nil), // 11: com.coralogix.alerts.v2.LessThanUsualCondition - (*NewValueCondition)(nil), // 12: com.coralogix.alerts.v2.NewValueCondition - (*UniqueCountCondition)(nil), // 13: com.coralogix.alerts.v2.UniqueCountCondition - (*FlowCondition)(nil), // 14: com.coralogix.alerts.v2.FlowCondition - (*RelatedExtendedData)(nil), // 15: com.coralogix.alerts.v2.RelatedExtendedData - (*MetricAlertConditionParameters)(nil), // 16: com.coralogix.alerts.v2.MetricAlertConditionParameters - (*MetricAlertPromqlConditionParameters)(nil), // 17: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters - (*ConditionParameters)(nil), // 18: com.coralogix.alerts.v2.ConditionParameters - (*FlowStage)(nil), // 19: com.coralogix.alerts.v1.FlowStage - (*wrapperspb.BoolValue)(nil), // 20: google.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 21: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 22: google.protobuf.UInt32Value - (*wrapperspb.DoubleValue)(nil), // 23: google.protobuf.DoubleValue + (RelativeTimeframe)(0), // 4: com.coralogix.alerts.v2.RelativeTimeframe + (MetricAlertConditionParameters_MetricSource)(0), // 5: com.coralogix.alerts.v2.MetricAlertConditionParameters.MetricSource + (MetricAlertConditionParameters_ArithmeticOperator)(0), // 6: com.coralogix.alerts.v2.MetricAlertConditionParameters.ArithmeticOperator + (*AlertCondition)(nil), // 7: com.coralogix.alerts.v2.AlertCondition + (*ImmediateCondition)(nil), // 8: com.coralogix.alerts.v2.ImmediateCondition + (*LessThanCondition)(nil), // 9: com.coralogix.alerts.v2.LessThanCondition + (*LessThanOrEqualCondition)(nil), // 10: com.coralogix.alerts.v2.LessThanOrEqualCondition + (*MoreThanCondition)(nil), // 11: com.coralogix.alerts.v2.MoreThanCondition + (*MoreThanOrEqualCondition)(nil), // 12: com.coralogix.alerts.v2.MoreThanOrEqualCondition + (*MoreThanUsualCondition)(nil), // 13: com.coralogix.alerts.v2.MoreThanUsualCondition + (*LessThanUsualCondition)(nil), // 14: com.coralogix.alerts.v2.LessThanUsualCondition + (*NewValueCondition)(nil), // 15: com.coralogix.alerts.v2.NewValueCondition + (*UniqueCountCondition)(nil), // 16: com.coralogix.alerts.v2.UniqueCountCondition + (*FlowCondition)(nil), // 17: com.coralogix.alerts.v2.FlowCondition + (*FlowStage)(nil), // 18: com.coralogix.alerts.v2.FlowStage + (*FlowAlert)(nil), // 19: com.coralogix.alerts.v2.FlowAlert + (*FlowAlerts)(nil), // 20: com.coralogix.alerts.v2.FlowAlerts + (*FlowGroup)(nil), // 21: com.coralogix.alerts.v2.FlowGroup + (*FlowTimeframe)(nil), // 22: com.coralogix.alerts.v2.FlowTimeframe + (*ConditionParameters)(nil), // 23: com.coralogix.alerts.v2.ConditionParameters + (*MetricAlertConditionParameters)(nil), // 24: com.coralogix.alerts.v2.MetricAlertConditionParameters + (*MetricAlertPromqlConditionParameters)(nil), // 25: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters + (*RelatedExtendedData)(nil), // 26: com.coralogix.alerts.v2.RelatedExtendedData + (EvaluationWindow)(0), // 27: com.coralogix.alerts.v1.EvaluationWindow + (*wrapperspb.BoolValue)(nil), // 28: google.protobuf.BoolValue + (*wrapperspb.StringValue)(nil), // 29: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 30: google.protobuf.UInt32Value + (*wrapperspb.DoubleValue)(nil), // 31: google.protobuf.DoubleValue } var file_com_coralogix_alerts_v2_alert_condition_proto_depIdxs = []int32{ - 7, // 0: com.coralogix.alerts.v2.AlertCondition.immediate:type_name -> com.coralogix.alerts.v2.ImmediateCondition - 8, // 1: com.coralogix.alerts.v2.AlertCondition.less_than:type_name -> com.coralogix.alerts.v2.LessThanCondition - 9, // 2: com.coralogix.alerts.v2.AlertCondition.more_than:type_name -> com.coralogix.alerts.v2.MoreThanCondition - 10, // 3: com.coralogix.alerts.v2.AlertCondition.more_than_usual:type_name -> com.coralogix.alerts.v2.MoreThanUsualCondition - 12, // 4: com.coralogix.alerts.v2.AlertCondition.new_value:type_name -> com.coralogix.alerts.v2.NewValueCondition - 14, // 5: com.coralogix.alerts.v2.AlertCondition.flow:type_name -> com.coralogix.alerts.v2.FlowCondition - 13, // 6: com.coralogix.alerts.v2.AlertCondition.unique_count:type_name -> com.coralogix.alerts.v2.UniqueCountCondition - 11, // 7: com.coralogix.alerts.v2.AlertCondition.less_than_usual:type_name -> com.coralogix.alerts.v2.LessThanUsualCondition - 18, // 8: com.coralogix.alerts.v2.LessThanCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 18, // 9: com.coralogix.alerts.v2.MoreThanCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 0, // 10: com.coralogix.alerts.v2.MoreThanCondition.evaluation_window:type_name -> com.coralogix.alerts.v2.EvaluationWindow - 18, // 11: com.coralogix.alerts.v2.MoreThanUsualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 18, // 12: com.coralogix.alerts.v2.LessThanUsualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 18, // 13: com.coralogix.alerts.v2.NewValueCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 18, // 14: com.coralogix.alerts.v2.UniqueCountCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 19, // 15: com.coralogix.alerts.v2.FlowCondition.stages:type_name -> com.coralogix.alerts.v1.FlowStage - 18, // 16: com.coralogix.alerts.v2.FlowCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters - 20, // 17: com.coralogix.alerts.v2.FlowCondition.enforce_suppression:type_name -> google.protobuf.BoolValue - 3, // 18: com.coralogix.alerts.v2.RelatedExtendedData.cleanup_deadman_duration:type_name -> com.coralogix.alerts.v2.CleanupDeadmanDuration - 20, // 19: com.coralogix.alerts.v2.RelatedExtendedData.should_trigger_deadman:type_name -> google.protobuf.BoolValue - 21, // 20: com.coralogix.alerts.v2.MetricAlertConditionParameters.metric_field:type_name -> google.protobuf.StringValue - 4, // 21: com.coralogix.alerts.v2.MetricAlertConditionParameters.metric_source:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters.MetricSource - 5, // 22: com.coralogix.alerts.v2.MetricAlertConditionParameters.arithmetic_operator:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters.ArithmeticOperator - 22, // 23: com.coralogix.alerts.v2.MetricAlertConditionParameters.arithmetic_operator_modifier:type_name -> google.protobuf.UInt32Value - 22, // 24: com.coralogix.alerts.v2.MetricAlertConditionParameters.sample_threshold_percentage:type_name -> google.protobuf.UInt32Value - 22, // 25: com.coralogix.alerts.v2.MetricAlertConditionParameters.non_null_percentage:type_name -> google.protobuf.UInt32Value - 20, // 26: com.coralogix.alerts.v2.MetricAlertConditionParameters.swap_null_values:type_name -> google.protobuf.BoolValue - 21, // 27: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.promql_text:type_name -> google.protobuf.StringValue - 22, // 28: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.arithmetic_operator_modifier:type_name -> google.protobuf.UInt32Value - 22, // 29: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.sample_threshold_percentage:type_name -> google.protobuf.UInt32Value - 22, // 30: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.non_null_percentage:type_name -> google.protobuf.UInt32Value - 20, // 31: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.swap_null_values:type_name -> google.protobuf.BoolValue - 23, // 32: com.coralogix.alerts.v2.ConditionParameters.threshold:type_name -> google.protobuf.DoubleValue + 8, // 0: com.coralogix.alerts.v2.AlertCondition.immediate:type_name -> com.coralogix.alerts.v2.ImmediateCondition + 9, // 1: com.coralogix.alerts.v2.AlertCondition.less_than:type_name -> com.coralogix.alerts.v2.LessThanCondition + 11, // 2: com.coralogix.alerts.v2.AlertCondition.more_than:type_name -> com.coralogix.alerts.v2.MoreThanCondition + 13, // 3: com.coralogix.alerts.v2.AlertCondition.more_than_usual:type_name -> com.coralogix.alerts.v2.MoreThanUsualCondition + 15, // 4: com.coralogix.alerts.v2.AlertCondition.new_value:type_name -> com.coralogix.alerts.v2.NewValueCondition + 17, // 5: com.coralogix.alerts.v2.AlertCondition.flow:type_name -> com.coralogix.alerts.v2.FlowCondition + 16, // 6: com.coralogix.alerts.v2.AlertCondition.unique_count:type_name -> com.coralogix.alerts.v2.UniqueCountCondition + 14, // 7: com.coralogix.alerts.v2.AlertCondition.less_than_usual:type_name -> com.coralogix.alerts.v2.LessThanUsualCondition + 12, // 8: com.coralogix.alerts.v2.AlertCondition.more_than_or_equal:type_name -> com.coralogix.alerts.v2.MoreThanOrEqualCondition + 10, // 9: com.coralogix.alerts.v2.AlertCondition.less_than_or_equal:type_name -> com.coralogix.alerts.v2.LessThanOrEqualCondition + 23, // 10: com.coralogix.alerts.v2.LessThanCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 23, // 11: com.coralogix.alerts.v2.LessThanOrEqualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 23, // 12: com.coralogix.alerts.v2.MoreThanCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 27, // 13: com.coralogix.alerts.v2.MoreThanCondition.evaluation_window:type_name -> com.coralogix.alerts.v1.EvaluationWindow + 23, // 14: com.coralogix.alerts.v2.MoreThanOrEqualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 27, // 15: com.coralogix.alerts.v2.MoreThanOrEqualCondition.evaluation_window:type_name -> com.coralogix.alerts.v1.EvaluationWindow + 23, // 16: com.coralogix.alerts.v2.MoreThanUsualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 23, // 17: com.coralogix.alerts.v2.LessThanUsualCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 23, // 18: com.coralogix.alerts.v2.NewValueCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 23, // 19: com.coralogix.alerts.v2.UniqueCountCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 18, // 20: com.coralogix.alerts.v2.FlowCondition.stages:type_name -> com.coralogix.alerts.v2.FlowStage + 23, // 21: com.coralogix.alerts.v2.FlowCondition.parameters:type_name -> com.coralogix.alerts.v2.ConditionParameters + 28, // 22: com.coralogix.alerts.v2.FlowCondition.enforce_suppression:type_name -> google.protobuf.BoolValue + 21, // 23: com.coralogix.alerts.v2.FlowStage.groups:type_name -> com.coralogix.alerts.v2.FlowGroup + 22, // 24: com.coralogix.alerts.v2.FlowStage.timeframe:type_name -> com.coralogix.alerts.v2.FlowTimeframe + 29, // 25: com.coralogix.alerts.v2.FlowAlert.id:type_name -> google.protobuf.StringValue + 28, // 26: com.coralogix.alerts.v2.FlowAlert.not:type_name -> google.protobuf.BoolValue + 0, // 27: com.coralogix.alerts.v2.FlowAlerts.op:type_name -> com.coralogix.alerts.v2.FlowOperator + 19, // 28: com.coralogix.alerts.v2.FlowAlerts.values:type_name -> com.coralogix.alerts.v2.FlowAlert + 20, // 29: com.coralogix.alerts.v2.FlowGroup.alerts:type_name -> com.coralogix.alerts.v2.FlowAlerts + 0, // 30: com.coralogix.alerts.v2.FlowGroup.nextOp:type_name -> com.coralogix.alerts.v2.FlowOperator + 30, // 31: com.coralogix.alerts.v2.FlowTimeframe.ms:type_name -> google.protobuf.UInt32Value + 31, // 32: com.coralogix.alerts.v2.ConditionParameters.threshold:type_name -> google.protobuf.DoubleValue 1, // 33: com.coralogix.alerts.v2.ConditionParameters.timeframe:type_name -> com.coralogix.alerts.v2.Timeframe - 21, // 34: com.coralogix.alerts.v2.ConditionParameters.group_by:type_name -> google.protobuf.StringValue - 16, // 35: com.coralogix.alerts.v2.ConditionParameters.metric_alert_parameters:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters - 17, // 36: com.coralogix.alerts.v2.ConditionParameters.metric_alert_promql_parameters:type_name -> com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters - 20, // 37: com.coralogix.alerts.v2.ConditionParameters.ignore_infinity:type_name -> google.protobuf.BoolValue - 2, // 38: com.coralogix.alerts.v2.ConditionParameters.relative_timeframe:type_name -> com.coralogix.alerts.v2.RelativeTimeframe - 20, // 39: com.coralogix.alerts.v2.ConditionParameters.notify_group_by_only_alerts:type_name -> google.protobuf.BoolValue - 21, // 40: com.coralogix.alerts.v2.ConditionParameters.cardinality_fields:type_name -> google.protobuf.StringValue - 22, // 41: com.coralogix.alerts.v2.ConditionParameters.max_unique_count_values_for_group_by_key:type_name -> google.protobuf.UInt32Value - 15, // 42: com.coralogix.alerts.v2.ConditionParameters.related_extended_data:type_name -> com.coralogix.alerts.v2.RelatedExtendedData - 43, // [43:43] is the sub-list for method output_type - 43, // [43:43] is the sub-list for method input_type - 43, // [43:43] is the sub-list for extension type_name - 43, // [43:43] is the sub-list for extension extendee - 0, // [0:43] is the sub-list for field type_name + 29, // 34: com.coralogix.alerts.v2.ConditionParameters.group_by:type_name -> google.protobuf.StringValue + 24, // 35: com.coralogix.alerts.v2.ConditionParameters.metric_alert_parameters:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters + 25, // 36: com.coralogix.alerts.v2.ConditionParameters.metric_alert_promql_parameters:type_name -> com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters + 28, // 37: com.coralogix.alerts.v2.ConditionParameters.ignore_infinity:type_name -> google.protobuf.BoolValue + 4, // 38: com.coralogix.alerts.v2.ConditionParameters.relative_timeframe:type_name -> com.coralogix.alerts.v2.RelativeTimeframe + 28, // 39: com.coralogix.alerts.v2.ConditionParameters.notify_group_by_only_alerts:type_name -> google.protobuf.BoolValue + 29, // 40: com.coralogix.alerts.v2.ConditionParameters.cardinality_fields:type_name -> google.protobuf.StringValue + 30, // 41: com.coralogix.alerts.v2.ConditionParameters.max_unique_count_values_for_group_by_key:type_name -> google.protobuf.UInt32Value + 26, // 42: com.coralogix.alerts.v2.ConditionParameters.related_extended_data:type_name -> com.coralogix.alerts.v2.RelatedExtendedData + 29, // 43: com.coralogix.alerts.v2.MetricAlertConditionParameters.metric_field:type_name -> google.protobuf.StringValue + 5, // 44: com.coralogix.alerts.v2.MetricAlertConditionParameters.metric_source:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters.MetricSource + 6, // 45: com.coralogix.alerts.v2.MetricAlertConditionParameters.arithmetic_operator:type_name -> com.coralogix.alerts.v2.MetricAlertConditionParameters.ArithmeticOperator + 30, // 46: com.coralogix.alerts.v2.MetricAlertConditionParameters.arithmetic_operator_modifier:type_name -> google.protobuf.UInt32Value + 30, // 47: com.coralogix.alerts.v2.MetricAlertConditionParameters.sample_threshold_percentage:type_name -> google.protobuf.UInt32Value + 30, // 48: com.coralogix.alerts.v2.MetricAlertConditionParameters.non_null_percentage:type_name -> google.protobuf.UInt32Value + 28, // 49: com.coralogix.alerts.v2.MetricAlertConditionParameters.swap_null_values:type_name -> google.protobuf.BoolValue + 29, // 50: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.promql_text:type_name -> google.protobuf.StringValue + 30, // 51: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.arithmetic_operator_modifier:type_name -> google.protobuf.UInt32Value + 30, // 52: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.sample_threshold_percentage:type_name -> google.protobuf.UInt32Value + 30, // 53: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.non_null_percentage:type_name -> google.protobuf.UInt32Value + 28, // 54: com.coralogix.alerts.v2.MetricAlertPromqlConditionParameters.swap_null_values:type_name -> google.protobuf.BoolValue + 3, // 55: com.coralogix.alerts.v2.RelatedExtendedData.cleanup_deadman_duration:type_name -> com.coralogix.alerts.v2.CleanupDeadmanDuration + 28, // 56: com.coralogix.alerts.v2.RelatedExtendedData.should_trigger_deadman:type_name -> google.protobuf.BoolValue + 57, // [57:57] is the sub-list for method output_type + 57, // [57:57] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name } func init() { file_com_coralogix_alerts_v2_alert_condition_proto_init() } @@ -1751,6 +2245,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { return } file_com_coralogix_alerts_v1_flow_alert_proto_init() + //file_com_coralogix_alerts_v1_alert_condition_proto_init() if !protoimpl.UnsafeEnabled { file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlertCondition); i { @@ -1789,7 +2284,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoreThanCondition); i { + switch v := v.(*LessThanOrEqualCondition); i { case 0: return &v.state case 1: @@ -1801,7 +2296,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoreThanUsualCondition); i { + switch v := v.(*MoreThanCondition); i { case 0: return &v.state case 1: @@ -1813,7 +2308,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LessThanUsualCondition); i { + switch v := v.(*MoreThanOrEqualCondition); i { case 0: return &v.state case 1: @@ -1825,7 +2320,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NewValueCondition); i { + switch v := v.(*MoreThanUsualCondition); i { case 0: return &v.state case 1: @@ -1837,7 +2332,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UniqueCountCondition); i { + switch v := v.(*LessThanUsualCondition); i { case 0: return &v.state case 1: @@ -1849,7 +2344,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowCondition); i { + switch v := v.(*NewValueCondition); i { case 0: return &v.state case 1: @@ -1861,7 +2356,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelatedExtendedData); i { + switch v := v.(*UniqueCountCondition); i { case 0: return &v.state case 1: @@ -1873,7 +2368,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricAlertConditionParameters); i { + switch v := v.(*FlowCondition); i { case 0: return &v.state case 1: @@ -1885,7 +2380,7 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricAlertPromqlConditionParameters); i { + switch v := v.(*FlowStage); i { case 0: return &v.state case 1: @@ -1897,6 +2392,54 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowAlert); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowAlerts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowTimeframe); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConditionParameters); i { case 0: return &v.state @@ -1908,6 +2451,42 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { return nil } } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricAlertConditionParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricAlertPromqlConditionParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RelatedExtendedData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[0].OneofWrappers = []interface{}{ (*AlertCondition_Immediate)(nil), @@ -1918,18 +2497,21 @@ func file_com_coralogix_alerts_v2_alert_condition_proto_init() { (*AlertCondition_Flow)(nil), (*AlertCondition_UniqueCount)(nil), (*AlertCondition_LessThanUsual)(nil), - } - file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[3].OneofWrappers = []interface{}{} - file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[9].OneofWrappers = []interface{}{} - file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[12].OneofWrappers = []interface{}{} + (*AlertCondition_MoreThanOrEqual)(nil), + (*AlertCondition_LessThanOrEqual)(nil), + } + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_com_coralogix_alerts_v2_alert_condition_proto_msgTypes[19].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_com_coralogix_alerts_v2_alert_condition_proto_rawDesc, - NumEnums: 6, - NumMessages: 13, + NumEnums: 7, + NumMessages: 20, NumExtensions: 0, NumServices: 0, }, diff --git a/coralogix/resource_coralogix_alert.go b/coralogix/resource_coralogix_alert.go index f9ea9b1c..a124190f 100644 --- a/coralogix/resource_coralogix_alert.go +++ b/coralogix/resource_coralogix_alert.go @@ -1163,42 +1163,45 @@ func metricSchema() map[string]*schema.Schema { "less_than": { Type: schema.TypeBool, Optional: true, - ExactlyOneOf: []string{"metric.0.promql.0.condition.0.more_than", - "metric.0.promql.0.condition.0.less_than", + ExactlyOneOf: []string{ + "metric.0.promql.0.condition.0.more_than", "metric.0.promql.0.condition.0.more_than_usual", - "metric.0.promql.0.condition.0.less_than_usual"}, + "metric.0.promql.0.condition.0.less_than_usual", + "metric.0.promql.0.condition.0.more_than_or_equal", + "metric.0.promql.0.condition.0.less_than_or_equal", + }, Description: "Determines the condition operator." + - " Must be one of - less_than or more_than.", + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", }, "more_than": { Type: schema.TypeBool, Optional: true, - ExactlyOneOf: []string{"metric.0.promql.0.condition.0.more_than", - "metric.0.promql.0.condition.0.less_than", - "metric.0.promql.0.condition.0.more_than_usual", - "metric.0.promql.0.condition.0.less_than_usual"}, Description: "Determines the condition operator." + - " Must be one of - less_than or more_than.", + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", }, "more_than_usual": { Type: schema.TypeBool, Optional: true, - ExactlyOneOf: []string{"metric.0.promql.0.condition.0.more_than", - "metric.0.promql.0.condition.0.less_than", - "metric.0.promql.0.condition.0.more_than_usual", - "metric.0.promql.0.condition.0.less_than_usual"}, Description: "Determines the condition operator." + - " Must be one of - immediately, less_than, more_than or more_than_usual.", + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", }, "less_than_usual": { Type: schema.TypeBool, Optional: true, - ExactlyOneOf: []string{"metric.0.promql.0.condition.0.more_than", - "metric.0.promql.0.condition.0.less_than", - "metric.0.promql.0.condition.0.more_than_usual", - "metric.0.promql.0.condition.0.less_than_usual"}, Description: "Determines the condition operator." + - " Must be one of - immediately, less_than, more_than or more_than_usual.", + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", + }, + "more_than_or_equal": { + Type: schema.TypeBool, + Optional: true, + Description: "Determines the condition operator." + + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", + }, + "less_than_or_equal": { + Type: schema.TypeBool, + Optional: true, + Description: "Determines the condition operator." + + " Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal.", }, "threshold": { Type: schema.TypeFloat, @@ -1248,8 +1251,8 @@ func metricSchema() map[string]*schema.Schema { }, }, }, - RequiredWith: []string{"metric.0.promql.0.condition.0.less_than"}, - Description: "Manage your logs undetected values - when relevant, enable/disable triggering on undetected values and change the auto retire interval. By default (when relevant), triggering is enabled with retire-ratio=NEVER.", + ConflictsWith: []string{"metric.0.promql.0.condition.0.more_than", "metric.0.promql.0.condition.0.more_than_or_equal", "metric.0.promql.0.condition.0.more_than_usual", "metric.0.promql.0.condition.0.less_than_usual"}, + Description: "Manage your logs undetected values - when relevant, enable/disable triggering on undetected values and change the auto retire interval. By default (when relevant), triggering is enabled with retire-ratio=NEVER.", }, }, }, @@ -2100,6 +2103,12 @@ func flattenMetricAlert(filters *alerts.AlertFilters, condition interface{}) int case *alerts.AlertCondition_LessThanUsual: conditionParams = condition.LessThanUsual.GetParameters() conditionStr = "less_than_usual" + case *alerts.AlertCondition_MoreThanOrEqual: + conditionParams = condition.MoreThanOrEqual.GetParameters() + conditionStr = "more_than_or_equal" + case *alerts.AlertCondition_LessThanOrEqual: + conditionParams = condition.LessThanOrEqual.GetParameters() + conditionStr = "less_than_or_equal" default: return nil } @@ -2118,7 +2127,7 @@ func flattenMetricAlert(filters *alerts.AlertFilters, condition interface{}) int conditionMap = flattenLuceneCondition(conditionParams) } conditionMap[conditionStr] = true - if conditionStr == "less_than" { + if conditionStr == "less_than" || conditionStr == "less_than_or_equal" { conditionMap["manage_undetected_values"] = flattenManageUndetectedValues(conditionParams.GetRelatedExtendedData()) } @@ -3038,9 +3047,21 @@ func expandPromqlCondition(m map[string]interface{}, parameters *alerts.Conditio LessThanUsual: &alerts.LessThanUsualCondition{Parameters: parameters}, }, }, nil + case "less_than_or_equal": + return &alerts.AlertCondition{ + Condition: &alerts.AlertCondition_LessThanOrEqual{ + LessThanOrEqual: &alerts.LessThanOrEqualCondition{Parameters: parameters}, + }, + }, nil + case "more_than_or_equal": + return &alerts.AlertCondition{ + Condition: &alerts.AlertCondition_MoreThanOrEqual{ + MoreThanOrEqual: &alerts.MoreThanOrEqualCondition{Parameters: parameters}, + }, + }, nil } - return nil, fmt.Errorf("less_than, more_than, more_than_usual, or less_than_usual must be set to true") + return nil, fmt.Errorf("less_than, more_than, more_than_usual, less_than_usual, less_than_or_equal, or more_than_or_equal must be set to true") } func returnAlertConditionString(m map[string]interface{}) (string, error) { @@ -3052,9 +3073,13 @@ func returnAlertConditionString(m map[string]interface{}) (string, error) { return "more_than_usual", nil } else if lessThanUsual := m["less_than_usual"]; lessThanUsual != nil && lessThanUsual.(bool) { return "less_than_usual", nil + } else if lessThanOrEqual := m["less_than_or_equal"]; lessThanOrEqual != nil && lessThanOrEqual.(bool) { + return "less_than_or_equal", nil + } else if moreThanOrEqual := m["more_than_or_equal"]; moreThanOrEqual != nil && moreThanOrEqual.(bool) { + return "more_than_or_equal", nil } - return "", fmt.Errorf("less_than, more_than, more_than_usual, or less_than_usual must be set to true") + return "", fmt.Errorf("less_than, more_than, more_than_usual, less_than_usual, less_than_or_equal, or more_than_or_equal must be set to true") } func expandTimeRelativeConditionParameters(m map[string]interface{}) (*alerts.ConditionParameters, error) { diff --git a/docs/data-sources/alert.md b/docs/data-sources/alert.md index 7376931d..fe3ee244 100644 --- a/docs/data-sources/alert.md +++ b/docs/data-sources/alert.md @@ -175,10 +175,12 @@ Read-Only: Read-Only: - `less_than` (Boolean) +- `less_than_or_equal` (Boolean) - `less_than_usual` (Boolean) - `manage_undetected_values` (List of Object) (see [below for nested schema](#nestedobjatt--metric--promql--condition--manage_undetected_values)) - `min_non_null_values_percentage` (Number) - `more_than` (Boolean) +- `more_than_or_equal` (Boolean) - `more_than_usual` (Boolean) - `replace_missing_value_with_zero` (Boolean) - `sample_threshold_percentage` (Number) diff --git a/docs/resources/alert.md b/docs/resources/alert.md index 49e7a12e..13d82027 100644 --- a/docs/resources/alert.md +++ b/docs/resources/alert.md @@ -710,19 +710,15 @@ Required: Optional: -- `less_than` (Boolean) Determines the condition operator. Must be one of - less_than or more_than. -- `less_than_usual` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than or - more_than_usual. -- `manage_undetected_values` (Block List, Max: 1) Manage your logs undetected values - when relevant, enable/disable - triggering on undetected values and change the auto retire interval. By default (when relevant), triggering is enabled - with retire-ratio=NEVER. ( - see [below for nested schema](#nestedblock--metric--promql--condition--manage_undetected_values)) +- `less_than` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `less_than_or_equal` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `less_than_usual` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `manage_undetected_values` (Block List, Max: 1) Manage your logs undetected values - when relevant, enable/disable triggering on undetected values and change the auto retire interval. By default (when relevant), triggering is enabled with retire-ratio=NEVER. (see [below for nested schema](#nestedblock--metric--promql--condition--manage_undetected_values)) - `min_non_null_values_percentage` (Number) -- `more_than` (Boolean) Determines the condition operator. Must be one of - less_than or more_than. -- `more_than_usual` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than or - more_than_usual. -- `replace_missing_value_with_zero` (Boolean) If set to true, missing data will be considered as 0, otherwise, it will - not be considered at all. +- `more_than` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `more_than_or_equal` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `more_than_usual` (Boolean) Determines the condition operator. Must be one of - immediately, less_than, more_than, more_than_usual, less_than_usual, more_than_or_equal or less_than_or_equal. +- `replace_missing_value_with_zero` (Boolean) If set to true, missing data will be considered as 0, otherwise, it will not be considered at all.