github.com/cloudwan/edgelq-sdk@v1.15.4/alerting/resources/v1/common/specs.pb.go (about) 1 // Code generated by protoc-gen-goten-go 2 // File: edgelq/alerting/proto/v1/specs.proto 3 // DO NOT EDIT!!! 4 5 package rcommon 6 7 import ( 8 "fmt" 9 "reflect" 10 "sync" 11 12 "google.golang.org/protobuf/encoding/protojson" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 "google.golang.org/protobuf/runtime/protoimpl" 16 ) 17 18 // proto imports 19 import ( 20 logging_log "github.com/cloudwan/edgelq-sdk/logging/resources/v1/log" 21 monitoring_common "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/common" 22 monitoring_time_serie "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/time_serie" 23 meta_resource "github.com/cloudwan/goten-sdk/meta-service/resources/v1/resource" 24 durationpb "google.golang.org/protobuf/types/known/durationpb" 25 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 26 ) 27 28 // Reference imports to suppress errors if they are not otherwise used. 29 var ( 30 _ = fmt.Errorf 31 _ = reflect.Method{} 32 _ = sync.Once{} 33 34 _ = protojson.MarshalOptions{} 35 _ = proto.MarshalOptions{} 36 _ = preflect.Value{} 37 _ = protoimpl.DescBuilder{} 38 ) 39 40 // make sure we're using proto imports 41 var ( 42 _ = &logging_log.Log{} 43 _ = &monitoring_common.LabelDescriptor{} 44 _ = &monitoring_time_serie.Point{} 45 _ = &durationpb.Duration{} 46 _ = &fieldmaskpb.FieldMask{} 47 _ = &meta_resource.Resource{} 48 ) 49 50 const ( 51 // Verify that this generated code is sufficiently up-to-date. 52 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 53 // Verify that runtime/protoimpl is sufficiently up-to-date. 54 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 55 ) 56 57 // Operator informs if only one trigger must be satisfied to 58 // trigger an Alert, or all. 59 type LogCndSpec_Query_CompositeTrigger_Operator int32 60 61 const ( 62 // UNDEFINED is not allowed 63 LogCndSpec_Query_CompositeTrigger_UNDEFINED LogCndSpec_Query_CompositeTrigger_Operator = 0 64 // AND tells that all triggers must be on for Alert to be created 65 LogCndSpec_Query_CompositeTrigger_AND LogCndSpec_Query_CompositeTrigger_Operator = 1 66 // OR tells that Alert should be raised based on any trigger 67 // condition. 68 LogCndSpec_Query_CompositeTrigger_OR LogCndSpec_Query_CompositeTrigger_Operator = 2 69 ) 70 71 var ( 72 LogCndSpec_Query_CompositeTrigger_Operator_name = map[int32]string{ 73 0: "UNDEFINED", 74 1: "AND", 75 2: "OR", 76 } 77 78 LogCndSpec_Query_CompositeTrigger_Operator_value = map[string]int32{ 79 "UNDEFINED": 0, 80 "AND": 1, 81 "OR": 2, 82 } 83 ) 84 85 func (x LogCndSpec_Query_CompositeTrigger_Operator) Enum() *LogCndSpec_Query_CompositeTrigger_Operator { 86 p := new(LogCndSpec_Query_CompositeTrigger_Operator) 87 *p = x 88 return p 89 } 90 91 func (x LogCndSpec_Query_CompositeTrigger_Operator) String() string { 92 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 93 } 94 95 func (LogCndSpec_Query_CompositeTrigger_Operator) Descriptor() preflect.EnumDescriptor { 96 return edgelq_alerting_proto_v1_specs_proto_enumTypes[0].Descriptor() 97 } 98 99 func (LogCndSpec_Query_CompositeTrigger_Operator) Type() preflect.EnumType { 100 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[0] 101 } 102 103 func (x LogCndSpec_Query_CompositeTrigger_Operator) Number() preflect.EnumNumber { 104 return preflect.EnumNumber(x) 105 } 106 107 // Deprecated, Use LogCndSpec_Query_CompositeTrigger_Operator.ProtoReflect.Descriptor instead. 108 func (LogCndSpec_Query_CompositeTrigger_Operator) EnumDescriptor() ([]byte, []int) { 109 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0, 2, 0} 110 } 111 112 // Operator informs if whether all or one of queries must be crossed 113 // for alert to be generated. 114 type TsCndSpec_ThresholdAlertingCfg_Operator int32 115 116 const ( 117 // UNDEFINED is not allowed 118 TsCndSpec_ThresholdAlertingCfg_UNDEFINED TsCndSpec_ThresholdAlertingCfg_Operator = 0 119 // AND indicates that all thresholds must be crossed for 120 // alert ti be triggered. 121 TsCndSpec_ThresholdAlertingCfg_AND TsCndSpec_ThresholdAlertingCfg_Operator = 1 122 // OR indicates that Alert should be raised if any of queries 123 // violates threshold. 124 TsCndSpec_ThresholdAlertingCfg_OR TsCndSpec_ThresholdAlertingCfg_Operator = 2 125 ) 126 127 var ( 128 TsCndSpec_ThresholdAlertingCfg_Operator_name = map[int32]string{ 129 0: "UNDEFINED", 130 1: "AND", 131 2: "OR", 132 } 133 134 TsCndSpec_ThresholdAlertingCfg_Operator_value = map[string]int32{ 135 "UNDEFINED": 0, 136 "AND": 1, 137 "OR": 2, 138 } 139 ) 140 141 func (x TsCndSpec_ThresholdAlertingCfg_Operator) Enum() *TsCndSpec_ThresholdAlertingCfg_Operator { 142 p := new(TsCndSpec_ThresholdAlertingCfg_Operator) 143 *p = x 144 return p 145 } 146 147 func (x TsCndSpec_ThresholdAlertingCfg_Operator) String() string { 148 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 149 } 150 151 func (TsCndSpec_ThresholdAlertingCfg_Operator) Descriptor() preflect.EnumDescriptor { 152 return edgelq_alerting_proto_v1_specs_proto_enumTypes[1].Descriptor() 153 } 154 155 func (TsCndSpec_ThresholdAlertingCfg_Operator) Type() preflect.EnumType { 156 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[1] 157 } 158 159 func (x TsCndSpec_ThresholdAlertingCfg_Operator) Number() preflect.EnumNumber { 160 return preflect.EnumNumber(x) 161 } 162 163 // Deprecated, Use TsCndSpec_ThresholdAlertingCfg_Operator.ProtoReflect.Descriptor instead. 164 func (TsCndSpec_ThresholdAlertingCfg_Operator) EnumDescriptor() ([]byte, []int) { 165 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 1, 0} 166 } 167 168 // ProcessingLocation indicates if alerts should be detected on Edge 169 // or in backend. Edge may be preferred for various reasons: 170 // * Alerts can be raised closer to the source. 171 // * Conditions can use more sophisticated methods, like local small AI 172 // anomaly 173 // detector models. In backend, performance may not be guaranteed, if 174 // there are a lot of pending trainings. 175 // Backend is preferred when: 176 // * We want to alert based on metrics that dont make sense on edge (like 177 // connectivity). 178 // * Alerting resoucrce is not "edge" type. For example, we monitor some 179 // network targets 180 // monitored by multiple distributed probes. 181 type PolicySpec_ProcessingLocation int32 182 183 const ( 184 // UNDEFINED is invalid 185 PolicySpec_UNDEFINED PolicySpec_ProcessingLocation = 0 186 // Alerts will be detected and generated in the backend. 187 PolicySpec_BACKEND PolicySpec_ProcessingLocation = 1 188 // Alerts will be detected and generated on the edge. 189 PolicySpec_EDGE PolicySpec_ProcessingLocation = 2 190 ) 191 192 var ( 193 PolicySpec_ProcessingLocation_name = map[int32]string{ 194 0: "UNDEFINED", 195 1: "BACKEND", 196 2: "EDGE", 197 } 198 199 PolicySpec_ProcessingLocation_value = map[string]int32{ 200 "UNDEFINED": 0, 201 "BACKEND": 1, 202 "EDGE": 2, 203 } 204 ) 205 206 func (x PolicySpec_ProcessingLocation) Enum() *PolicySpec_ProcessingLocation { 207 p := new(PolicySpec_ProcessingLocation) 208 *p = x 209 return p 210 } 211 212 func (x PolicySpec_ProcessingLocation) String() string { 213 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 214 } 215 216 func (PolicySpec_ProcessingLocation) Descriptor() preflect.EnumDescriptor { 217 return edgelq_alerting_proto_v1_specs_proto_enumTypes[2].Descriptor() 218 } 219 220 func (PolicySpec_ProcessingLocation) Type() preflect.EnumType { 221 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[2] 222 } 223 224 func (x PolicySpec_ProcessingLocation) Number() preflect.EnumNumber { 225 return preflect.EnumNumber(x) 226 } 227 228 // Deprecated, Use PolicySpec_ProcessingLocation.ProtoReflect.Descriptor instead. 229 func (PolicySpec_ProcessingLocation) EnumDescriptor() ([]byte, []int) { 230 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 0} 231 } 232 233 // UsageContext exact descriptor type where label key can be found. 234 type PolicySpec_ResourceIdentity_LabelInfo_UsageContext int32 235 236 const ( 237 // UNDEFINED - not allowed 238 PolicySpec_ResourceIdentity_LabelInfo_UNDEFINED PolicySpec_ResourceIdentity_LabelInfo_UsageContext = 0 239 // Indicates that label of given key can be found in 240 // monitoring.edgelq.com/MetricDescriptor resource. 241 PolicySpec_ResourceIdentity_LabelInfo_METRIC_LABEL PolicySpec_ResourceIdentity_LabelInfo_UsageContext = 1 242 // Indicates that label of given key can be found in 243 // monitoring.edgelq.com/MonitoredResourceDescriptor resource. 244 PolicySpec_ResourceIdentity_LabelInfo_RESOURCE_LABEL PolicySpec_ResourceIdentity_LabelInfo_UsageContext = 2 245 // Indicates that label of given key can be found in 246 // logging.edgelq.com/LogDescriptor resource. 247 PolicySpec_ResourceIdentity_LabelInfo_LOG_LABEL PolicySpec_ResourceIdentity_LabelInfo_UsageContext = 3 248 ) 249 250 var ( 251 PolicySpec_ResourceIdentity_LabelInfo_UsageContext_name = map[int32]string{ 252 0: "UNDEFINED", 253 1: "METRIC_LABEL", 254 2: "RESOURCE_LABEL", 255 3: "LOG_LABEL", 256 } 257 258 PolicySpec_ResourceIdentity_LabelInfo_UsageContext_value = map[string]int32{ 259 "UNDEFINED": 0, 260 "METRIC_LABEL": 1, 261 "RESOURCE_LABEL": 2, 262 "LOG_LABEL": 3, 263 } 264 ) 265 266 func (x PolicySpec_ResourceIdentity_LabelInfo_UsageContext) Enum() *PolicySpec_ResourceIdentity_LabelInfo_UsageContext { 267 p := new(PolicySpec_ResourceIdentity_LabelInfo_UsageContext) 268 *p = x 269 return p 270 } 271 272 func (x PolicySpec_ResourceIdentity_LabelInfo_UsageContext) String() string { 273 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 274 } 275 276 func (PolicySpec_ResourceIdentity_LabelInfo_UsageContext) Descriptor() preflect.EnumDescriptor { 277 return edgelq_alerting_proto_v1_specs_proto_enumTypes[3].Descriptor() 278 } 279 280 func (PolicySpec_ResourceIdentity_LabelInfo_UsageContext) Type() preflect.EnumType { 281 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[3] 282 } 283 284 func (x PolicySpec_ResourceIdentity_LabelInfo_UsageContext) Number() preflect.EnumNumber { 285 return preflect.EnumNumber(x) 286 } 287 288 // Deprecated, Use PolicySpec_ResourceIdentity_LabelInfo_UsageContext.ProtoReflect.Descriptor instead. 289 func (PolicySpec_ResourceIdentity_LabelInfo_UsageContext) EnumDescriptor() ([]byte, []int) { 290 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 0, 0, 0} 291 } 292 293 // Type of NotificationChannel 294 type NotificationChannelSpec_Type int32 295 296 const ( 297 // Type is unknown 298 NotificationChannelSpec_TYPE_UNSPECIFIED NotificationChannelSpec_Type = 0 299 // Email NotificationChannel 300 NotificationChannelSpec_EMAIL NotificationChannelSpec_Type = 1 301 // Slack NotificationChannel 302 NotificationChannelSpec_SLACK NotificationChannelSpec_Type = 2 303 // Webhook NotificationChannel 304 NotificationChannelSpec_WEBHOOK NotificationChannelSpec_Type = 3 305 ) 306 307 var ( 308 NotificationChannelSpec_Type_name = map[int32]string{ 309 0: "TYPE_UNSPECIFIED", 310 1: "EMAIL", 311 2: "SLACK", 312 3: "WEBHOOK", 313 } 314 315 NotificationChannelSpec_Type_value = map[string]int32{ 316 "TYPE_UNSPECIFIED": 0, 317 "EMAIL": 1, 318 "SLACK": 2, 319 "WEBHOOK": 3, 320 } 321 ) 322 323 func (x NotificationChannelSpec_Type) Enum() *NotificationChannelSpec_Type { 324 p := new(NotificationChannelSpec_Type) 325 *p = x 326 return p 327 } 328 329 func (x NotificationChannelSpec_Type) String() string { 330 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 331 } 332 333 func (NotificationChannelSpec_Type) Descriptor() preflect.EnumDescriptor { 334 return edgelq_alerting_proto_v1_specs_proto_enumTypes[4].Descriptor() 335 } 336 337 func (NotificationChannelSpec_Type) Type() preflect.EnumType { 338 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[4] 339 } 340 341 func (x NotificationChannelSpec_Type) Number() preflect.EnumNumber { 342 return preflect.EnumNumber(x) 343 } 344 345 // Deprecated, Use NotificationChannelSpec_Type.ProtoReflect.Descriptor instead. 346 func (NotificationChannelSpec_Type) EnumDescriptor() ([]byte, []int) { 347 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 0} 348 } 349 350 // EventKind specifies interesting alert state change which may 351 // trigger a notification generation. 352 type NotificationChannelSpec_EventKind int32 353 354 const ( 355 // Undefined is not allowed 356 NotificationChannelSpec_UNDEFINED NotificationChannelSpec_EventKind = 0 357 // This kind must be used if we want to generate a notification 358 // for a new firing alert. 359 NotificationChannelSpec_NEW_FIRING NotificationChannelSpec_EventKind = 1 360 // This kind must be used if we want to generate a notification 361 // for an alert that has been pushed to Operator (escalated by 362 // AI Agent). 363 NotificationChannelSpec_AI_ESCALATED_TO_OPERATOR NotificationChannelSpec_EventKind = 2 364 // This kind must be used if we want to generate a notification 365 // for an alert which received remediation recommendation by 366 // AI Agent, and which requires operator approval. 367 NotificationChannelSpec_AI_REMEDIATION_AWAITING_APPROVAL NotificationChannelSpec_EventKind = 3 368 // This kind must be used if we want to generate a notification 369 // for an alert which has been considered as a temporary violation 370 // by AI Agent. 371 NotificationChannelSpec_AI_IGNORED_AS_TMP NotificationChannelSpec_EventKind = 4 372 // This kind must be used if we want to generate a notification 373 // for an alert which has been considered as a false positive, 374 // and for which alerting thresholds should be adjusted. 375 NotificationChannelSpec_AI_ADJUSTED_ENTRIES NotificationChannelSpec_EventKind = 5 376 // This kind must be used if we want to generate a notification 377 // for an alert for which AI agent applied recommendation. 378 NotificationChannelSpec_AI_REMEDIATION_APPLIED NotificationChannelSpec_EventKind = 6 379 // This kind must be used if we want to generate a notification 380 // for an alert for which operator applied recommendation. 381 NotificationChannelSpec_OP_REMEDIATION_APPLIED NotificationChannelSpec_EventKind = 7 382 // This kind must be used if we want to generate a notification 383 // for an alert that stopped firing. 384 NotificationChannelSpec_STOPPED_FIRING NotificationChannelSpec_EventKind = 8 385 ) 386 387 var ( 388 NotificationChannelSpec_EventKind_name = map[int32]string{ 389 0: "UNDEFINED", 390 1: "NEW_FIRING", 391 2: "AI_ESCALATED_TO_OPERATOR", 392 3: "AI_REMEDIATION_AWAITING_APPROVAL", 393 4: "AI_IGNORED_AS_TMP", 394 5: "AI_ADJUSTED_ENTRIES", 395 6: "AI_REMEDIATION_APPLIED", 396 7: "OP_REMEDIATION_APPLIED", 397 8: "STOPPED_FIRING", 398 } 399 400 NotificationChannelSpec_EventKind_value = map[string]int32{ 401 "UNDEFINED": 0, 402 "NEW_FIRING": 1, 403 "AI_ESCALATED_TO_OPERATOR": 2, 404 "AI_REMEDIATION_AWAITING_APPROVAL": 3, 405 "AI_IGNORED_AS_TMP": 4, 406 "AI_ADJUSTED_ENTRIES": 5, 407 "AI_REMEDIATION_APPLIED": 6, 408 "OP_REMEDIATION_APPLIED": 7, 409 "STOPPED_FIRING": 8, 410 } 411 ) 412 413 func (x NotificationChannelSpec_EventKind) Enum() *NotificationChannelSpec_EventKind { 414 p := new(NotificationChannelSpec_EventKind) 415 *p = x 416 return p 417 } 418 419 func (x NotificationChannelSpec_EventKind) String() string { 420 return protoimpl.X.EnumStringOf(x.Descriptor(), preflect.EnumNumber(x)) 421 } 422 423 func (NotificationChannelSpec_EventKind) Descriptor() preflect.EnumDescriptor { 424 return edgelq_alerting_proto_v1_specs_proto_enumTypes[5].Descriptor() 425 } 426 427 func (NotificationChannelSpec_EventKind) Type() preflect.EnumType { 428 return &edgelq_alerting_proto_v1_specs_proto_enumTypes[5] 429 } 430 431 func (x NotificationChannelSpec_EventKind) Number() preflect.EnumNumber { 432 return preflect.EnumNumber(x) 433 } 434 435 // Deprecated, Use NotificationChannelSpec_EventKind.ProtoReflect.Descriptor instead. 436 func (NotificationChannelSpec_EventKind) EnumDescriptor() ([]byte, []int) { 437 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 1} 438 } 439 440 // LogCndSpec informs what Logging queries should be monitored for alerting, and 441 // what content should be considered as violation. 442 type LogCndSpec struct { 443 state protoimpl.MessageState 444 sizeCache protoimpl.SizeCache 445 unknownFields protoimpl.UnknownFields 446 // Specifies logging query 447 Query *LogCndSpec_Query `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 448 // Group by labels inform how to split monitored Logs stream. Each 449 // unique combination of label values is considered separately as own 450 // alerting bucket. 451 // All labels defined in Policy must be defined here. 452 GroupByLabels []string `protobuf:"bytes,2,rep,name=group_by_labels,json=groupByLabels,proto3" json:"group_by_labels,omitempty"` 453 } 454 455 func (m *LogCndSpec) Reset() { 456 *m = LogCndSpec{} 457 if protoimpl.UnsafeEnabled { 458 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[0] 459 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 460 ms.StoreMessageInfo(mi) 461 } 462 } 463 464 func (m *LogCndSpec) String() string { 465 return protoimpl.X.MessageStringOf(m) 466 } 467 468 func (*LogCndSpec) ProtoMessage() {} 469 470 func (m *LogCndSpec) ProtoReflect() preflect.Message { 471 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[0] 472 if protoimpl.UnsafeEnabled && m != nil { 473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 474 if ms.LoadMessageInfo() == nil { 475 ms.StoreMessageInfo(mi) 476 } 477 return ms 478 } 479 return mi.MessageOf(m) 480 } 481 482 func (*LogCndSpec) GotenMessage() {} 483 484 // Deprecated, Use LogCndSpec.ProtoReflect.Descriptor instead. 485 func (*LogCndSpec) Descriptor() ([]byte, []int) { 486 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0} 487 } 488 489 func (m *LogCndSpec) Unmarshal(b []byte) error { 490 return proto.Unmarshal(b, m) 491 } 492 493 func (m *LogCndSpec) Marshal() ([]byte, error) { 494 return proto.Marshal(m) 495 } 496 497 func (m *LogCndSpec) MarshalJSON() ([]byte, error) { 498 return protojson.MarshalOptions{}.Marshal(m) 499 } 500 501 func (m *LogCndSpec) UnmarshalJSON(data []byte) error { 502 return protojson.Unmarshal(data, m) 503 } 504 505 func (m *LogCndSpec) GetQuery() *LogCndSpec_Query { 506 if m != nil { 507 return m.Query 508 } 509 return nil 510 } 511 512 func (m *LogCndSpec) GetGroupByLabels() []string { 513 if m != nil { 514 return m.GroupByLabels 515 } 516 return nil 517 } 518 519 func (m *LogCndSpec) SetQuery(fv *LogCndSpec_Query) { 520 if m == nil { 521 panic(fmt.Errorf("can't set %s on nil %s", "Query", "LogCndSpec")) 522 } 523 m.Query = fv 524 } 525 526 func (m *LogCndSpec) SetGroupByLabels(fv []string) { 527 if m == nil { 528 panic(fmt.Errorf("can't set %s on nil %s", "GroupByLabels", "LogCndSpec")) 529 } 530 m.GroupByLabels = fv 531 } 532 533 // TsCndSpec defines time series queries and thresholds/anomaly detectors. 534 type TsCndSpec struct { 535 state protoimpl.MessageState 536 sizeCache protoimpl.SizeCache 537 unknownFields protoimpl.UnknownFields 538 // List of observed queries. Each by default can raise alert by 539 // threshold. If anomaly detectors are specified, they try to learn 540 // all time series together. 541 Queries []*TsCndSpec_Query `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"` 542 // List of group by labels applied to all queries. 543 // Each unique combination of group_by is tracked separately. 544 // It has its own adaptive thresholds, its own anomaly detectors. 545 // One such representation has a form of resource TsEntry. 546 // Group by fields must define all labels defined in Policy. 547 QueryGroupBy []string `protobuf:"bytes,2,rep,name=query_group_by,json=queryGroupBy,proto3" json:"query_group_by,omitempty"` 548 // Threshold alerting configuration 549 ThresholdAlerting *TsCndSpec_ThresholdAlertingCfg `protobuf:"bytes,3,opt,name=threshold_alerting,json=thresholdAlerting,proto3" json:"threshold_alerting,omitempty"` 550 // All anomaly detectors. Its possible to define multiple 551 // detectors with different analysis window. It is advisable 552 // to create one detector catching long window (1 day, step 553 // interval 15 minutes), followed by small window (15 minutes, 554 // step interval 1 minute). This should catch sudden and small 555 // anomalies, along with long term unexpected changes. 556 // Maintaining long window (1 day) along with small interval 557 // (1 minute) would be too costly. 558 // Other option detectors may be: 559 // 1 day / 30 minutes + 30 minutes / 1 minute. 560 AnomalyAlerting []*TsCndSpec_AnomalyAlertingCfg `protobuf:"bytes,5,rep,name=anomaly_alerting,json=anomalyAlerting,proto3" json:"anomaly_alerting,omitempty"` 561 } 562 563 func (m *TsCndSpec) Reset() { 564 *m = TsCndSpec{} 565 if protoimpl.UnsafeEnabled { 566 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[1] 567 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 568 ms.StoreMessageInfo(mi) 569 } 570 } 571 572 func (m *TsCndSpec) String() string { 573 return protoimpl.X.MessageStringOf(m) 574 } 575 576 func (*TsCndSpec) ProtoMessage() {} 577 578 func (m *TsCndSpec) ProtoReflect() preflect.Message { 579 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[1] 580 if protoimpl.UnsafeEnabled && m != nil { 581 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 582 if ms.LoadMessageInfo() == nil { 583 ms.StoreMessageInfo(mi) 584 } 585 return ms 586 } 587 return mi.MessageOf(m) 588 } 589 590 func (*TsCndSpec) GotenMessage() {} 591 592 // Deprecated, Use TsCndSpec.ProtoReflect.Descriptor instead. 593 func (*TsCndSpec) Descriptor() ([]byte, []int) { 594 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1} 595 } 596 597 func (m *TsCndSpec) Unmarshal(b []byte) error { 598 return proto.Unmarshal(b, m) 599 } 600 601 func (m *TsCndSpec) Marshal() ([]byte, error) { 602 return proto.Marshal(m) 603 } 604 605 func (m *TsCndSpec) MarshalJSON() ([]byte, error) { 606 return protojson.MarshalOptions{}.Marshal(m) 607 } 608 609 func (m *TsCndSpec) UnmarshalJSON(data []byte) error { 610 return protojson.Unmarshal(data, m) 611 } 612 613 func (m *TsCndSpec) GetQueries() []*TsCndSpec_Query { 614 if m != nil { 615 return m.Queries 616 } 617 return nil 618 } 619 620 func (m *TsCndSpec) GetQueryGroupBy() []string { 621 if m != nil { 622 return m.QueryGroupBy 623 } 624 return nil 625 } 626 627 func (m *TsCndSpec) GetThresholdAlerting() *TsCndSpec_ThresholdAlertingCfg { 628 if m != nil { 629 return m.ThresholdAlerting 630 } 631 return nil 632 } 633 634 func (m *TsCndSpec) GetAnomalyAlerting() []*TsCndSpec_AnomalyAlertingCfg { 635 if m != nil { 636 return m.AnomalyAlerting 637 } 638 return nil 639 } 640 641 func (m *TsCndSpec) SetQueries(fv []*TsCndSpec_Query) { 642 if m == nil { 643 panic(fmt.Errorf("can't set %s on nil %s", "Queries", "TsCndSpec")) 644 } 645 m.Queries = fv 646 } 647 648 func (m *TsCndSpec) SetQueryGroupBy(fv []string) { 649 if m == nil { 650 panic(fmt.Errorf("can't set %s on nil %s", "QueryGroupBy", "TsCndSpec")) 651 } 652 m.QueryGroupBy = fv 653 } 654 655 func (m *TsCndSpec) SetThresholdAlerting(fv *TsCndSpec_ThresholdAlertingCfg) { 656 if m == nil { 657 panic(fmt.Errorf("can't set %s on nil %s", "ThresholdAlerting", "TsCndSpec")) 658 } 659 m.ThresholdAlerting = fv 660 } 661 662 func (m *TsCndSpec) SetAnomalyAlerting(fv []*TsCndSpec_AnomalyAlertingCfg) { 663 if m == nil { 664 panic(fmt.Errorf("can't set %s on nil %s", "AnomalyAlerting", "TsCndSpec")) 665 } 666 m.AnomalyAlerting = fv 667 } 668 669 // PolicySpec defines common specification parts shared by all conditions 670 // within: 671 // * Enabled flag 672 // * Processing location 673 // * Standard troubleshooting queries to be executed for triggered alerts. 674 // * Shared resource type identity 675 // * Whether and how AI agent should be handling alerts 676 type PolicySpec struct { 677 state protoimpl.MessageState 678 sizeCache protoimpl.SizeCache 679 unknownFields protoimpl.UnknownFields 680 // Enabled controls whether conditions within are active or not. 681 Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` 682 // Decides whether alerting is executed in backend or at the edge. 683 // This field cannot be modified. 684 ProcessingLocation PolicySpec_ProcessingLocation `protobuf:"varint,2,opt,name=processing_location,json=processingLocation,proto3,enum=ntt.alerting.v1.PolicySpec_ProcessingLocation" json:"processing_location,omitempty"` 685 // Resource identity shared by all conditions/alerts within policy. 686 ResourceIdentity *PolicySpec_ResourceIdentity `protobuf:"bytes,6,opt,name=resource_identity,json=resourceIdentity,proto3" json:"resource_identity,omitempty"` 687 // List of all supporting queries to be executed for alerts within Policy. 688 SupportingQueries []*PolicySpec_SupportingAlertQuery `protobuf:"bytes,7,rep,name=supporting_queries,json=supportingQueries,proto3" json:"supporting_queries,omitempty"` 689 // Defines AI agent handling for alerts within this policy 690 AiAgent *PolicySpec_AIAgentHandling `protobuf:"bytes,8,opt,name=ai_agent,json=aiAgent,proto3" json:"ai_agent,omitempty"` 691 } 692 693 func (m *PolicySpec) Reset() { 694 *m = PolicySpec{} 695 if protoimpl.UnsafeEnabled { 696 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[2] 697 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 698 ms.StoreMessageInfo(mi) 699 } 700 } 701 702 func (m *PolicySpec) String() string { 703 return protoimpl.X.MessageStringOf(m) 704 } 705 706 func (*PolicySpec) ProtoMessage() {} 707 708 func (m *PolicySpec) ProtoReflect() preflect.Message { 709 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[2] 710 if protoimpl.UnsafeEnabled && m != nil { 711 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 712 if ms.LoadMessageInfo() == nil { 713 ms.StoreMessageInfo(mi) 714 } 715 return ms 716 } 717 return mi.MessageOf(m) 718 } 719 720 func (*PolicySpec) GotenMessage() {} 721 722 // Deprecated, Use PolicySpec.ProtoReflect.Descriptor instead. 723 func (*PolicySpec) Descriptor() ([]byte, []int) { 724 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2} 725 } 726 727 func (m *PolicySpec) Unmarshal(b []byte) error { 728 return proto.Unmarshal(b, m) 729 } 730 731 func (m *PolicySpec) Marshal() ([]byte, error) { 732 return proto.Marshal(m) 733 } 734 735 func (m *PolicySpec) MarshalJSON() ([]byte, error) { 736 return protojson.MarshalOptions{}.Marshal(m) 737 } 738 739 func (m *PolicySpec) UnmarshalJSON(data []byte) error { 740 return protojson.Unmarshal(data, m) 741 } 742 743 func (m *PolicySpec) GetEnabled() bool { 744 if m != nil { 745 return m.Enabled 746 } 747 return false 748 } 749 750 func (m *PolicySpec) GetProcessingLocation() PolicySpec_ProcessingLocation { 751 if m != nil { 752 return m.ProcessingLocation 753 } 754 return PolicySpec_UNDEFINED 755 } 756 757 func (m *PolicySpec) GetResourceIdentity() *PolicySpec_ResourceIdentity { 758 if m != nil { 759 return m.ResourceIdentity 760 } 761 return nil 762 } 763 764 func (m *PolicySpec) GetSupportingQueries() []*PolicySpec_SupportingAlertQuery { 765 if m != nil { 766 return m.SupportingQueries 767 } 768 return nil 769 } 770 771 func (m *PolicySpec) GetAiAgent() *PolicySpec_AIAgentHandling { 772 if m != nil { 773 return m.AiAgent 774 } 775 return nil 776 } 777 778 func (m *PolicySpec) SetEnabled(fv bool) { 779 if m == nil { 780 panic(fmt.Errorf("can't set %s on nil %s", "Enabled", "PolicySpec")) 781 } 782 m.Enabled = fv 783 } 784 785 func (m *PolicySpec) SetProcessingLocation(fv PolicySpec_ProcessingLocation) { 786 if m == nil { 787 panic(fmt.Errorf("can't set %s on nil %s", "ProcessingLocation", "PolicySpec")) 788 } 789 m.ProcessingLocation = fv 790 } 791 792 func (m *PolicySpec) SetResourceIdentity(fv *PolicySpec_ResourceIdentity) { 793 if m == nil { 794 panic(fmt.Errorf("can't set %s on nil %s", "ResourceIdentity", "PolicySpec")) 795 } 796 m.ResourceIdentity = fv 797 } 798 799 func (m *PolicySpec) SetSupportingQueries(fv []*PolicySpec_SupportingAlertQuery) { 800 if m == nil { 801 panic(fmt.Errorf("can't set %s on nil %s", "SupportingQueries", "PolicySpec")) 802 } 803 m.SupportingQueries = fv 804 } 805 806 func (m *PolicySpec) SetAiAgent(fv *PolicySpec_AIAgentHandling) { 807 if m == nil { 808 panic(fmt.Errorf("can't set %s on nil %s", "AiAgent", "PolicySpec")) 809 } 810 m.AiAgent = fv 811 } 812 813 // NotificationChannelSpec informs what kind of channel it is, and how to send 814 // there messages. 815 type NotificationChannelSpec struct { 816 state protoimpl.MessageState 817 sizeCache protoimpl.SizeCache 818 unknownFields protoimpl.UnknownFields 819 // Enabled flag. Whether the NotificationChannel is enabled or not. Disabled 820 // channels will not be used for alerting. 821 Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` 822 // Type. Corresponding spec should a oneof field. 823 Type NotificationChannelSpec_Type `protobuf:"varint,2,opt,name=type,proto3,enum=ntt.alerting.v1.NotificationChannelSpec_Type" json:"type,omitempty"` 824 // List of alert state event kinds when we want to send a notification. 825 EnabledKinds []NotificationChannelSpec_EventKind `protobuf:"varint,8,rep,packed,name=enabled_kinds,json=enabledKinds,proto3,enum=ntt.alerting.v1.NotificationChannelSpec_EventKind" json:"enabled_kinds,omitempty"` 826 // Email 827 Email *NotificationChannelSpec_Email `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` 828 // Slack 829 Slack *NotificationChannelSpec_Slack `protobuf:"bytes,4,opt,name=slack,proto3" json:"slack,omitempty"` 830 // Webhook endpoint 831 Webhook *NotificationChannelSpec_Webhook `protobuf:"bytes,5,opt,name=webhook,proto3" json:"webhook,omitempty"` 832 // Default language for invitation is english (eng) 833 // Configuring unsupported language will fallback to english 834 // Currently only sendgrid uses this. 835 NotificationLanguageCode string `protobuf:"bytes,6,opt,name=notification_language_code,json=notificationLanguageCode,proto3" json:"notification_language_code,omitempty"` 836 // Notification mask contains list of fields to include in the message. 837 // It must match NotificationMsg 838 NotificationMask *fieldmaskpb.FieldMask `protobuf:"bytes,7,opt,name=notification_mask,json=notificationMask,proto3" json:"notification_mask,omitempty"` 839 // If bigger than 0, then number of alert bodies in message 840 // will be cut to this value. 841 MaxAlertBodiesInMsg int32 `protobuf:"varint,9,opt,name=max_alert_bodies_in_msg,json=maxAlertBodiesInMsg,proto3" json:"max_alert_bodies_in_msg,omitempty"` 842 // This field matters if max_alert_bodies_in_msg is bigger than 0. 843 // If this field has value true, then notification message will only 844 // inform how many alerts additionally were raised on top of provided 845 // in the notification. 846 // If false, multiple notifications will be generated. 847 PutOnlyAlertsCounterWhenOverflowing bool `protobuf:"varint,10,opt,name=put_only_alerts_counter_when_overflowing,json=putOnlyAlertsCounterWhenOverflowing,proto3" json:"put_only_alerts_counter_when_overflowing,omitempty"` 848 } 849 850 func (m *NotificationChannelSpec) Reset() { 851 *m = NotificationChannelSpec{} 852 if protoimpl.UnsafeEnabled { 853 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[3] 854 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 855 ms.StoreMessageInfo(mi) 856 } 857 } 858 859 func (m *NotificationChannelSpec) String() string { 860 return protoimpl.X.MessageStringOf(m) 861 } 862 863 func (*NotificationChannelSpec) ProtoMessage() {} 864 865 func (m *NotificationChannelSpec) ProtoReflect() preflect.Message { 866 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[3] 867 if protoimpl.UnsafeEnabled && m != nil { 868 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 869 if ms.LoadMessageInfo() == nil { 870 ms.StoreMessageInfo(mi) 871 } 872 return ms 873 } 874 return mi.MessageOf(m) 875 } 876 877 func (*NotificationChannelSpec) GotenMessage() {} 878 879 // Deprecated, Use NotificationChannelSpec.ProtoReflect.Descriptor instead. 880 func (*NotificationChannelSpec) Descriptor() ([]byte, []int) { 881 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3} 882 } 883 884 func (m *NotificationChannelSpec) Unmarshal(b []byte) error { 885 return proto.Unmarshal(b, m) 886 } 887 888 func (m *NotificationChannelSpec) Marshal() ([]byte, error) { 889 return proto.Marshal(m) 890 } 891 892 func (m *NotificationChannelSpec) MarshalJSON() ([]byte, error) { 893 return protojson.MarshalOptions{}.Marshal(m) 894 } 895 896 func (m *NotificationChannelSpec) UnmarshalJSON(data []byte) error { 897 return protojson.Unmarshal(data, m) 898 } 899 900 func (m *NotificationChannelSpec) GetEnabled() bool { 901 if m != nil { 902 return m.Enabled 903 } 904 return false 905 } 906 907 func (m *NotificationChannelSpec) GetType() NotificationChannelSpec_Type { 908 if m != nil { 909 return m.Type 910 } 911 return NotificationChannelSpec_TYPE_UNSPECIFIED 912 } 913 914 func (m *NotificationChannelSpec) GetEnabledKinds() []NotificationChannelSpec_EventKind { 915 if m != nil { 916 return m.EnabledKinds 917 } 918 return nil 919 } 920 921 func (m *NotificationChannelSpec) GetEmail() *NotificationChannelSpec_Email { 922 if m != nil { 923 return m.Email 924 } 925 return nil 926 } 927 928 func (m *NotificationChannelSpec) GetSlack() *NotificationChannelSpec_Slack { 929 if m != nil { 930 return m.Slack 931 } 932 return nil 933 } 934 935 func (m *NotificationChannelSpec) GetWebhook() *NotificationChannelSpec_Webhook { 936 if m != nil { 937 return m.Webhook 938 } 939 return nil 940 } 941 942 func (m *NotificationChannelSpec) GetNotificationLanguageCode() string { 943 if m != nil { 944 return m.NotificationLanguageCode 945 } 946 return "" 947 } 948 949 func (m *NotificationChannelSpec) GetNotificationMask() *fieldmaskpb.FieldMask { 950 if m != nil { 951 return m.NotificationMask 952 } 953 return nil 954 } 955 956 func (m *NotificationChannelSpec) GetMaxAlertBodiesInMsg() int32 { 957 if m != nil { 958 return m.MaxAlertBodiesInMsg 959 } 960 return int32(0) 961 } 962 963 func (m *NotificationChannelSpec) GetPutOnlyAlertsCounterWhenOverflowing() bool { 964 if m != nil { 965 return m.PutOnlyAlertsCounterWhenOverflowing 966 } 967 return false 968 } 969 970 func (m *NotificationChannelSpec) SetEnabled(fv bool) { 971 if m == nil { 972 panic(fmt.Errorf("can't set %s on nil %s", "Enabled", "NotificationChannelSpec")) 973 } 974 m.Enabled = fv 975 } 976 977 func (m *NotificationChannelSpec) SetType(fv NotificationChannelSpec_Type) { 978 if m == nil { 979 panic(fmt.Errorf("can't set %s on nil %s", "Type", "NotificationChannelSpec")) 980 } 981 m.Type = fv 982 } 983 984 func (m *NotificationChannelSpec) SetEnabledKinds(fv []NotificationChannelSpec_EventKind) { 985 if m == nil { 986 panic(fmt.Errorf("can't set %s on nil %s", "EnabledKinds", "NotificationChannelSpec")) 987 } 988 m.EnabledKinds = fv 989 } 990 991 func (m *NotificationChannelSpec) SetEmail(fv *NotificationChannelSpec_Email) { 992 if m == nil { 993 panic(fmt.Errorf("can't set %s on nil %s", "Email", "NotificationChannelSpec")) 994 } 995 m.Email = fv 996 } 997 998 func (m *NotificationChannelSpec) SetSlack(fv *NotificationChannelSpec_Slack) { 999 if m == nil { 1000 panic(fmt.Errorf("can't set %s on nil %s", "Slack", "NotificationChannelSpec")) 1001 } 1002 m.Slack = fv 1003 } 1004 1005 func (m *NotificationChannelSpec) SetWebhook(fv *NotificationChannelSpec_Webhook) { 1006 if m == nil { 1007 panic(fmt.Errorf("can't set %s on nil %s", "Webhook", "NotificationChannelSpec")) 1008 } 1009 m.Webhook = fv 1010 } 1011 1012 func (m *NotificationChannelSpec) SetNotificationLanguageCode(fv string) { 1013 if m == nil { 1014 panic(fmt.Errorf("can't set %s on nil %s", "NotificationLanguageCode", "NotificationChannelSpec")) 1015 } 1016 m.NotificationLanguageCode = fv 1017 } 1018 1019 func (m *NotificationChannelSpec) SetNotificationMask(fv *fieldmaskpb.FieldMask) { 1020 if m == nil { 1021 panic(fmt.Errorf("can't set %s on nil %s", "NotificationMask", "NotificationChannelSpec")) 1022 } 1023 m.NotificationMask = fv 1024 } 1025 1026 func (m *NotificationChannelSpec) SetMaxAlertBodiesInMsg(fv int32) { 1027 if m == nil { 1028 panic(fmt.Errorf("can't set %s on nil %s", "MaxAlertBodiesInMsg", "NotificationChannelSpec")) 1029 } 1030 m.MaxAlertBodiesInMsg = fv 1031 } 1032 1033 func (m *NotificationChannelSpec) SetPutOnlyAlertsCounterWhenOverflowing(fv bool) { 1034 if m == nil { 1035 panic(fmt.Errorf("can't set %s on nil %s", "PutOnlyAlertsCounterWhenOverflowing", "NotificationChannelSpec")) 1036 } 1037 m.PutOnlyAlertsCounterWhenOverflowing = fv 1038 } 1039 1040 // AlertingThreshold defines threshold value for alerting. 1041 type AlertingThreshold struct { 1042 state protoimpl.MessageState 1043 sizeCache protoimpl.SizeCache 1044 unknownFields protoimpl.UnknownFields 1045 // Value that must not be crossed. 1046 Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` 1047 // If true, then alert is raised when exact specified value is 1048 // reached. Otherwise, it has to be crossed. 1049 IsInclusive bool `protobuf:"varint,2,opt,name=is_inclusive,json=isInclusive,proto3" json:"is_inclusive,omitempty"` 1050 } 1051 1052 func (m *AlertingThreshold) Reset() { 1053 *m = AlertingThreshold{} 1054 if protoimpl.UnsafeEnabled { 1055 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[4] 1056 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1057 ms.StoreMessageInfo(mi) 1058 } 1059 } 1060 1061 func (m *AlertingThreshold) String() string { 1062 return protoimpl.X.MessageStringOf(m) 1063 } 1064 1065 func (*AlertingThreshold) ProtoMessage() {} 1066 1067 func (m *AlertingThreshold) ProtoReflect() preflect.Message { 1068 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[4] 1069 if protoimpl.UnsafeEnabled && m != nil { 1070 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1071 if ms.LoadMessageInfo() == nil { 1072 ms.StoreMessageInfo(mi) 1073 } 1074 return ms 1075 } 1076 return mi.MessageOf(m) 1077 } 1078 1079 func (*AlertingThreshold) GotenMessage() {} 1080 1081 // Deprecated, Use AlertingThreshold.ProtoReflect.Descriptor instead. 1082 func (*AlertingThreshold) Descriptor() ([]byte, []int) { 1083 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{4} 1084 } 1085 1086 func (m *AlertingThreshold) Unmarshal(b []byte) error { 1087 return proto.Unmarshal(b, m) 1088 } 1089 1090 func (m *AlertingThreshold) Marshal() ([]byte, error) { 1091 return proto.Marshal(m) 1092 } 1093 1094 func (m *AlertingThreshold) MarshalJSON() ([]byte, error) { 1095 return protojson.MarshalOptions{}.Marshal(m) 1096 } 1097 1098 func (m *AlertingThreshold) UnmarshalJSON(data []byte) error { 1099 return protojson.Unmarshal(data, m) 1100 } 1101 1102 func (m *AlertingThreshold) GetValue() float64 { 1103 if m != nil { 1104 return m.Value 1105 } 1106 return float64(0) 1107 } 1108 1109 func (m *AlertingThreshold) GetIsInclusive() bool { 1110 if m != nil { 1111 return m.IsInclusive 1112 } 1113 return false 1114 } 1115 1116 func (m *AlertingThreshold) SetValue(fv float64) { 1117 if m == nil { 1118 panic(fmt.Errorf("can't set %s on nil %s", "Value", "AlertingThreshold")) 1119 } 1120 m.Value = fv 1121 } 1122 1123 func (m *AlertingThreshold) SetIsInclusive(fv bool) { 1124 if m == nil { 1125 panic(fmt.Errorf("can't set %s on nil %s", "IsInclusive", "AlertingThreshold")) 1126 } 1127 m.IsInclusive = fv 1128 } 1129 1130 // Query specifies what logging query should be monitored. 1131 type LogCndSpec_Query struct { 1132 state protoimpl.MessageState 1133 sizeCache protoimpl.SizeCache 1134 unknownFields protoimpl.UnknownFields 1135 // Filter used to continuously observe log query output. 1136 Filter *logging_log.Filter `protobuf:"bytes,2,opt,customtype=Filter,name=filter,proto3" json:"filter,omitempty"` 1137 // Trigger under which Alert is raised 1138 Trigger *LogCndSpec_Query_TriggerCnd `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"` 1139 // Informs how long alert should be maintained in firing state since last 1140 // occurrence. 1141 MinDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=min_duration,json=minDuration,proto3" json:"min_duration,omitempty"` 1142 } 1143 1144 func (m *LogCndSpec_Query) Reset() { 1145 *m = LogCndSpec_Query{} 1146 if protoimpl.UnsafeEnabled { 1147 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[5] 1148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1149 ms.StoreMessageInfo(mi) 1150 } 1151 } 1152 1153 func (m *LogCndSpec_Query) String() string { 1154 return protoimpl.X.MessageStringOf(m) 1155 } 1156 1157 func (*LogCndSpec_Query) ProtoMessage() {} 1158 1159 func (m *LogCndSpec_Query) ProtoReflect() preflect.Message { 1160 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[5] 1161 if protoimpl.UnsafeEnabled && m != nil { 1162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1163 if ms.LoadMessageInfo() == nil { 1164 ms.StoreMessageInfo(mi) 1165 } 1166 return ms 1167 } 1168 return mi.MessageOf(m) 1169 } 1170 1171 func (*LogCndSpec_Query) GotenMessage() {} 1172 1173 // Deprecated, Use LogCndSpec_Query.ProtoReflect.Descriptor instead. 1174 func (*LogCndSpec_Query) Descriptor() ([]byte, []int) { 1175 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0} 1176 } 1177 1178 func (m *LogCndSpec_Query) Unmarshal(b []byte) error { 1179 return proto.Unmarshal(b, m) 1180 } 1181 1182 func (m *LogCndSpec_Query) Marshal() ([]byte, error) { 1183 return proto.Marshal(m) 1184 } 1185 1186 func (m *LogCndSpec_Query) MarshalJSON() ([]byte, error) { 1187 return protojson.MarshalOptions{}.Marshal(m) 1188 } 1189 1190 func (m *LogCndSpec_Query) UnmarshalJSON(data []byte) error { 1191 return protojson.Unmarshal(data, m) 1192 } 1193 1194 func (m *LogCndSpec_Query) GetFilter() *logging_log.Filter { 1195 if m != nil { 1196 return m.Filter 1197 } 1198 return nil 1199 } 1200 1201 func (m *LogCndSpec_Query) GetTrigger() *LogCndSpec_Query_TriggerCnd { 1202 if m != nil { 1203 return m.Trigger 1204 } 1205 return nil 1206 } 1207 1208 func (m *LogCndSpec_Query) GetMinDuration() *durationpb.Duration { 1209 if m != nil { 1210 return m.MinDuration 1211 } 1212 return nil 1213 } 1214 1215 func (m *LogCndSpec_Query) SetFilter(fv *logging_log.Filter) { 1216 if m == nil { 1217 panic(fmt.Errorf("can't set %s on nil %s", "Filter", "LogCndSpec_Query")) 1218 } 1219 m.Filter = fv 1220 } 1221 1222 func (m *LogCndSpec_Query) SetTrigger(fv *LogCndSpec_Query_TriggerCnd) { 1223 if m == nil { 1224 panic(fmt.Errorf("can't set %s on nil %s", "Trigger", "LogCndSpec_Query")) 1225 } 1226 m.Trigger = fv 1227 } 1228 1229 func (m *LogCndSpec_Query) SetMinDuration(fv *durationpb.Duration) { 1230 if m == nil { 1231 panic(fmt.Errorf("can't set %s on nil %s", "MinDuration", "LogCndSpec_Query")) 1232 } 1233 m.MinDuration = fv 1234 } 1235 1236 // LabelTrigger informs what label Log must have to be considered as a 1237 // violation. 1238 type LogCndSpec_Query_LabelTrigger struct { 1239 state protoimpl.MessageState 1240 sizeCache protoimpl.SizeCache 1241 unknownFields protoimpl.UnknownFields 1242 // Label key 1243 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 1244 // Triggering label values. 1245 Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` 1246 } 1247 1248 func (m *LogCndSpec_Query_LabelTrigger) Reset() { 1249 *m = LogCndSpec_Query_LabelTrigger{} 1250 if protoimpl.UnsafeEnabled { 1251 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[6] 1252 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1253 ms.StoreMessageInfo(mi) 1254 } 1255 } 1256 1257 func (m *LogCndSpec_Query_LabelTrigger) String() string { 1258 return protoimpl.X.MessageStringOf(m) 1259 } 1260 1261 func (*LogCndSpec_Query_LabelTrigger) ProtoMessage() {} 1262 1263 func (m *LogCndSpec_Query_LabelTrigger) ProtoReflect() preflect.Message { 1264 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[6] 1265 if protoimpl.UnsafeEnabled && m != nil { 1266 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1267 if ms.LoadMessageInfo() == nil { 1268 ms.StoreMessageInfo(mi) 1269 } 1270 return ms 1271 } 1272 return mi.MessageOf(m) 1273 } 1274 1275 func (*LogCndSpec_Query_LabelTrigger) GotenMessage() {} 1276 1277 // Deprecated, Use LogCndSpec_Query_LabelTrigger.ProtoReflect.Descriptor instead. 1278 func (*LogCndSpec_Query_LabelTrigger) Descriptor() ([]byte, []int) { 1279 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0, 0} 1280 } 1281 1282 func (m *LogCndSpec_Query_LabelTrigger) Unmarshal(b []byte) error { 1283 return proto.Unmarshal(b, m) 1284 } 1285 1286 func (m *LogCndSpec_Query_LabelTrigger) Marshal() ([]byte, error) { 1287 return proto.Marshal(m) 1288 } 1289 1290 func (m *LogCndSpec_Query_LabelTrigger) MarshalJSON() ([]byte, error) { 1291 return protojson.MarshalOptions{}.Marshal(m) 1292 } 1293 1294 func (m *LogCndSpec_Query_LabelTrigger) UnmarshalJSON(data []byte) error { 1295 return protojson.Unmarshal(data, m) 1296 } 1297 1298 func (m *LogCndSpec_Query_LabelTrigger) GetKey() string { 1299 if m != nil { 1300 return m.Key 1301 } 1302 return "" 1303 } 1304 1305 func (m *LogCndSpec_Query_LabelTrigger) GetValues() []string { 1306 if m != nil { 1307 return m.Values 1308 } 1309 return nil 1310 } 1311 1312 func (m *LogCndSpec_Query_LabelTrigger) SetKey(fv string) { 1313 if m == nil { 1314 panic(fmt.Errorf("can't set %s on nil %s", "Key", "LogCndSpec_Query_LabelTrigger")) 1315 } 1316 m.Key = fv 1317 } 1318 1319 func (m *LogCndSpec_Query_LabelTrigger) SetValues(fv []string) { 1320 if m == nil { 1321 panic(fmt.Errorf("can't set %s on nil %s", "Values", "LogCndSpec_Query_LabelTrigger")) 1322 } 1323 m.Values = fv 1324 } 1325 1326 // StringPayloadTrigger informs what text content of log is 1327 // triggering an alert. 1328 type LogCndSpec_Query_StringPayloadTrigger struct { 1329 state protoimpl.MessageState 1330 sizeCache protoimpl.SizeCache 1331 unknownFields protoimpl.UnknownFields 1332 // Optional selector inside log data field. It should be ignored 1333 // if log entry is just a string or byte array. It can be used if log 1334 // is some JSON object, and we search for specific fields. 1335 ObjectSelector string `protobuf:"bytes,1,opt,name=object_selector,json=objectSelector,proto3" json:"object_selector,omitempty"` 1336 // Regex that log content must satisfy to trigger an alert 1337 Regex string `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"` 1338 } 1339 1340 func (m *LogCndSpec_Query_StringPayloadTrigger) Reset() { 1341 *m = LogCndSpec_Query_StringPayloadTrigger{} 1342 if protoimpl.UnsafeEnabled { 1343 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[7] 1344 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1345 ms.StoreMessageInfo(mi) 1346 } 1347 } 1348 1349 func (m *LogCndSpec_Query_StringPayloadTrigger) String() string { 1350 return protoimpl.X.MessageStringOf(m) 1351 } 1352 1353 func (*LogCndSpec_Query_StringPayloadTrigger) ProtoMessage() {} 1354 1355 func (m *LogCndSpec_Query_StringPayloadTrigger) ProtoReflect() preflect.Message { 1356 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[7] 1357 if protoimpl.UnsafeEnabled && m != nil { 1358 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1359 if ms.LoadMessageInfo() == nil { 1360 ms.StoreMessageInfo(mi) 1361 } 1362 return ms 1363 } 1364 return mi.MessageOf(m) 1365 } 1366 1367 func (*LogCndSpec_Query_StringPayloadTrigger) GotenMessage() {} 1368 1369 // Deprecated, Use LogCndSpec_Query_StringPayloadTrigger.ProtoReflect.Descriptor instead. 1370 func (*LogCndSpec_Query_StringPayloadTrigger) Descriptor() ([]byte, []int) { 1371 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0, 1} 1372 } 1373 1374 func (m *LogCndSpec_Query_StringPayloadTrigger) Unmarshal(b []byte) error { 1375 return proto.Unmarshal(b, m) 1376 } 1377 1378 func (m *LogCndSpec_Query_StringPayloadTrigger) Marshal() ([]byte, error) { 1379 return proto.Marshal(m) 1380 } 1381 1382 func (m *LogCndSpec_Query_StringPayloadTrigger) MarshalJSON() ([]byte, error) { 1383 return protojson.MarshalOptions{}.Marshal(m) 1384 } 1385 1386 func (m *LogCndSpec_Query_StringPayloadTrigger) UnmarshalJSON(data []byte) error { 1387 return protojson.Unmarshal(data, m) 1388 } 1389 1390 func (m *LogCndSpec_Query_StringPayloadTrigger) GetObjectSelector() string { 1391 if m != nil { 1392 return m.ObjectSelector 1393 } 1394 return "" 1395 } 1396 1397 func (m *LogCndSpec_Query_StringPayloadTrigger) GetRegex() string { 1398 if m != nil { 1399 return m.Regex 1400 } 1401 return "" 1402 } 1403 1404 func (m *LogCndSpec_Query_StringPayloadTrigger) SetObjectSelector(fv string) { 1405 if m == nil { 1406 panic(fmt.Errorf("can't set %s on nil %s", "ObjectSelector", "LogCndSpec_Query_StringPayloadTrigger")) 1407 } 1408 m.ObjectSelector = fv 1409 } 1410 1411 func (m *LogCndSpec_Query_StringPayloadTrigger) SetRegex(fv string) { 1412 if m == nil { 1413 panic(fmt.Errorf("can't set %s on nil %s", "Regex", "LogCndSpec_Query_StringPayloadTrigger")) 1414 } 1415 m.Regex = fv 1416 } 1417 1418 // CompositeTrigger collects multiple triggers together. 1419 type LogCndSpec_Query_CompositeTrigger struct { 1420 state protoimpl.MessageState 1421 sizeCache protoimpl.SizeCache 1422 unknownFields protoimpl.UnknownFields 1423 // List of triggers. 1424 Triggers []*LogCndSpec_Query_TriggerCnd `protobuf:"bytes,1,rep,name=triggers,proto3" json:"triggers,omitempty"` 1425 // Operator combining triggers 1426 Operator LogCndSpec_Query_CompositeTrigger_Operator `protobuf:"varint,2,opt,name=operator,proto3,enum=ntt.alerting.v1.LogCndSpec_Query_CompositeTrigger_Operator" json:"operator,omitempty"` 1427 } 1428 1429 func (m *LogCndSpec_Query_CompositeTrigger) Reset() { 1430 *m = LogCndSpec_Query_CompositeTrigger{} 1431 if protoimpl.UnsafeEnabled { 1432 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[8] 1433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1434 ms.StoreMessageInfo(mi) 1435 } 1436 } 1437 1438 func (m *LogCndSpec_Query_CompositeTrigger) String() string { 1439 return protoimpl.X.MessageStringOf(m) 1440 } 1441 1442 func (*LogCndSpec_Query_CompositeTrigger) ProtoMessage() {} 1443 1444 func (m *LogCndSpec_Query_CompositeTrigger) ProtoReflect() preflect.Message { 1445 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[8] 1446 if protoimpl.UnsafeEnabled && m != nil { 1447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1448 if ms.LoadMessageInfo() == nil { 1449 ms.StoreMessageInfo(mi) 1450 } 1451 return ms 1452 } 1453 return mi.MessageOf(m) 1454 } 1455 1456 func (*LogCndSpec_Query_CompositeTrigger) GotenMessage() {} 1457 1458 // Deprecated, Use LogCndSpec_Query_CompositeTrigger.ProtoReflect.Descriptor instead. 1459 func (*LogCndSpec_Query_CompositeTrigger) Descriptor() ([]byte, []int) { 1460 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0, 2} 1461 } 1462 1463 func (m *LogCndSpec_Query_CompositeTrigger) Unmarshal(b []byte) error { 1464 return proto.Unmarshal(b, m) 1465 } 1466 1467 func (m *LogCndSpec_Query_CompositeTrigger) Marshal() ([]byte, error) { 1468 return proto.Marshal(m) 1469 } 1470 1471 func (m *LogCndSpec_Query_CompositeTrigger) MarshalJSON() ([]byte, error) { 1472 return protojson.MarshalOptions{}.Marshal(m) 1473 } 1474 1475 func (m *LogCndSpec_Query_CompositeTrigger) UnmarshalJSON(data []byte) error { 1476 return protojson.Unmarshal(data, m) 1477 } 1478 1479 func (m *LogCndSpec_Query_CompositeTrigger) GetTriggers() []*LogCndSpec_Query_TriggerCnd { 1480 if m != nil { 1481 return m.Triggers 1482 } 1483 return nil 1484 } 1485 1486 func (m *LogCndSpec_Query_CompositeTrigger) GetOperator() LogCndSpec_Query_CompositeTrigger_Operator { 1487 if m != nil { 1488 return m.Operator 1489 } 1490 return LogCndSpec_Query_CompositeTrigger_UNDEFINED 1491 } 1492 1493 func (m *LogCndSpec_Query_CompositeTrigger) SetTriggers(fv []*LogCndSpec_Query_TriggerCnd) { 1494 if m == nil { 1495 panic(fmt.Errorf("can't set %s on nil %s", "Triggers", "LogCndSpec_Query_CompositeTrigger")) 1496 } 1497 m.Triggers = fv 1498 } 1499 1500 func (m *LogCndSpec_Query_CompositeTrigger) SetOperator(fv LogCndSpec_Query_CompositeTrigger_Operator) { 1501 if m == nil { 1502 panic(fmt.Errorf("can't set %s on nil %s", "Operator", "LogCndSpec_Query_CompositeTrigger")) 1503 } 1504 m.Operator = fv 1505 } 1506 1507 // TriggerCnd wraps a trigger deciding when to trigger an alert. 1508 // It inspects each Log individually. 1509 type LogCndSpec_Query_TriggerCnd struct { 1510 state protoimpl.MessageState 1511 sizeCache protoimpl.SizeCache 1512 unknownFields protoimpl.UnknownFields 1513 // Types that are valid to be assigned to Type: 1514 // *LogCndSpec_Query_TriggerCnd_Label 1515 // *LogCndSpec_Query_TriggerCnd_StringContent 1516 // *LogCndSpec_Query_TriggerCnd_Composite 1517 Type isLogCndSpec_Query_TriggerCnd_Type `protobuf_oneof:"type"` 1518 } 1519 1520 func (m *LogCndSpec_Query_TriggerCnd) Reset() { 1521 *m = LogCndSpec_Query_TriggerCnd{} 1522 if protoimpl.UnsafeEnabled { 1523 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[9] 1524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1525 ms.StoreMessageInfo(mi) 1526 } 1527 } 1528 1529 func (m *LogCndSpec_Query_TriggerCnd) String() string { 1530 return protoimpl.X.MessageStringOf(m) 1531 } 1532 1533 func (*LogCndSpec_Query_TriggerCnd) ProtoMessage() {} 1534 1535 func (m *LogCndSpec_Query_TriggerCnd) ProtoReflect() preflect.Message { 1536 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[9] 1537 if protoimpl.UnsafeEnabled && m != nil { 1538 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1539 if ms.LoadMessageInfo() == nil { 1540 ms.StoreMessageInfo(mi) 1541 } 1542 return ms 1543 } 1544 return mi.MessageOf(m) 1545 } 1546 1547 func (*LogCndSpec_Query_TriggerCnd) GotenMessage() {} 1548 1549 // Deprecated, Use LogCndSpec_Query_TriggerCnd.ProtoReflect.Descriptor instead. 1550 func (*LogCndSpec_Query_TriggerCnd) Descriptor() ([]byte, []int) { 1551 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{0, 0, 3} 1552 } 1553 1554 func (m *LogCndSpec_Query_TriggerCnd) Unmarshal(b []byte) error { 1555 return proto.Unmarshal(b, m) 1556 } 1557 1558 func (m *LogCndSpec_Query_TriggerCnd) Marshal() ([]byte, error) { 1559 return proto.Marshal(m) 1560 } 1561 1562 func (m *LogCndSpec_Query_TriggerCnd) MarshalJSON() ([]byte, error) { 1563 return protojson.MarshalOptions{}.Marshal(m) 1564 } 1565 1566 func (m *LogCndSpec_Query_TriggerCnd) UnmarshalJSON(data []byte) error { 1567 return protojson.Unmarshal(data, m) 1568 } 1569 1570 type isLogCndSpec_Query_TriggerCnd_Type interface { 1571 isLogCndSpec_Query_TriggerCnd_Type() 1572 } 1573 1574 type LogCndSpec_Query_TriggerCnd_Label struct { 1575 // Trigger based on label 1576 Label *LogCndSpec_Query_LabelTrigger `protobuf:"bytes,1,opt,name=label,proto3,oneof"` 1577 } 1578 type LogCndSpec_Query_TriggerCnd_StringContent struct { 1579 // Trigger based on log textual content 1580 StringContent *LogCndSpec_Query_StringPayloadTrigger `protobuf:"bytes,2,opt,name=string_content,json=stringContent,proto3,oneof"` 1581 } 1582 type LogCndSpec_Query_TriggerCnd_Composite struct { 1583 // Composite trigger combining multiple smaller ones 1584 Composite *LogCndSpec_Query_CompositeTrigger `protobuf:"bytes,3,opt,name=composite,proto3,oneof"` 1585 } 1586 1587 func (*LogCndSpec_Query_TriggerCnd_Label) isLogCndSpec_Query_TriggerCnd_Type() {} 1588 func (*LogCndSpec_Query_TriggerCnd_StringContent) isLogCndSpec_Query_TriggerCnd_Type() {} 1589 func (*LogCndSpec_Query_TriggerCnd_Composite) isLogCndSpec_Query_TriggerCnd_Type() {} 1590 func (m *LogCndSpec_Query_TriggerCnd) GetType() isLogCndSpec_Query_TriggerCnd_Type { 1591 if m != nil { 1592 return m.Type 1593 } 1594 return nil 1595 } 1596 func (m *LogCndSpec_Query_TriggerCnd) GetLabel() *LogCndSpec_Query_LabelTrigger { 1597 if x, ok := m.GetType().(*LogCndSpec_Query_TriggerCnd_Label); ok { 1598 return x.Label 1599 } 1600 return nil 1601 } 1602 func (m *LogCndSpec_Query_TriggerCnd) GetStringContent() *LogCndSpec_Query_StringPayloadTrigger { 1603 if x, ok := m.GetType().(*LogCndSpec_Query_TriggerCnd_StringContent); ok { 1604 return x.StringContent 1605 } 1606 return nil 1607 } 1608 func (m *LogCndSpec_Query_TriggerCnd) GetComposite() *LogCndSpec_Query_CompositeTrigger { 1609 if x, ok := m.GetType().(*LogCndSpec_Query_TriggerCnd_Composite); ok { 1610 return x.Composite 1611 } 1612 return nil 1613 } 1614 func (m *LogCndSpec_Query_TriggerCnd) SetType(ofv isLogCndSpec_Query_TriggerCnd_Type) { 1615 if m == nil { 1616 panic(fmt.Errorf("can't set %s on nil %s", "isLogCndSpec_Query_TriggerCnd_Type", "LogCndSpec_Query_TriggerCnd")) 1617 } 1618 m.Type = ofv 1619 } 1620 func (m *LogCndSpec_Query_TriggerCnd) SetLabel(fv *LogCndSpec_Query_LabelTrigger) { 1621 m.SetType(&LogCndSpec_Query_TriggerCnd_Label{Label: fv}) 1622 } 1623 func (m *LogCndSpec_Query_TriggerCnd) SetStringContent(fv *LogCndSpec_Query_StringPayloadTrigger) { 1624 m.SetType(&LogCndSpec_Query_TriggerCnd_StringContent{StringContent: fv}) 1625 } 1626 func (m *LogCndSpec_Query_TriggerCnd) SetComposite(fv *LogCndSpec_Query_CompositeTrigger) { 1627 m.SetType(&LogCndSpec_Query_TriggerCnd_Composite{Composite: fv}) 1628 } 1629 1630 // Query defines a single TimeSeries query and basic alerting thresholds. 1631 type TsCndSpec_Query struct { 1632 state protoimpl.MessageState 1633 sizeCache protoimpl.SizeCache 1634 unknownFields protoimpl.UnknownFields 1635 // Query description. 1636 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1637 // Time series query filter 1638 Filter *monitoring_time_serie.Filter `protobuf:"bytes,2,opt,customtype=Filter,name=filter,proto3" json:"filter,omitempty"` 1639 // Aligner applied on individual TimeSeries. 1640 Aligner monitoring_common.Aggregation_Aligner `protobuf:"varint,3,opt,name=aligner,proto3,enum=ntt.monitoring.v4.Aggregation_Aligner" json:"aligner,omitempty"` 1641 // Reducer applied across TimeSeries according to Spec.query_group_by 1642 // field in the Spec. 1643 Reducer monitoring_common.Aggregation_Reducer `protobuf:"varint,4,opt,name=reducer,proto3,enum=ntt.monitoring.v4.Aggregation_Reducer" json:"reducer,omitempty"` 1644 // Maximum value (approximated) that time series values will have for this 1645 // query. It is a soft value: If higher values are detected, 1646 // thresholds/anomaly models will adjust to them. If set to 0, it will be 1647 // auto-detected (heuristic). If time series are negative, max_value 1648 // should indicate maximum value FROM zero: Therefore, it can be a 1649 // negative value. 1650 MaxValue float64 `protobuf:"fixed64,5,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"` 1651 } 1652 1653 func (m *TsCndSpec_Query) Reset() { 1654 *m = TsCndSpec_Query{} 1655 if protoimpl.UnsafeEnabled { 1656 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[10] 1657 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1658 ms.StoreMessageInfo(mi) 1659 } 1660 } 1661 1662 func (m *TsCndSpec_Query) String() string { 1663 return protoimpl.X.MessageStringOf(m) 1664 } 1665 1666 func (*TsCndSpec_Query) ProtoMessage() {} 1667 1668 func (m *TsCndSpec_Query) ProtoReflect() preflect.Message { 1669 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[10] 1670 if protoimpl.UnsafeEnabled && m != nil { 1671 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1672 if ms.LoadMessageInfo() == nil { 1673 ms.StoreMessageInfo(mi) 1674 } 1675 return ms 1676 } 1677 return mi.MessageOf(m) 1678 } 1679 1680 func (*TsCndSpec_Query) GotenMessage() {} 1681 1682 // Deprecated, Use TsCndSpec_Query.ProtoReflect.Descriptor instead. 1683 func (*TsCndSpec_Query) Descriptor() ([]byte, []int) { 1684 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 0} 1685 } 1686 1687 func (m *TsCndSpec_Query) Unmarshal(b []byte) error { 1688 return proto.Unmarshal(b, m) 1689 } 1690 1691 func (m *TsCndSpec_Query) Marshal() ([]byte, error) { 1692 return proto.Marshal(m) 1693 } 1694 1695 func (m *TsCndSpec_Query) MarshalJSON() ([]byte, error) { 1696 return protojson.MarshalOptions{}.Marshal(m) 1697 } 1698 1699 func (m *TsCndSpec_Query) UnmarshalJSON(data []byte) error { 1700 return protojson.Unmarshal(data, m) 1701 } 1702 1703 func (m *TsCndSpec_Query) GetName() string { 1704 if m != nil { 1705 return m.Name 1706 } 1707 return "" 1708 } 1709 1710 func (m *TsCndSpec_Query) GetFilter() *monitoring_time_serie.Filter { 1711 if m != nil { 1712 return m.Filter 1713 } 1714 return nil 1715 } 1716 1717 func (m *TsCndSpec_Query) GetAligner() monitoring_common.Aggregation_Aligner { 1718 if m != nil { 1719 return m.Aligner 1720 } 1721 return monitoring_common.Aggregation_ALIGN_NONE 1722 } 1723 1724 func (m *TsCndSpec_Query) GetReducer() monitoring_common.Aggregation_Reducer { 1725 if m != nil { 1726 return m.Reducer 1727 } 1728 return monitoring_common.Aggregation_REDUCE_NONE 1729 } 1730 1731 func (m *TsCndSpec_Query) GetMaxValue() float64 { 1732 if m != nil { 1733 return m.MaxValue 1734 } 1735 return float64(0) 1736 } 1737 1738 func (m *TsCndSpec_Query) SetName(fv string) { 1739 if m == nil { 1740 panic(fmt.Errorf("can't set %s on nil %s", "Name", "TsCndSpec_Query")) 1741 } 1742 m.Name = fv 1743 } 1744 1745 func (m *TsCndSpec_Query) SetFilter(fv *monitoring_time_serie.Filter) { 1746 if m == nil { 1747 panic(fmt.Errorf("can't set %s on nil %s", "Filter", "TsCndSpec_Query")) 1748 } 1749 m.Filter = fv 1750 } 1751 1752 func (m *TsCndSpec_Query) SetAligner(fv monitoring_common.Aggregation_Aligner) { 1753 if m == nil { 1754 panic(fmt.Errorf("can't set %s on nil %s", "Aligner", "TsCndSpec_Query")) 1755 } 1756 m.Aligner = fv 1757 } 1758 1759 func (m *TsCndSpec_Query) SetReducer(fv monitoring_common.Aggregation_Reducer) { 1760 if m == nil { 1761 panic(fmt.Errorf("can't set %s on nil %s", "Reducer", "TsCndSpec_Query")) 1762 } 1763 m.Reducer = fv 1764 } 1765 1766 func (m *TsCndSpec_Query) SetMaxValue(fv float64) { 1767 if m == nil { 1768 panic(fmt.Errorf("can't set %s on nil %s", "MaxValue", "TsCndSpec_Query")) 1769 } 1770 m.MaxValue = fv 1771 } 1772 1773 // ThresholdAlertingCfg describes when alerts of THRESHOLD type 1774 // must be raised. 1775 type TsCndSpec_ThresholdAlertingCfg struct { 1776 state protoimpl.MessageState 1777 sizeCache protoimpl.SizeCache 1778 unknownFields protoimpl.UnknownFields 1779 // Operator for threshold-type alerts 1780 Operator TsCndSpec_ThresholdAlertingCfg_Operator `protobuf:"varint,1,opt,name=operator,proto3,enum=ntt.alerting.v1.TsCndSpec_ThresholdAlertingCfg_Operator" json:"operator,omitempty"` 1781 // Alignment period for data points used to monitor thresholds. 1782 AlignmentPeriod *durationpb.Duration `protobuf:"bytes,2,opt,name=alignment_period,json=alignmentPeriod,proto3" json:"alignment_period,omitempty"` 1783 // Violation duration after which alert must be raised. 1784 RaiseAfter *durationpb.Duration `protobuf:"bytes,3,opt,name=raise_after,json=raiseAfter,proto3" json:"raise_after,omitempty"` 1785 // Duration after which Alert stops firing when violations no longer 1786 // occur. By default, equals to raise_after. 1787 SilenceAfter *durationpb.Duration `protobuf:"bytes,4,opt,name=silence_after,json=silenceAfter,proto3" json:"silence_after,omitempty"` 1788 // Thresholds per each query (in same order). 1789 PerQueryThresholds []*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds `protobuf:"bytes,5,rep,name=per_query_thresholds,json=perQueryThresholds,proto3" json:"per_query_thresholds,omitempty"` 1790 // This field is recommended to be set if adaptive thresholds are used. 1791 // For each unique group by fields combination, dynamic thresholds will 1792 // be detected based on historic data of specified length. 1793 // One week by default. 1794 AdaptiveThresholdsDetectionPeriod *durationpb.Duration `protobuf:"bytes,6,opt,name=adaptive_thresholds_detection_period,json=adaptiveThresholdsDetectionPeriod,proto3" json:"adaptive_thresholds_detection_period,omitempty"` 1795 } 1796 1797 func (m *TsCndSpec_ThresholdAlertingCfg) Reset() { 1798 *m = TsCndSpec_ThresholdAlertingCfg{} 1799 if protoimpl.UnsafeEnabled { 1800 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[11] 1801 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1802 ms.StoreMessageInfo(mi) 1803 } 1804 } 1805 1806 func (m *TsCndSpec_ThresholdAlertingCfg) String() string { 1807 return protoimpl.X.MessageStringOf(m) 1808 } 1809 1810 func (*TsCndSpec_ThresholdAlertingCfg) ProtoMessage() {} 1811 1812 func (m *TsCndSpec_ThresholdAlertingCfg) ProtoReflect() preflect.Message { 1813 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[11] 1814 if protoimpl.UnsafeEnabled && m != nil { 1815 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1816 if ms.LoadMessageInfo() == nil { 1817 ms.StoreMessageInfo(mi) 1818 } 1819 return ms 1820 } 1821 return mi.MessageOf(m) 1822 } 1823 1824 func (*TsCndSpec_ThresholdAlertingCfg) GotenMessage() {} 1825 1826 // Deprecated, Use TsCndSpec_ThresholdAlertingCfg.ProtoReflect.Descriptor instead. 1827 func (*TsCndSpec_ThresholdAlertingCfg) Descriptor() ([]byte, []int) { 1828 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 1} 1829 } 1830 1831 func (m *TsCndSpec_ThresholdAlertingCfg) Unmarshal(b []byte) error { 1832 return proto.Unmarshal(b, m) 1833 } 1834 1835 func (m *TsCndSpec_ThresholdAlertingCfg) Marshal() ([]byte, error) { 1836 return proto.Marshal(m) 1837 } 1838 1839 func (m *TsCndSpec_ThresholdAlertingCfg) MarshalJSON() ([]byte, error) { 1840 return protojson.MarshalOptions{}.Marshal(m) 1841 } 1842 1843 func (m *TsCndSpec_ThresholdAlertingCfg) UnmarshalJSON(data []byte) error { 1844 return protojson.Unmarshal(data, m) 1845 } 1846 1847 func (m *TsCndSpec_ThresholdAlertingCfg) GetOperator() TsCndSpec_ThresholdAlertingCfg_Operator { 1848 if m != nil { 1849 return m.Operator 1850 } 1851 return TsCndSpec_ThresholdAlertingCfg_UNDEFINED 1852 } 1853 1854 func (m *TsCndSpec_ThresholdAlertingCfg) GetAlignmentPeriod() *durationpb.Duration { 1855 if m != nil { 1856 return m.AlignmentPeriod 1857 } 1858 return nil 1859 } 1860 1861 func (m *TsCndSpec_ThresholdAlertingCfg) GetRaiseAfter() *durationpb.Duration { 1862 if m != nil { 1863 return m.RaiseAfter 1864 } 1865 return nil 1866 } 1867 1868 func (m *TsCndSpec_ThresholdAlertingCfg) GetSilenceAfter() *durationpb.Duration { 1869 if m != nil { 1870 return m.SilenceAfter 1871 } 1872 return nil 1873 } 1874 1875 func (m *TsCndSpec_ThresholdAlertingCfg) GetPerQueryThresholds() []*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds { 1876 if m != nil { 1877 return m.PerQueryThresholds 1878 } 1879 return nil 1880 } 1881 1882 func (m *TsCndSpec_ThresholdAlertingCfg) GetAdaptiveThresholdsDetectionPeriod() *durationpb.Duration { 1883 if m != nil { 1884 return m.AdaptiveThresholdsDetectionPeriod 1885 } 1886 return nil 1887 } 1888 1889 func (m *TsCndSpec_ThresholdAlertingCfg) SetOperator(fv TsCndSpec_ThresholdAlertingCfg_Operator) { 1890 if m == nil { 1891 panic(fmt.Errorf("can't set %s on nil %s", "Operator", "TsCndSpec_ThresholdAlertingCfg")) 1892 } 1893 m.Operator = fv 1894 } 1895 1896 func (m *TsCndSpec_ThresholdAlertingCfg) SetAlignmentPeriod(fv *durationpb.Duration) { 1897 if m == nil { 1898 panic(fmt.Errorf("can't set %s on nil %s", "AlignmentPeriod", "TsCndSpec_ThresholdAlertingCfg")) 1899 } 1900 m.AlignmentPeriod = fv 1901 } 1902 1903 func (m *TsCndSpec_ThresholdAlertingCfg) SetRaiseAfter(fv *durationpb.Duration) { 1904 if m == nil { 1905 panic(fmt.Errorf("can't set %s on nil %s", "RaiseAfter", "TsCndSpec_ThresholdAlertingCfg")) 1906 } 1907 m.RaiseAfter = fv 1908 } 1909 1910 func (m *TsCndSpec_ThresholdAlertingCfg) SetSilenceAfter(fv *durationpb.Duration) { 1911 if m == nil { 1912 panic(fmt.Errorf("can't set %s on nil %s", "SilenceAfter", "TsCndSpec_ThresholdAlertingCfg")) 1913 } 1914 m.SilenceAfter = fv 1915 } 1916 1917 func (m *TsCndSpec_ThresholdAlertingCfg) SetPerQueryThresholds(fv []*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) { 1918 if m == nil { 1919 panic(fmt.Errorf("can't set %s on nil %s", "PerQueryThresholds", "TsCndSpec_ThresholdAlertingCfg")) 1920 } 1921 m.PerQueryThresholds = fv 1922 } 1923 1924 func (m *TsCndSpec_ThresholdAlertingCfg) SetAdaptiveThresholdsDetectionPeriod(fv *durationpb.Duration) { 1925 if m == nil { 1926 panic(fmt.Errorf("can't set %s on nil %s", "AdaptiveThresholdsDetectionPeriod", "TsCndSpec_ThresholdAlertingCfg")) 1927 } 1928 m.AdaptiveThresholdsDetectionPeriod = fv 1929 } 1930 1931 // AnomalyDetector defines AI/ML based anomaly detector. 1932 // It can catch anomalies that are more sophisticated 1933 // than max/min thresholds. 1934 type TsCndSpec_AnomalyAlertingCfg struct { 1935 state protoimpl.MessageState 1936 sizeCache protoimpl.SizeCache 1937 unknownFields protoimpl.UnknownFields 1938 // Sliding analysis window observed at once by AI model. 1939 // For larger windows, it is highly advisable for query_ap 1940 // to be accordingly larger. 1941 AnalysisWindow *durationpb.Duration `protobuf:"bytes,1,opt,name=analysis_window,json=analysisWindow,proto3" json:"analysis_window,omitempty"` 1942 // Duration of each time step in sliding analysis window. 1943 // Anomaly detection is run after each step. 1944 StepInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=step_interval,json=stepInterval,proto3" json:"step_interval,omitempty"` 1945 // It is like step interval, but special used for training only. 1946 // For example, we may want to run anomaly detection of size 30 minutes 1947 // each 5 minutes. But in training, to reduce number of batches, we may 1948 // prefer larger value, like 15 minutes or maybe even 30. 1949 TrainStepInterval *durationpb.Duration `protobuf:"bytes,7,opt,name=train_step_interval,json=trainStepInterval,proto3" json:"train_step_interval,omitempty"` 1950 // Granularity of data points within each step. 1951 AlignmentPeriod *durationpb.Duration `protobuf:"bytes,3,opt,name=alignment_period,json=alignmentPeriod,proto3" json:"alignment_period,omitempty"` 1952 RaiseAfter *durationpb.Duration `protobuf:"bytes,5,opt,name=raise_after,json=raiseAfter,proto3" json:"raise_after,omitempty"` 1953 SilenceAfter *durationpb.Duration `protobuf:"bytes,6,opt,name=silence_after,json=silenceAfter,proto3" json:"silence_after,omitempty"` 1954 // Types that are valid to be assigned to Model: 1955 // *TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder 1956 Model isTsCndSpec_AnomalyAlertingCfg_Model `protobuf_oneof:"model"` 1957 } 1958 1959 func (m *TsCndSpec_AnomalyAlertingCfg) Reset() { 1960 *m = TsCndSpec_AnomalyAlertingCfg{} 1961 if protoimpl.UnsafeEnabled { 1962 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[12] 1963 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1964 ms.StoreMessageInfo(mi) 1965 } 1966 } 1967 1968 func (m *TsCndSpec_AnomalyAlertingCfg) String() string { 1969 return protoimpl.X.MessageStringOf(m) 1970 } 1971 1972 func (*TsCndSpec_AnomalyAlertingCfg) ProtoMessage() {} 1973 1974 func (m *TsCndSpec_AnomalyAlertingCfg) ProtoReflect() preflect.Message { 1975 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[12] 1976 if protoimpl.UnsafeEnabled && m != nil { 1977 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 1978 if ms.LoadMessageInfo() == nil { 1979 ms.StoreMessageInfo(mi) 1980 } 1981 return ms 1982 } 1983 return mi.MessageOf(m) 1984 } 1985 1986 func (*TsCndSpec_AnomalyAlertingCfg) GotenMessage() {} 1987 1988 // Deprecated, Use TsCndSpec_AnomalyAlertingCfg.ProtoReflect.Descriptor instead. 1989 func (*TsCndSpec_AnomalyAlertingCfg) Descriptor() ([]byte, []int) { 1990 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 2} 1991 } 1992 1993 func (m *TsCndSpec_AnomalyAlertingCfg) Unmarshal(b []byte) error { 1994 return proto.Unmarshal(b, m) 1995 } 1996 1997 func (m *TsCndSpec_AnomalyAlertingCfg) Marshal() ([]byte, error) { 1998 return proto.Marshal(m) 1999 } 2000 2001 func (m *TsCndSpec_AnomalyAlertingCfg) MarshalJSON() ([]byte, error) { 2002 return protojson.MarshalOptions{}.Marshal(m) 2003 } 2004 2005 func (m *TsCndSpec_AnomalyAlertingCfg) UnmarshalJSON(data []byte) error { 2006 return protojson.Unmarshal(data, m) 2007 } 2008 2009 type isTsCndSpec_AnomalyAlertingCfg_Model interface { 2010 isTsCndSpec_AnomalyAlertingCfg_Model() 2011 } 2012 2013 type TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder struct { 2014 LstmAutoencoder *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder `protobuf:"bytes,4,opt,name=lstm_autoencoder,json=lstmAutoencoder,proto3,oneof"` 2015 } 2016 2017 func (*TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder) isTsCndSpec_AnomalyAlertingCfg_Model() {} 2018 func (m *TsCndSpec_AnomalyAlertingCfg) GetAnalysisWindow() *durationpb.Duration { 2019 if m != nil { 2020 return m.AnalysisWindow 2021 } 2022 return nil 2023 } 2024 2025 func (m *TsCndSpec_AnomalyAlertingCfg) GetStepInterval() *durationpb.Duration { 2026 if m != nil { 2027 return m.StepInterval 2028 } 2029 return nil 2030 } 2031 2032 func (m *TsCndSpec_AnomalyAlertingCfg) GetTrainStepInterval() *durationpb.Duration { 2033 if m != nil { 2034 return m.TrainStepInterval 2035 } 2036 return nil 2037 } 2038 2039 func (m *TsCndSpec_AnomalyAlertingCfg) GetAlignmentPeriod() *durationpb.Duration { 2040 if m != nil { 2041 return m.AlignmentPeriod 2042 } 2043 return nil 2044 } 2045 2046 func (m *TsCndSpec_AnomalyAlertingCfg) GetRaiseAfter() *durationpb.Duration { 2047 if m != nil { 2048 return m.RaiseAfter 2049 } 2050 return nil 2051 } 2052 2053 func (m *TsCndSpec_AnomalyAlertingCfg) GetSilenceAfter() *durationpb.Duration { 2054 if m != nil { 2055 return m.SilenceAfter 2056 } 2057 return nil 2058 } 2059 2060 func (m *TsCndSpec_AnomalyAlertingCfg) GetModel() isTsCndSpec_AnomalyAlertingCfg_Model { 2061 if m != nil { 2062 return m.Model 2063 } 2064 return nil 2065 } 2066 func (m *TsCndSpec_AnomalyAlertingCfg) GetLstmAutoencoder() *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder { 2067 if x, ok := m.GetModel().(*TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder); ok { 2068 return x.LstmAutoencoder 2069 } 2070 return nil 2071 } 2072 func (m *TsCndSpec_AnomalyAlertingCfg) SetAnalysisWindow(fv *durationpb.Duration) { 2073 if m == nil { 2074 panic(fmt.Errorf("can't set %s on nil %s", "AnalysisWindow", "TsCndSpec_AnomalyAlertingCfg")) 2075 } 2076 m.AnalysisWindow = fv 2077 } 2078 2079 func (m *TsCndSpec_AnomalyAlertingCfg) SetStepInterval(fv *durationpb.Duration) { 2080 if m == nil { 2081 panic(fmt.Errorf("can't set %s on nil %s", "StepInterval", "TsCndSpec_AnomalyAlertingCfg")) 2082 } 2083 m.StepInterval = fv 2084 } 2085 2086 func (m *TsCndSpec_AnomalyAlertingCfg) SetTrainStepInterval(fv *durationpb.Duration) { 2087 if m == nil { 2088 panic(fmt.Errorf("can't set %s on nil %s", "TrainStepInterval", "TsCndSpec_AnomalyAlertingCfg")) 2089 } 2090 m.TrainStepInterval = fv 2091 } 2092 2093 func (m *TsCndSpec_AnomalyAlertingCfg) SetAlignmentPeriod(fv *durationpb.Duration) { 2094 if m == nil { 2095 panic(fmt.Errorf("can't set %s on nil %s", "AlignmentPeriod", "TsCndSpec_AnomalyAlertingCfg")) 2096 } 2097 m.AlignmentPeriod = fv 2098 } 2099 2100 func (m *TsCndSpec_AnomalyAlertingCfg) SetRaiseAfter(fv *durationpb.Duration) { 2101 if m == nil { 2102 panic(fmt.Errorf("can't set %s on nil %s", "RaiseAfter", "TsCndSpec_AnomalyAlertingCfg")) 2103 } 2104 m.RaiseAfter = fv 2105 } 2106 2107 func (m *TsCndSpec_AnomalyAlertingCfg) SetSilenceAfter(fv *durationpb.Duration) { 2108 if m == nil { 2109 panic(fmt.Errorf("can't set %s on nil %s", "SilenceAfter", "TsCndSpec_AnomalyAlertingCfg")) 2110 } 2111 m.SilenceAfter = fv 2112 } 2113 2114 func (m *TsCndSpec_AnomalyAlertingCfg) SetModel(ofv isTsCndSpec_AnomalyAlertingCfg_Model) { 2115 if m == nil { 2116 panic(fmt.Errorf("can't set %s on nil %s", "isTsCndSpec_AnomalyAlertingCfg_Model", "TsCndSpec_AnomalyAlertingCfg")) 2117 } 2118 m.Model = ofv 2119 } 2120 func (m *TsCndSpec_AnomalyAlertingCfg) SetLstmAutoencoder(fv *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) { 2121 m.SetModel(&TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder{LstmAutoencoder: fv}) 2122 } 2123 2124 // AlertingThresholds represents all thresholds. 2125 // When they are crossed by time series values, alert will be raised. 2126 // Max thresholds are active all the time. 2127 // Adaptive thresholds are active when anomaly detectors 2128 // are not available (not defined or in training). 2129 // It is also possible to set minimal lower/upper thresholds, 2130 // to avoid adaptive thresholds being to insensitive. 2131 // Overall, alert is raised when value drops below 2132 // lower threshold or above upper threshold. Working 2133 // allowed range is between. 2134 // Values must always satisfy condition: 2135 // Upper max > Upper min > Lower min > Lower max 2136 type TsCndSpec_ThresholdAlertingCfg_AlertingThresholds struct { 2137 state protoimpl.MessageState 2138 sizeCache protoimpl.SizeCache 2139 unknownFields protoimpl.UnknownFields 2140 // Whether upper threshold should be set and adaptive. 2141 AutoAdaptUpper bool `protobuf:"varint,1,opt,name=auto_adapt_upper,json=autoAdaptUpper,proto3" json:"auto_adapt_upper,omitempty"` 2142 // Whether lower threshold should be set and adaptive. 2143 AutoAdaptLower bool `protobuf:"varint,2,opt,name=auto_adapt_lower,json=autoAdaptLower,proto3" json:"auto_adapt_lower,omitempty"` 2144 // Maximum allowed upper threshold. When crossed ABOVE, 2145 // alert is raised. Can be set to nil, but in that 2146 // case max_lower is mandatory. 2147 // Adaptive upper threshold cannot be set below it. 2148 MaxUpper *AlertingThreshold `protobuf:"bytes,3,opt,name=max_upper,json=maxUpper,proto3" json:"max_upper,omitempty"` 2149 // Maximum allowed lower threshold. When crossed BELOW, 2150 // alert is raised. Can be set to nil, but in that 2151 // case max_upper is mandatory. 2152 // Adaptive lower threshold cannot be set below it. 2153 MaxLower *AlertingThreshold `protobuf:"bytes,4,opt,name=max_lower,json=maxLower,proto3" json:"max_lower,omitempty"` 2154 // Minimal allowed adaptive upper threshold. 2155 // It is applicable only if auto_adapt_upper is true. 2156 // Adaptive upper threshold cannot be set below it. 2157 // It must be smaller than max_upper. 2158 MinUpper *AlertingThreshold `protobuf:"bytes,5,opt,name=min_upper,json=minUpper,proto3" json:"min_upper,omitempty"` 2159 // Minimal allowed adaptive lower threshold. 2160 // It is applicable only if auto_adapt_lower is true. 2161 // Adaptive lower threshold cannot be set above it. 2162 // It must be bigger than max_lower. 2163 MinLower *AlertingThreshold `protobuf:"bytes,6,opt,name=min_lower,json=minLower,proto3" json:"min_lower,omitempty"` 2164 } 2165 2166 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) Reset() { 2167 *m = TsCndSpec_ThresholdAlertingCfg_AlertingThresholds{} 2168 if protoimpl.UnsafeEnabled { 2169 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[13] 2170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2171 ms.StoreMessageInfo(mi) 2172 } 2173 } 2174 2175 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) String() string { 2176 return protoimpl.X.MessageStringOf(m) 2177 } 2178 2179 func (*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) ProtoMessage() {} 2180 2181 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) ProtoReflect() preflect.Message { 2182 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[13] 2183 if protoimpl.UnsafeEnabled && m != nil { 2184 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2185 if ms.LoadMessageInfo() == nil { 2186 ms.StoreMessageInfo(mi) 2187 } 2188 return ms 2189 } 2190 return mi.MessageOf(m) 2191 } 2192 2193 func (*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GotenMessage() {} 2194 2195 // Deprecated, Use TsCndSpec_ThresholdAlertingCfg_AlertingThresholds.ProtoReflect.Descriptor instead. 2196 func (*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) Descriptor() ([]byte, []int) { 2197 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 1, 0} 2198 } 2199 2200 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) Unmarshal(b []byte) error { 2201 return proto.Unmarshal(b, m) 2202 } 2203 2204 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) Marshal() ([]byte, error) { 2205 return proto.Marshal(m) 2206 } 2207 2208 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) MarshalJSON() ([]byte, error) { 2209 return protojson.MarshalOptions{}.Marshal(m) 2210 } 2211 2212 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) UnmarshalJSON(data []byte) error { 2213 return protojson.Unmarshal(data, m) 2214 } 2215 2216 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetAutoAdaptUpper() bool { 2217 if m != nil { 2218 return m.AutoAdaptUpper 2219 } 2220 return false 2221 } 2222 2223 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetAutoAdaptLower() bool { 2224 if m != nil { 2225 return m.AutoAdaptLower 2226 } 2227 return false 2228 } 2229 2230 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetMaxUpper() *AlertingThreshold { 2231 if m != nil { 2232 return m.MaxUpper 2233 } 2234 return nil 2235 } 2236 2237 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetMaxLower() *AlertingThreshold { 2238 if m != nil { 2239 return m.MaxLower 2240 } 2241 return nil 2242 } 2243 2244 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetMinUpper() *AlertingThreshold { 2245 if m != nil { 2246 return m.MinUpper 2247 } 2248 return nil 2249 } 2250 2251 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) GetMinLower() *AlertingThreshold { 2252 if m != nil { 2253 return m.MinLower 2254 } 2255 return nil 2256 } 2257 2258 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetAutoAdaptUpper(fv bool) { 2259 if m == nil { 2260 panic(fmt.Errorf("can't set %s on nil %s", "AutoAdaptUpper", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2261 } 2262 m.AutoAdaptUpper = fv 2263 } 2264 2265 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetAutoAdaptLower(fv bool) { 2266 if m == nil { 2267 panic(fmt.Errorf("can't set %s on nil %s", "AutoAdaptLower", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2268 } 2269 m.AutoAdaptLower = fv 2270 } 2271 2272 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetMaxUpper(fv *AlertingThreshold) { 2273 if m == nil { 2274 panic(fmt.Errorf("can't set %s on nil %s", "MaxUpper", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2275 } 2276 m.MaxUpper = fv 2277 } 2278 2279 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetMaxLower(fv *AlertingThreshold) { 2280 if m == nil { 2281 panic(fmt.Errorf("can't set %s on nil %s", "MaxLower", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2282 } 2283 m.MaxLower = fv 2284 } 2285 2286 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetMinUpper(fv *AlertingThreshold) { 2287 if m == nil { 2288 panic(fmt.Errorf("can't set %s on nil %s", "MinUpper", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2289 } 2290 m.MinUpper = fv 2291 } 2292 2293 func (m *TsCndSpec_ThresholdAlertingCfg_AlertingThresholds) SetMinLower(fv *AlertingThreshold) { 2294 if m == nil { 2295 panic(fmt.Errorf("can't set %s on nil %s", "MinLower", "TsCndSpec_ThresholdAlertingCfg_AlertingThresholds")) 2296 } 2297 m.MinLower = fv 2298 } 2299 2300 // LstmAutoEncoder defines LSTM AutoEncoder model for anomaly detection. 2301 type TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder struct { 2302 state protoimpl.MessageState 2303 sizeCache protoimpl.SizeCache 2304 unknownFields protoimpl.UnknownFields 2305 // Hidden size. Larger increases model size. 2306 HiddenSize int32 `protobuf:"varint,1,opt,name=hidden_size,json=hiddenSize,proto3" json:"hidden_size,omitempty"` 2307 // Learn rate used in Adam optimizer. 2308 // This is suggested value. System may iterate other well known 2309 // working values for best detection. 2310 LearnRate float64 `protobuf:"fixed64,2,opt,name=learn_rate,json=learnRate,proto3" json:"learn_rate,omitempty"` 2311 // Maximum number of epochs after which training must stop. 2312 MaxTrainingEpochs int32 `protobuf:"varint,3,opt,name=max_training_epochs,json=maxTrainingEpochs,proto3" json:"max_training_epochs,omitempty"` 2313 // Minimum number of training epochs model must train. 2314 MinTrainingEpochs int32 `protobuf:"varint,4,opt,name=min_training_epochs,json=minTrainingEpochs,proto3" json:"min_training_epochs,omitempty"` 2315 // Minimum acceptable error after training stops. 2316 // When it is achieved, check samples are used to determine 2317 // actual error rates. 2318 // Too large value may cause overfit. 2319 // This is suggested value. System may find other values 2320 // giving better results. 2321 AcceptableTrainingError float64 `protobuf:"fixed64,5,opt,name=acceptable_training_error,json=acceptableTrainingError,proto3" json:"acceptable_training_error,omitempty"` 2322 // How much time must be obtained for training purposes. 2323 TrainingPeriod *durationpb.Duration `protobuf:"bytes,6,opt,name=training_period,json=trainingPeriod,proto3" json:"training_period,omitempty"` 2324 // Training period, analysis window and training step interval 2325 // directly influence how many training samples are created. 2326 // Fraction is then used for detecting practical anomalies 2327 // and initializing anomaly thresholds. 2328 CheckPeriodFraction float64 `protobuf:"fixed64,7,opt,name=check_period_fraction,json=checkPeriodFraction,proto3" json:"check_period_fraction,omitempty"` 2329 // Enables teacher force mode during inference. 2330 // It greatly reduces false positives, but may 2331 // silence some actual small anomalies. 2332 // It is especially important when time series data 2333 // can change behavior persistently. For example, new 2334 // workload was added to CPU. 2335 TeacherForceAtInference bool `protobuf:"varint,8,opt,name=teacher_force_at_inference,json=teacherForceAtInference,proto3" json:"teacher_force_at_inference,omitempty"` 2336 } 2337 2338 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) Reset() { 2339 *m = TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder{} 2340 if protoimpl.UnsafeEnabled { 2341 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[14] 2342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2343 ms.StoreMessageInfo(mi) 2344 } 2345 } 2346 2347 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) String() string { 2348 return protoimpl.X.MessageStringOf(m) 2349 } 2350 2351 func (*TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) ProtoMessage() {} 2352 2353 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) ProtoReflect() preflect.Message { 2354 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[14] 2355 if protoimpl.UnsafeEnabled && m != nil { 2356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2357 if ms.LoadMessageInfo() == nil { 2358 ms.StoreMessageInfo(mi) 2359 } 2360 return ms 2361 } 2362 return mi.MessageOf(m) 2363 } 2364 2365 func (*TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GotenMessage() {} 2366 2367 // Deprecated, Use TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder.ProtoReflect.Descriptor instead. 2368 func (*TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) Descriptor() ([]byte, []int) { 2369 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{1, 2, 0} 2370 } 2371 2372 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) Unmarshal(b []byte) error { 2373 return proto.Unmarshal(b, m) 2374 } 2375 2376 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) Marshal() ([]byte, error) { 2377 return proto.Marshal(m) 2378 } 2379 2380 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) MarshalJSON() ([]byte, error) { 2381 return protojson.MarshalOptions{}.Marshal(m) 2382 } 2383 2384 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) UnmarshalJSON(data []byte) error { 2385 return protojson.Unmarshal(data, m) 2386 } 2387 2388 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetHiddenSize() int32 { 2389 if m != nil { 2390 return m.HiddenSize 2391 } 2392 return int32(0) 2393 } 2394 2395 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetLearnRate() float64 { 2396 if m != nil { 2397 return m.LearnRate 2398 } 2399 return float64(0) 2400 } 2401 2402 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetMaxTrainingEpochs() int32 { 2403 if m != nil { 2404 return m.MaxTrainingEpochs 2405 } 2406 return int32(0) 2407 } 2408 2409 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetMinTrainingEpochs() int32 { 2410 if m != nil { 2411 return m.MinTrainingEpochs 2412 } 2413 return int32(0) 2414 } 2415 2416 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetAcceptableTrainingError() float64 { 2417 if m != nil { 2418 return m.AcceptableTrainingError 2419 } 2420 return float64(0) 2421 } 2422 2423 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetTrainingPeriod() *durationpb.Duration { 2424 if m != nil { 2425 return m.TrainingPeriod 2426 } 2427 return nil 2428 } 2429 2430 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetCheckPeriodFraction() float64 { 2431 if m != nil { 2432 return m.CheckPeriodFraction 2433 } 2434 return float64(0) 2435 } 2436 2437 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) GetTeacherForceAtInference() bool { 2438 if m != nil { 2439 return m.TeacherForceAtInference 2440 } 2441 return false 2442 } 2443 2444 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetHiddenSize(fv int32) { 2445 if m == nil { 2446 panic(fmt.Errorf("can't set %s on nil %s", "HiddenSize", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2447 } 2448 m.HiddenSize = fv 2449 } 2450 2451 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetLearnRate(fv float64) { 2452 if m == nil { 2453 panic(fmt.Errorf("can't set %s on nil %s", "LearnRate", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2454 } 2455 m.LearnRate = fv 2456 } 2457 2458 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetMaxTrainingEpochs(fv int32) { 2459 if m == nil { 2460 panic(fmt.Errorf("can't set %s on nil %s", "MaxTrainingEpochs", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2461 } 2462 m.MaxTrainingEpochs = fv 2463 } 2464 2465 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetMinTrainingEpochs(fv int32) { 2466 if m == nil { 2467 panic(fmt.Errorf("can't set %s on nil %s", "MinTrainingEpochs", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2468 } 2469 m.MinTrainingEpochs = fv 2470 } 2471 2472 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetAcceptableTrainingError(fv float64) { 2473 if m == nil { 2474 panic(fmt.Errorf("can't set %s on nil %s", "AcceptableTrainingError", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2475 } 2476 m.AcceptableTrainingError = fv 2477 } 2478 2479 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetTrainingPeriod(fv *durationpb.Duration) { 2480 if m == nil { 2481 panic(fmt.Errorf("can't set %s on nil %s", "TrainingPeriod", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2482 } 2483 m.TrainingPeriod = fv 2484 } 2485 2486 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetCheckPeriodFraction(fv float64) { 2487 if m == nil { 2488 panic(fmt.Errorf("can't set %s on nil %s", "CheckPeriodFraction", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2489 } 2490 m.CheckPeriodFraction = fv 2491 } 2492 2493 func (m *TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder) SetTeacherForceAtInference(fv bool) { 2494 if m == nil { 2495 panic(fmt.Errorf("can't set %s on nil %s", "TeacherForceAtInference", "TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder")) 2496 } 2497 m.TeacherForceAtInference = fv 2498 } 2499 2500 // ResourceIdentity informs which MAIN resource type is generating 2501 // time series/logs on which conditions are built. For core EdgeLQ, 2502 // ResourceIdentity must point always to devices.edgelq.com/Device 2503 // resource, even if we are creating policy for 2504 // applications.edgelq.com/Pod conditions. 2505 // 3rd party services can pick something else. 2506 // In EdgeLQ, it will be necessary to create separate Policy 2507 // objects, if one is for Device conditions, and other for Pod 2508 // conditions. Both will point to devices.edgelq.com/Device as 2509 // main resource identity, both will have to specify device_id 2510 // LabelInfo. Second one will have to specify pod_id LabelInfo. 2511 type PolicySpec_ResourceIdentity struct { 2512 state protoimpl.MessageState 2513 sizeCache protoimpl.SizeCache 2514 unknownFields protoimpl.UnknownFields 2515 // Reference to primary alerting resource kind. 2516 // For EdgeLQ, it is services/devices.edgelq.com/resources/Device 2517 // resource. Pods belong to device, so everything is device scoped. 3rd 2518 // party services can provide different resource type. 2519 AlertingResource *meta_resource.Reference `protobuf:"bytes,1,opt,customtype=Reference,name=alerting_resource,json=alertingResource,proto3" json:"alerting_resource,omitempty"` 2520 // All interesting labels that can be found in ALL Log/Ts Conditions 2521 // group by fields within Policy. 2522 // It is necessary to provide labels to at least satisfy name pattern 2523 // of main alerting_resource. It is optional to provide more labels, 2524 // in order to identify auxiliary resources. 2525 // By default, there are 2 built-in LabelInfo objects: 2526 // * key: "project_id", points to project name segment. It is mapped 2527 // to project of TimeSeries or Log object 2528 // * key: "region_id", points to region name segment. It is mapped 2529 // to region of TimeSeries or Log object. 2530 Labels []*PolicySpec_ResourceIdentity_LabelInfo `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"` 2531 // List of name patterns of main alerting resource kind. 2532 // Note that all name segments (divided by each even "/" character) 2533 // must be satisfied within labels.mapped_name_segment fields, 2534 // with exception of "project" and "region", which are built-in. 2535 // TODO: As of now, only one pattern. However, it should be possible to 2536 // deduce name patterns from meta.goten.com service, so they are not 2537 // provided here at all. 2538 // Name pattern must conform to standard goten style name pattern. For 2539 // example, name pattern of devices.edgelq.com/Device is 2540 // "projects/{project}/regions/{region}/devices/{device}". 2541 NamePatterns []string `protobuf:"bytes,3,rep,name=name_patterns,json=namePatterns,proto3" json:"name_patterns,omitempty"` 2542 } 2543 2544 func (m *PolicySpec_ResourceIdentity) Reset() { 2545 *m = PolicySpec_ResourceIdentity{} 2546 if protoimpl.UnsafeEnabled { 2547 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[15] 2548 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2549 ms.StoreMessageInfo(mi) 2550 } 2551 } 2552 2553 func (m *PolicySpec_ResourceIdentity) String() string { 2554 return protoimpl.X.MessageStringOf(m) 2555 } 2556 2557 func (*PolicySpec_ResourceIdentity) ProtoMessage() {} 2558 2559 func (m *PolicySpec_ResourceIdentity) ProtoReflect() preflect.Message { 2560 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[15] 2561 if protoimpl.UnsafeEnabled && m != nil { 2562 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2563 if ms.LoadMessageInfo() == nil { 2564 ms.StoreMessageInfo(mi) 2565 } 2566 return ms 2567 } 2568 return mi.MessageOf(m) 2569 } 2570 2571 func (*PolicySpec_ResourceIdentity) GotenMessage() {} 2572 2573 // Deprecated, Use PolicySpec_ResourceIdentity.ProtoReflect.Descriptor instead. 2574 func (*PolicySpec_ResourceIdentity) Descriptor() ([]byte, []int) { 2575 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 0} 2576 } 2577 2578 func (m *PolicySpec_ResourceIdentity) Unmarshal(b []byte) error { 2579 return proto.Unmarshal(b, m) 2580 } 2581 2582 func (m *PolicySpec_ResourceIdentity) Marshal() ([]byte, error) { 2583 return proto.Marshal(m) 2584 } 2585 2586 func (m *PolicySpec_ResourceIdentity) MarshalJSON() ([]byte, error) { 2587 return protojson.MarshalOptions{}.Marshal(m) 2588 } 2589 2590 func (m *PolicySpec_ResourceIdentity) UnmarshalJSON(data []byte) error { 2591 return protojson.Unmarshal(data, m) 2592 } 2593 2594 func (m *PolicySpec_ResourceIdentity) GetAlertingResource() *meta_resource.Reference { 2595 if m != nil { 2596 return m.AlertingResource 2597 } 2598 return nil 2599 } 2600 2601 func (m *PolicySpec_ResourceIdentity) GetLabels() []*PolicySpec_ResourceIdentity_LabelInfo { 2602 if m != nil { 2603 return m.Labels 2604 } 2605 return nil 2606 } 2607 2608 func (m *PolicySpec_ResourceIdentity) GetNamePatterns() []string { 2609 if m != nil { 2610 return m.NamePatterns 2611 } 2612 return nil 2613 } 2614 2615 func (m *PolicySpec_ResourceIdentity) SetAlertingResource(fv *meta_resource.Reference) { 2616 if m == nil { 2617 panic(fmt.Errorf("can't set %s on nil %s", "AlertingResource", "PolicySpec_ResourceIdentity")) 2618 } 2619 m.AlertingResource = fv 2620 } 2621 2622 func (m *PolicySpec_ResourceIdentity) SetLabels(fv []*PolicySpec_ResourceIdentity_LabelInfo) { 2623 if m == nil { 2624 panic(fmt.Errorf("can't set %s on nil %s", "Labels", "PolicySpec_ResourceIdentity")) 2625 } 2626 m.Labels = fv 2627 } 2628 2629 func (m *PolicySpec_ResourceIdentity) SetNamePatterns(fv []string) { 2630 if m == nil { 2631 panic(fmt.Errorf("can't set %s on nil %s", "NamePatterns", "PolicySpec_ResourceIdentity")) 2632 } 2633 m.NamePatterns = fv 2634 } 2635 2636 // SupportingAlertQuery specifies a common supporting troubleshooting query 2637 // that can be used to investigate any Alert within current Policy. 2638 // This is especially important for alerts handling by AI agent. Outputs 2639 // from these queries can be used by AI agents. 2640 // 2641 // Important: Many query spec string fields have _template suffix. It means 2642 // that their values may contain variable values that are replaced for each 2643 // specific Alert instance. Those variables have a format: <$LABEL_KEY>, 2644 // where $LABEL_KEY must be one of the label keys specified in 2645 // resource_identity field. For example, if we can have a Policy like this: 2646 // { 2647 // "resourceIdentity": { 2648 // "alertingResource": "services/devices.edgelq.com/resources/Device", 2649 // "labels": [ 2650 // { 2651 // "key": "device_id", 2652 // "contexts": [RESOURCE_LABEL, LOG_LABEL], 2653 // "mappedNameSegment": "device" 2654 // } 2655 // ], 2656 // "namePatterns": 2657 // ["projects/{project}/regions/{region}/devices/{device}"] 2658 // }, 2659 // "supportingQueries": [ 2660 // { 2661 // "tsQuery": { 2662 // "description": "..." 2663 // "filterTemplate": 2664 // "metric.type=\"devices.edgelq.com/Device/connected\" 2665 // AND resource.labels.device_id=\"<device_id>\"" 2666 // "aggregation": {...} 2667 // } 2668 // } 2669 // ] 2670 // } 2671 // In above example, we define one LabelInfo with device_id field. 2672 // Therefore, alerting service will find and replace each substring 2673 // <device_id> with specific value from Alert resource. If we have Alert 2674 // with label device_id = "test-x", Alerting service will execute TimeSeries 2675 // query with filter metric.type=\"devices.edgelq.com/Device/connected\" AND 2676 // resource.labels.device_id=\"test-x\"" 2677 // Note that values <project_id> and <region_id> are always built-in, and 2678 // will expand to project/region indicated by Alert. 2679 type PolicySpec_SupportingAlertQuery struct { 2680 state protoimpl.MessageState 2681 sizeCache protoimpl.SizeCache 2682 unknownFields protoimpl.UnknownFields 2683 // Types that are valid to be assigned to Query: 2684 // *PolicySpec_SupportingAlertQuery_TsQuery_ 2685 // *PolicySpec_SupportingAlertQuery_LogQuery_ 2686 // *PolicySpec_SupportingAlertQuery_RestGetQuery_ 2687 // *PolicySpec_SupportingAlertQuery_RestListQuery_ 2688 Query isPolicySpec_SupportingAlertQuery_Query `protobuf_oneof:"query"` 2689 } 2690 2691 func (m *PolicySpec_SupportingAlertQuery) Reset() { 2692 *m = PolicySpec_SupportingAlertQuery{} 2693 if protoimpl.UnsafeEnabled { 2694 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[16] 2695 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2696 ms.StoreMessageInfo(mi) 2697 } 2698 } 2699 2700 func (m *PolicySpec_SupportingAlertQuery) String() string { 2701 return protoimpl.X.MessageStringOf(m) 2702 } 2703 2704 func (*PolicySpec_SupportingAlertQuery) ProtoMessage() {} 2705 2706 func (m *PolicySpec_SupportingAlertQuery) ProtoReflect() preflect.Message { 2707 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[16] 2708 if protoimpl.UnsafeEnabled && m != nil { 2709 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2710 if ms.LoadMessageInfo() == nil { 2711 ms.StoreMessageInfo(mi) 2712 } 2713 return ms 2714 } 2715 return mi.MessageOf(m) 2716 } 2717 2718 func (*PolicySpec_SupportingAlertQuery) GotenMessage() {} 2719 2720 // Deprecated, Use PolicySpec_SupportingAlertQuery.ProtoReflect.Descriptor instead. 2721 func (*PolicySpec_SupportingAlertQuery) Descriptor() ([]byte, []int) { 2722 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 1} 2723 } 2724 2725 func (m *PolicySpec_SupportingAlertQuery) Unmarshal(b []byte) error { 2726 return proto.Unmarshal(b, m) 2727 } 2728 2729 func (m *PolicySpec_SupportingAlertQuery) Marshal() ([]byte, error) { 2730 return proto.Marshal(m) 2731 } 2732 2733 func (m *PolicySpec_SupportingAlertQuery) MarshalJSON() ([]byte, error) { 2734 return protojson.MarshalOptions{}.Marshal(m) 2735 } 2736 2737 func (m *PolicySpec_SupportingAlertQuery) UnmarshalJSON(data []byte) error { 2738 return protojson.Unmarshal(data, m) 2739 } 2740 2741 type isPolicySpec_SupportingAlertQuery_Query interface { 2742 isPolicySpec_SupportingAlertQuery_Query() 2743 } 2744 2745 type PolicySpec_SupportingAlertQuery_TsQuery_ struct { 2746 // Time Series query 2747 TsQuery *PolicySpec_SupportingAlertQuery_TsQuery `protobuf:"bytes,1,opt,name=ts_query,json=tsQuery,proto3,oneof"` 2748 } 2749 type PolicySpec_SupportingAlertQuery_LogQuery_ struct { 2750 // Log query 2751 LogQuery *PolicySpec_SupportingAlertQuery_LogQuery `protobuf:"bytes,2,opt,name=log_query,json=logQuery,proto3,oneof"` 2752 } 2753 type PolicySpec_SupportingAlertQuery_RestGetQuery_ struct { 2754 // Rest Get query 2755 RestGetQuery *PolicySpec_SupportingAlertQuery_RestGetQuery `protobuf:"bytes,5,opt,name=rest_get_query,json=restGetQuery,proto3,oneof"` 2756 } 2757 type PolicySpec_SupportingAlertQuery_RestListQuery_ struct { 2758 // Rest List query 2759 RestListQuery *PolicySpec_SupportingAlertQuery_RestListQuery `protobuf:"bytes,6,opt,name=rest_list_query,json=restListQuery,proto3,oneof"` 2760 } 2761 2762 func (*PolicySpec_SupportingAlertQuery_TsQuery_) isPolicySpec_SupportingAlertQuery_Query() {} 2763 func (*PolicySpec_SupportingAlertQuery_LogQuery_) isPolicySpec_SupportingAlertQuery_Query() {} 2764 func (*PolicySpec_SupportingAlertQuery_RestGetQuery_) isPolicySpec_SupportingAlertQuery_Query() {} 2765 func (*PolicySpec_SupportingAlertQuery_RestListQuery_) isPolicySpec_SupportingAlertQuery_Query() {} 2766 func (m *PolicySpec_SupportingAlertQuery) GetQuery() isPolicySpec_SupportingAlertQuery_Query { 2767 if m != nil { 2768 return m.Query 2769 } 2770 return nil 2771 } 2772 func (m *PolicySpec_SupportingAlertQuery) GetTsQuery() *PolicySpec_SupportingAlertQuery_TsQuery { 2773 if x, ok := m.GetQuery().(*PolicySpec_SupportingAlertQuery_TsQuery_); ok { 2774 return x.TsQuery 2775 } 2776 return nil 2777 } 2778 func (m *PolicySpec_SupportingAlertQuery) GetLogQuery() *PolicySpec_SupportingAlertQuery_LogQuery { 2779 if x, ok := m.GetQuery().(*PolicySpec_SupportingAlertQuery_LogQuery_); ok { 2780 return x.LogQuery 2781 } 2782 return nil 2783 } 2784 func (m *PolicySpec_SupportingAlertQuery) GetRestGetQuery() *PolicySpec_SupportingAlertQuery_RestGetQuery { 2785 if x, ok := m.GetQuery().(*PolicySpec_SupportingAlertQuery_RestGetQuery_); ok { 2786 return x.RestGetQuery 2787 } 2788 return nil 2789 } 2790 func (m *PolicySpec_SupportingAlertQuery) GetRestListQuery() *PolicySpec_SupportingAlertQuery_RestListQuery { 2791 if x, ok := m.GetQuery().(*PolicySpec_SupportingAlertQuery_RestListQuery_); ok { 2792 return x.RestListQuery 2793 } 2794 return nil 2795 } 2796 func (m *PolicySpec_SupportingAlertQuery) SetQuery(ofv isPolicySpec_SupportingAlertQuery_Query) { 2797 if m == nil { 2798 panic(fmt.Errorf("can't set %s on nil %s", "isPolicySpec_SupportingAlertQuery_Query", "PolicySpec_SupportingAlertQuery")) 2799 } 2800 m.Query = ofv 2801 } 2802 func (m *PolicySpec_SupportingAlertQuery) SetTsQuery(fv *PolicySpec_SupportingAlertQuery_TsQuery) { 2803 m.SetQuery(&PolicySpec_SupportingAlertQuery_TsQuery_{TsQuery: fv}) 2804 } 2805 func (m *PolicySpec_SupportingAlertQuery) SetLogQuery(fv *PolicySpec_SupportingAlertQuery_LogQuery) { 2806 m.SetQuery(&PolicySpec_SupportingAlertQuery_LogQuery_{LogQuery: fv}) 2807 } 2808 func (m *PolicySpec_SupportingAlertQuery) SetRestGetQuery(fv *PolicySpec_SupportingAlertQuery_RestGetQuery) { 2809 m.SetQuery(&PolicySpec_SupportingAlertQuery_RestGetQuery_{RestGetQuery: fv}) 2810 } 2811 func (m *PolicySpec_SupportingAlertQuery) SetRestListQuery(fv *PolicySpec_SupportingAlertQuery_RestListQuery) { 2812 m.SetQuery(&PolicySpec_SupportingAlertQuery_RestListQuery_{RestListQuery: fv}) 2813 } 2814 2815 // AIAgentHandling defines instructions for AI agent how to handle alerts 2816 // generated within current Policy. 2817 type PolicySpec_AIAgentHandling struct { 2818 state protoimpl.MessageState 2819 sizeCache protoimpl.SizeCache 2820 unknownFields protoimpl.UnknownFields 2821 // Whether AI agent handling is enabled. 2822 Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` 2823 // Whether AI agent is allowed to SSH into alerting resource for further 2824 // investigation outside of defined queries. To have an effect, it is 2825 // necessary to specify edge_connectivity field. 2826 EnabledConnectivity bool `protobuf:"varint,2,opt,name=enabled_connectivity,json=enabledConnectivity,proto3" json:"enabled_connectivity,omitempty"` 2827 // Whether remediation's proposed by AI agent should be automatically 2828 // accepted without operator consent (full autonomous mode). 2829 AutoAcceptRemediation bool `protobuf:"varint,3,opt,name=auto_accept_remediation,json=autoAcceptRemediation,proto3" json:"auto_accept_remediation,omitempty"` 2830 // Describes how to connect to alerting resource in a context of Alert. 2831 EdgeConnectivity *PolicySpec_AIAgentHandling_EdgeConnectivity `protobuf:"bytes,4,opt,name=edge_connectivity,json=edgeConnectivity,proto3" json:"edge_connectivity,omitempty"` 2832 // Specifies list of suggested remediations for AI agent to apply 2833 RemediationOptions []*PolicySpec_AIAgentHandling_Remediation `protobuf:"bytes,6,rep,name=remediation_options,json=remediationOptions,proto3" json:"remediation_options,omitempty"` 2834 } 2835 2836 func (m *PolicySpec_AIAgentHandling) Reset() { 2837 *m = PolicySpec_AIAgentHandling{} 2838 if protoimpl.UnsafeEnabled { 2839 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[17] 2840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2841 ms.StoreMessageInfo(mi) 2842 } 2843 } 2844 2845 func (m *PolicySpec_AIAgentHandling) String() string { 2846 return protoimpl.X.MessageStringOf(m) 2847 } 2848 2849 func (*PolicySpec_AIAgentHandling) ProtoMessage() {} 2850 2851 func (m *PolicySpec_AIAgentHandling) ProtoReflect() preflect.Message { 2852 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[17] 2853 if protoimpl.UnsafeEnabled && m != nil { 2854 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 2855 if ms.LoadMessageInfo() == nil { 2856 ms.StoreMessageInfo(mi) 2857 } 2858 return ms 2859 } 2860 return mi.MessageOf(m) 2861 } 2862 2863 func (*PolicySpec_AIAgentHandling) GotenMessage() {} 2864 2865 // Deprecated, Use PolicySpec_AIAgentHandling.ProtoReflect.Descriptor instead. 2866 func (*PolicySpec_AIAgentHandling) Descriptor() ([]byte, []int) { 2867 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2} 2868 } 2869 2870 func (m *PolicySpec_AIAgentHandling) Unmarshal(b []byte) error { 2871 return proto.Unmarshal(b, m) 2872 } 2873 2874 func (m *PolicySpec_AIAgentHandling) Marshal() ([]byte, error) { 2875 return proto.Marshal(m) 2876 } 2877 2878 func (m *PolicySpec_AIAgentHandling) MarshalJSON() ([]byte, error) { 2879 return protojson.MarshalOptions{}.Marshal(m) 2880 } 2881 2882 func (m *PolicySpec_AIAgentHandling) UnmarshalJSON(data []byte) error { 2883 return protojson.Unmarshal(data, m) 2884 } 2885 2886 func (m *PolicySpec_AIAgentHandling) GetEnabled() bool { 2887 if m != nil { 2888 return m.Enabled 2889 } 2890 return false 2891 } 2892 2893 func (m *PolicySpec_AIAgentHandling) GetEnabledConnectivity() bool { 2894 if m != nil { 2895 return m.EnabledConnectivity 2896 } 2897 return false 2898 } 2899 2900 func (m *PolicySpec_AIAgentHandling) GetAutoAcceptRemediation() bool { 2901 if m != nil { 2902 return m.AutoAcceptRemediation 2903 } 2904 return false 2905 } 2906 2907 func (m *PolicySpec_AIAgentHandling) GetEdgeConnectivity() *PolicySpec_AIAgentHandling_EdgeConnectivity { 2908 if m != nil { 2909 return m.EdgeConnectivity 2910 } 2911 return nil 2912 } 2913 2914 func (m *PolicySpec_AIAgentHandling) GetRemediationOptions() []*PolicySpec_AIAgentHandling_Remediation { 2915 if m != nil { 2916 return m.RemediationOptions 2917 } 2918 return nil 2919 } 2920 2921 func (m *PolicySpec_AIAgentHandling) SetEnabled(fv bool) { 2922 if m == nil { 2923 panic(fmt.Errorf("can't set %s on nil %s", "Enabled", "PolicySpec_AIAgentHandling")) 2924 } 2925 m.Enabled = fv 2926 } 2927 2928 func (m *PolicySpec_AIAgentHandling) SetEnabledConnectivity(fv bool) { 2929 if m == nil { 2930 panic(fmt.Errorf("can't set %s on nil %s", "EnabledConnectivity", "PolicySpec_AIAgentHandling")) 2931 } 2932 m.EnabledConnectivity = fv 2933 } 2934 2935 func (m *PolicySpec_AIAgentHandling) SetAutoAcceptRemediation(fv bool) { 2936 if m == nil { 2937 panic(fmt.Errorf("can't set %s on nil %s", "AutoAcceptRemediation", "PolicySpec_AIAgentHandling")) 2938 } 2939 m.AutoAcceptRemediation = fv 2940 } 2941 2942 func (m *PolicySpec_AIAgentHandling) SetEdgeConnectivity(fv *PolicySpec_AIAgentHandling_EdgeConnectivity) { 2943 if m == nil { 2944 panic(fmt.Errorf("can't set %s on nil %s", "EdgeConnectivity", "PolicySpec_AIAgentHandling")) 2945 } 2946 m.EdgeConnectivity = fv 2947 } 2948 2949 func (m *PolicySpec_AIAgentHandling) SetRemediationOptions(fv []*PolicySpec_AIAgentHandling_Remediation) { 2950 if m == nil { 2951 panic(fmt.Errorf("can't set %s on nil %s", "RemediationOptions", "PolicySpec_AIAgentHandling")) 2952 } 2953 m.RemediationOptions = fv 2954 } 2955 2956 // LabelInfo binds a label from Log/TimeSeries object into 2957 // specific name segment of a resource associated with an Alert 2958 // raised within current Policy. 2959 // Multiple LabelInfo instances within ResourceIdentity are used to 2960 // reconstruct full resource names. 2961 // For example, resource type devices.edgelq.com/Device has a single 2962 // known name pattern 2963 // projects/{project}/regions/{region}/devices/{device}. There are 3 name 2964 // segments: project, region, and device. Segments "project" and "region" 2965 // are built-in always and dont have to be defined. Policy owner will have 2966 // to provide single LabelInfo in this case, for device segment only. 2967 // LabelInfo may be used to point to other auxiliary resources. For 2968 // example, if Policy focuses on conditions for 2969 // applications.edgelq.com/Pod resource type, administrator can create 2970 // Policy with 2 LabelInfo objects: One with device_id as primary key, 2971 // because it will be Device generating all time series (also for pods), 2972 // then other LabelInfo must contain object with key equal to pod_id. 2973 type PolicySpec_ResourceIdentity_LabelInfo struct { 2974 state protoimpl.MessageState 2975 sizeCache protoimpl.SizeCache 2976 unknownFields protoimpl.UnknownFields 2977 // Label key that must be present in TsCondition/LogCondition group by 2978 // fields list. Refer to labels defined in relevant 2979 // monitoring.edgelq.com/MonitoredResourceDescriptor, 2980 // monitoring.edgelq.com/MetricDescriptor, or 2981 // logging.edgelq.com/LogDescriptor resources for which you want to 2982 // create conditions. Note that "key" must match exactly one of a labels 2983 // (byte to byte) specified in interesting descriptors. For example, in 2984 // MonitoredResourceDescriptor of type devices.edgelq.com/Device you may 2985 // find label with key "device_id". This must be specified in 2986 // LabelInfo.key if you want to create Policy focusing on Device 2987 // resource. 2988 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 2989 // List of all contexts where label with specified key can be found. 2990 // It may be more than one position. For example device_id label can 2991 // be found in LogDescriptor or MonitoredResourceDescriptor. In this 2992 // case, we need to set 2 values in contexts field: RESOURCE_LABEL and 2993 // LOG_LABEL. 2994 Contexts []PolicySpec_ResourceIdentity_LabelInfo_UsageContext `protobuf:"varint,2,rep,packed,name=contexts,proto3,enum=ntt.alerting.v1.PolicySpec_ResourceIdentity_LabelInfo_UsageContext" json:"contexts,omitempty"` 2995 // Name segment value in name pattern. This is always 2996 // lowerSingularCamelCase resource type name. For example, for LabelInfo 2997 // with key device_id, if it points to devices.edgelq.com/Device 2998 // resource type, mapped_name_segment must be equal to "device" value 2999 // (which is lower camel case). 3000 MappedNameSegment string `protobuf:"bytes,3,opt,name=mapped_name_segment,json=mappedNameSegment,proto3" json:"mapped_name_segment,omitempty"` 3001 } 3002 3003 func (m *PolicySpec_ResourceIdentity_LabelInfo) Reset() { 3004 *m = PolicySpec_ResourceIdentity_LabelInfo{} 3005 if protoimpl.UnsafeEnabled { 3006 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[18] 3007 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3008 ms.StoreMessageInfo(mi) 3009 } 3010 } 3011 3012 func (m *PolicySpec_ResourceIdentity_LabelInfo) String() string { 3013 return protoimpl.X.MessageStringOf(m) 3014 } 3015 3016 func (*PolicySpec_ResourceIdentity_LabelInfo) ProtoMessage() {} 3017 3018 func (m *PolicySpec_ResourceIdentity_LabelInfo) ProtoReflect() preflect.Message { 3019 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[18] 3020 if protoimpl.UnsafeEnabled && m != nil { 3021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3022 if ms.LoadMessageInfo() == nil { 3023 ms.StoreMessageInfo(mi) 3024 } 3025 return ms 3026 } 3027 return mi.MessageOf(m) 3028 } 3029 3030 func (*PolicySpec_ResourceIdentity_LabelInfo) GotenMessage() {} 3031 3032 // Deprecated, Use PolicySpec_ResourceIdentity_LabelInfo.ProtoReflect.Descriptor instead. 3033 func (*PolicySpec_ResourceIdentity_LabelInfo) Descriptor() ([]byte, []int) { 3034 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 0, 0} 3035 } 3036 3037 func (m *PolicySpec_ResourceIdentity_LabelInfo) Unmarshal(b []byte) error { 3038 return proto.Unmarshal(b, m) 3039 } 3040 3041 func (m *PolicySpec_ResourceIdentity_LabelInfo) Marshal() ([]byte, error) { 3042 return proto.Marshal(m) 3043 } 3044 3045 func (m *PolicySpec_ResourceIdentity_LabelInfo) MarshalJSON() ([]byte, error) { 3046 return protojson.MarshalOptions{}.Marshal(m) 3047 } 3048 3049 func (m *PolicySpec_ResourceIdentity_LabelInfo) UnmarshalJSON(data []byte) error { 3050 return protojson.Unmarshal(data, m) 3051 } 3052 3053 func (m *PolicySpec_ResourceIdentity_LabelInfo) GetKey() string { 3054 if m != nil { 3055 return m.Key 3056 } 3057 return "" 3058 } 3059 3060 func (m *PolicySpec_ResourceIdentity_LabelInfo) GetContexts() []PolicySpec_ResourceIdentity_LabelInfo_UsageContext { 3061 if m != nil { 3062 return m.Contexts 3063 } 3064 return nil 3065 } 3066 3067 func (m *PolicySpec_ResourceIdentity_LabelInfo) GetMappedNameSegment() string { 3068 if m != nil { 3069 return m.MappedNameSegment 3070 } 3071 return "" 3072 } 3073 3074 func (m *PolicySpec_ResourceIdentity_LabelInfo) SetKey(fv string) { 3075 if m == nil { 3076 panic(fmt.Errorf("can't set %s on nil %s", "Key", "PolicySpec_ResourceIdentity_LabelInfo")) 3077 } 3078 m.Key = fv 3079 } 3080 3081 func (m *PolicySpec_ResourceIdentity_LabelInfo) SetContexts(fv []PolicySpec_ResourceIdentity_LabelInfo_UsageContext) { 3082 if m == nil { 3083 panic(fmt.Errorf("can't set %s on nil %s", "Contexts", "PolicySpec_ResourceIdentity_LabelInfo")) 3084 } 3085 m.Contexts = fv 3086 } 3087 3088 func (m *PolicySpec_ResourceIdentity_LabelInfo) SetMappedNameSegment(fv string) { 3089 if m == nil { 3090 panic(fmt.Errorf("can't set %s on nil %s", "MappedNameSegment", "PolicySpec_ResourceIdentity_LabelInfo")) 3091 } 3092 m.MappedNameSegment = fv 3093 } 3094 3095 // TsQuery describes TimeSeries query to execute for each specific alert. 3096 // Time interval will be set around alert time. 3097 type PolicySpec_SupportingAlertQuery_TsQuery struct { 3098 state protoimpl.MessageState 3099 sizeCache protoimpl.SizeCache 3100 unknownFields protoimpl.UnknownFields 3101 // Query description. 3102 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 3103 // TimeSeries filter template. All substrings <$LABEL_KEY> will be 3104 // replaced according to the resource_identity.labels field. 3105 FilterTemplate string `protobuf:"bytes,2,opt,name=filter_template,json=filterTemplate,proto3" json:"filter_template,omitempty"` 3106 // TimeSeries aggregation object. 3107 Aggregation *monitoring_common.Aggregation `protobuf:"bytes,3,opt,name=aggregation,proto3" json:"aggregation,omitempty"` 3108 } 3109 3110 func (m *PolicySpec_SupportingAlertQuery_TsQuery) Reset() { 3111 *m = PolicySpec_SupportingAlertQuery_TsQuery{} 3112 if protoimpl.UnsafeEnabled { 3113 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[19] 3114 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3115 ms.StoreMessageInfo(mi) 3116 } 3117 } 3118 3119 func (m *PolicySpec_SupportingAlertQuery_TsQuery) String() string { 3120 return protoimpl.X.MessageStringOf(m) 3121 } 3122 3123 func (*PolicySpec_SupportingAlertQuery_TsQuery) ProtoMessage() {} 3124 3125 func (m *PolicySpec_SupportingAlertQuery_TsQuery) ProtoReflect() preflect.Message { 3126 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[19] 3127 if protoimpl.UnsafeEnabled && m != nil { 3128 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3129 if ms.LoadMessageInfo() == nil { 3130 ms.StoreMessageInfo(mi) 3131 } 3132 return ms 3133 } 3134 return mi.MessageOf(m) 3135 } 3136 3137 func (*PolicySpec_SupportingAlertQuery_TsQuery) GotenMessage() {} 3138 3139 // Deprecated, Use PolicySpec_SupportingAlertQuery_TsQuery.ProtoReflect.Descriptor instead. 3140 func (*PolicySpec_SupportingAlertQuery_TsQuery) Descriptor() ([]byte, []int) { 3141 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 1, 0} 3142 } 3143 3144 func (m *PolicySpec_SupportingAlertQuery_TsQuery) Unmarshal(b []byte) error { 3145 return proto.Unmarshal(b, m) 3146 } 3147 3148 func (m *PolicySpec_SupportingAlertQuery_TsQuery) Marshal() ([]byte, error) { 3149 return proto.Marshal(m) 3150 } 3151 3152 func (m *PolicySpec_SupportingAlertQuery_TsQuery) MarshalJSON() ([]byte, error) { 3153 return protojson.MarshalOptions{}.Marshal(m) 3154 } 3155 3156 func (m *PolicySpec_SupportingAlertQuery_TsQuery) UnmarshalJSON(data []byte) error { 3157 return protojson.Unmarshal(data, m) 3158 } 3159 3160 func (m *PolicySpec_SupportingAlertQuery_TsQuery) GetDescription() string { 3161 if m != nil { 3162 return m.Description 3163 } 3164 return "" 3165 } 3166 3167 func (m *PolicySpec_SupportingAlertQuery_TsQuery) GetFilterTemplate() string { 3168 if m != nil { 3169 return m.FilterTemplate 3170 } 3171 return "" 3172 } 3173 3174 func (m *PolicySpec_SupportingAlertQuery_TsQuery) GetAggregation() *monitoring_common.Aggregation { 3175 if m != nil { 3176 return m.Aggregation 3177 } 3178 return nil 3179 } 3180 3181 func (m *PolicySpec_SupportingAlertQuery_TsQuery) SetDescription(fv string) { 3182 if m == nil { 3183 panic(fmt.Errorf("can't set %s on nil %s", "Description", "PolicySpec_SupportingAlertQuery_TsQuery")) 3184 } 3185 m.Description = fv 3186 } 3187 3188 func (m *PolicySpec_SupportingAlertQuery_TsQuery) SetFilterTemplate(fv string) { 3189 if m == nil { 3190 panic(fmt.Errorf("can't set %s on nil %s", "FilterTemplate", "PolicySpec_SupportingAlertQuery_TsQuery")) 3191 } 3192 m.FilterTemplate = fv 3193 } 3194 3195 func (m *PolicySpec_SupportingAlertQuery_TsQuery) SetAggregation(fv *monitoring_common.Aggregation) { 3196 if m == nil { 3197 panic(fmt.Errorf("can't set %s on nil %s", "Aggregation", "PolicySpec_SupportingAlertQuery_TsQuery")) 3198 } 3199 m.Aggregation = fv 3200 } 3201 3202 // LogQuery describes Log query to execute for each specific alert. 3203 // Time interval will be set around alert time. 3204 type PolicySpec_SupportingAlertQuery_LogQuery struct { 3205 state protoimpl.MessageState 3206 sizeCache protoimpl.SizeCache 3207 unknownFields protoimpl.UnknownFields 3208 // Query description. 3209 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 3210 // Log filter template. All substrings <$LABEL_KEY> will be 3211 // replaced according to the resource_identity.labels field. 3212 FilterTemplate string `protobuf:"bytes,2,opt,name=filter_template,json=filterTemplate,proto3" json:"filter_template,omitempty"` 3213 } 3214 3215 func (m *PolicySpec_SupportingAlertQuery_LogQuery) Reset() { 3216 *m = PolicySpec_SupportingAlertQuery_LogQuery{} 3217 if protoimpl.UnsafeEnabled { 3218 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[20] 3219 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3220 ms.StoreMessageInfo(mi) 3221 } 3222 } 3223 3224 func (m *PolicySpec_SupportingAlertQuery_LogQuery) String() string { 3225 return protoimpl.X.MessageStringOf(m) 3226 } 3227 3228 func (*PolicySpec_SupportingAlertQuery_LogQuery) ProtoMessage() {} 3229 3230 func (m *PolicySpec_SupportingAlertQuery_LogQuery) ProtoReflect() preflect.Message { 3231 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[20] 3232 if protoimpl.UnsafeEnabled && m != nil { 3233 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3234 if ms.LoadMessageInfo() == nil { 3235 ms.StoreMessageInfo(mi) 3236 } 3237 return ms 3238 } 3239 return mi.MessageOf(m) 3240 } 3241 3242 func (*PolicySpec_SupportingAlertQuery_LogQuery) GotenMessage() {} 3243 3244 // Deprecated, Use PolicySpec_SupportingAlertQuery_LogQuery.ProtoReflect.Descriptor instead. 3245 func (*PolicySpec_SupportingAlertQuery_LogQuery) Descriptor() ([]byte, []int) { 3246 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 1, 1} 3247 } 3248 3249 func (m *PolicySpec_SupportingAlertQuery_LogQuery) Unmarshal(b []byte) error { 3250 return proto.Unmarshal(b, m) 3251 } 3252 3253 func (m *PolicySpec_SupportingAlertQuery_LogQuery) Marshal() ([]byte, error) { 3254 return proto.Marshal(m) 3255 } 3256 3257 func (m *PolicySpec_SupportingAlertQuery_LogQuery) MarshalJSON() ([]byte, error) { 3258 return protojson.MarshalOptions{}.Marshal(m) 3259 } 3260 3261 func (m *PolicySpec_SupportingAlertQuery_LogQuery) UnmarshalJSON(data []byte) error { 3262 return protojson.Unmarshal(data, m) 3263 } 3264 3265 func (m *PolicySpec_SupportingAlertQuery_LogQuery) GetDescription() string { 3266 if m != nil { 3267 return m.Description 3268 } 3269 return "" 3270 } 3271 3272 func (m *PolicySpec_SupportingAlertQuery_LogQuery) GetFilterTemplate() string { 3273 if m != nil { 3274 return m.FilterTemplate 3275 } 3276 return "" 3277 } 3278 3279 func (m *PolicySpec_SupportingAlertQuery_LogQuery) SetDescription(fv string) { 3280 if m == nil { 3281 panic(fmt.Errorf("can't set %s on nil %s", "Description", "PolicySpec_SupportingAlertQuery_LogQuery")) 3282 } 3283 m.Description = fv 3284 } 3285 3286 func (m *PolicySpec_SupportingAlertQuery_LogQuery) SetFilterTemplate(fv string) { 3287 if m == nil { 3288 panic(fmt.Errorf("can't set %s on nil %s", "FilterTemplate", "PolicySpec_SupportingAlertQuery_LogQuery")) 3289 } 3290 m.FilterTemplate = fv 3291 } 3292 3293 // RestGetQuery allows to fetch specific resource body to be included in 3294 // investigation data. 3295 // It is optimized for fetching resources from EdgeLQ style services. 3296 // It is not possible as of now to use GRPC API, because alerting resource 3297 // can be used by 3rd party service on top of EdgeLQ platform. 3298 type PolicySpec_SupportingAlertQuery_RestGetQuery struct { 3299 state protoimpl.MessageState 3300 sizeCache protoimpl.SizeCache 3301 unknownFields protoimpl.UnknownFields 3302 // Description of resource we are fetching 3303 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 3304 // Endpoint (with scheme) from which we want to fetch resource. For 3305 // example, it can be https://devices.apis.edgelq.com value, if we want 3306 // to access a resource from devices.edgelq.com service. Endpoint may 3307 // differ depending on environment (production or staging). 3308 // TODO: Replace with reference to meta.goten.com/Service 3309 Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 3310 // Path template to be appended to access specific resource. 3311 // EdgeLQ based services use standard paths for Get requests. 3312 // It is: /$API_VERSION/$RESOURCE_NAME. 3313 // For example, path_template for devices.edgelq.com/Device 3314 // resource in version v1, path_template must have a format: 3315 // "/v1/projects/<project_id>/regions/<region_id>/devices/<device_id>". 3316 // All substrings <$LABEL_KEY> will be replaced according to the 3317 // resource_identity.labels field. 3318 PathTemplate string `protobuf:"bytes,3,opt,name=path_template,json=pathTemplate,proto3" json:"path_template,omitempty"` 3319 // It must be NAME, BASIC, DETAIL or FULL - like in each standard Get 3320 // request in EdgeLQ based platform. 3321 View string `protobuf:"bytes,4,opt,name=view,proto3" json:"view,omitempty"` 3322 // List of additional fields to obtain on top of those defined within 3323 // view. Fields must be comma separated, and use lower_snake_case 3324 // notion. 3325 FieldMask string `protobuf:"bytes,5,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` 3326 } 3327 3328 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) Reset() { 3329 *m = PolicySpec_SupportingAlertQuery_RestGetQuery{} 3330 if protoimpl.UnsafeEnabled { 3331 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[21] 3332 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3333 ms.StoreMessageInfo(mi) 3334 } 3335 } 3336 3337 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) String() string { 3338 return protoimpl.X.MessageStringOf(m) 3339 } 3340 3341 func (*PolicySpec_SupportingAlertQuery_RestGetQuery) ProtoMessage() {} 3342 3343 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) ProtoReflect() preflect.Message { 3344 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[21] 3345 if protoimpl.UnsafeEnabled && m != nil { 3346 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3347 if ms.LoadMessageInfo() == nil { 3348 ms.StoreMessageInfo(mi) 3349 } 3350 return ms 3351 } 3352 return mi.MessageOf(m) 3353 } 3354 3355 func (*PolicySpec_SupportingAlertQuery_RestGetQuery) GotenMessage() {} 3356 3357 // Deprecated, Use PolicySpec_SupportingAlertQuery_RestGetQuery.ProtoReflect.Descriptor instead. 3358 func (*PolicySpec_SupportingAlertQuery_RestGetQuery) Descriptor() ([]byte, []int) { 3359 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 1, 2} 3360 } 3361 3362 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) Unmarshal(b []byte) error { 3363 return proto.Unmarshal(b, m) 3364 } 3365 3366 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) Marshal() ([]byte, error) { 3367 return proto.Marshal(m) 3368 } 3369 3370 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) MarshalJSON() ([]byte, error) { 3371 return protojson.MarshalOptions{}.Marshal(m) 3372 } 3373 3374 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) UnmarshalJSON(data []byte) error { 3375 return protojson.Unmarshal(data, m) 3376 } 3377 3378 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) GetDescription() string { 3379 if m != nil { 3380 return m.Description 3381 } 3382 return "" 3383 } 3384 3385 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) GetEndpoint() string { 3386 if m != nil { 3387 return m.Endpoint 3388 } 3389 return "" 3390 } 3391 3392 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) GetPathTemplate() string { 3393 if m != nil { 3394 return m.PathTemplate 3395 } 3396 return "" 3397 } 3398 3399 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) GetView() string { 3400 if m != nil { 3401 return m.View 3402 } 3403 return "" 3404 } 3405 3406 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) GetFieldMask() string { 3407 if m != nil { 3408 return m.FieldMask 3409 } 3410 return "" 3411 } 3412 3413 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) SetDescription(fv string) { 3414 if m == nil { 3415 panic(fmt.Errorf("can't set %s on nil %s", "Description", "PolicySpec_SupportingAlertQuery_RestGetQuery")) 3416 } 3417 m.Description = fv 3418 } 3419 3420 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) SetEndpoint(fv string) { 3421 if m == nil { 3422 panic(fmt.Errorf("can't set %s on nil %s", "Endpoint", "PolicySpec_SupportingAlertQuery_RestGetQuery")) 3423 } 3424 m.Endpoint = fv 3425 } 3426 3427 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) SetPathTemplate(fv string) { 3428 if m == nil { 3429 panic(fmt.Errorf("can't set %s on nil %s", "PathTemplate", "PolicySpec_SupportingAlertQuery_RestGetQuery")) 3430 } 3431 m.PathTemplate = fv 3432 } 3433 3434 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) SetView(fv string) { 3435 if m == nil { 3436 panic(fmt.Errorf("can't set %s on nil %s", "View", "PolicySpec_SupportingAlertQuery_RestGetQuery")) 3437 } 3438 m.View = fv 3439 } 3440 3441 func (m *PolicySpec_SupportingAlertQuery_RestGetQuery) SetFieldMask(fv string) { 3442 if m == nil { 3443 panic(fmt.Errorf("can't set %s on nil %s", "FieldMask", "PolicySpec_SupportingAlertQuery_RestGetQuery")) 3444 } 3445 m.FieldMask = fv 3446 } 3447 3448 // RestListQuery allows to fetch specific list of resource bodies to be 3449 // included in investigation data. 3450 // It is optimized for fetching resources from EdgeLQ style services. 3451 // It is not possible as of now to use GRPC API, because alerting resource 3452 // can be used by 3rd party service on top of EdgeLQ platform. 3453 type PolicySpec_SupportingAlertQuery_RestListQuery struct { 3454 state protoimpl.MessageState 3455 sizeCache protoimpl.SizeCache 3456 unknownFields protoimpl.UnknownFields 3457 // Description of resources we are fetching 3458 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 3459 // Endpoint (with scheme) from which we want to fetch resource. For 3460 // example, it can be https://applications.apis.edgelq.com value, if we 3461 // want to access a resource from applications.edgelq.com service. 3462 // Endpoint may differ depending on environment (production or staging). 3463 // TODO: Replace with reference to meta.goten.com/Service 3464 Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 3465 // Path template to be appended to access specific resource. 3466 // EdgeLQ based services use standard paths for List requests. 3467 // It is: 3468 // /$API_VERSION/$RESOURCE_PARENT_NAME/$PLURAL_RESOURCE_TYPE_NAME. For 3469 // example, to fetch list of pods (applications.edgelq.com service), we 3470 // would use path_template like this: 3471 // "/v1/projects/<project_id>/regions/<region_id>/pods". 3472 // All substrings <$LABEL_KEY> will be replaced according to the 3473 // resource_identity.labels field. 3474 PathTemplate string `protobuf:"bytes,3,opt,name=path_template,json=pathTemplate,proto3" json:"path_template,omitempty"` 3475 // It must be NAME, BASIC, DETAIL or FULL - like in each standard List 3476 // request in EdgeLQ based platform. 3477 View string `protobuf:"bytes,4,opt,name=view,proto3" json:"view,omitempty"` 3478 // List of additional fields to obtain on top of those defined within 3479 // view. Fields must be comma separated, and use lower_snake_case 3480 // notion. 3481 FieldMask string `protobuf:"bytes,5,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` 3482 // Optional filter template to be used to filter collection. For 3483 // example, if we want to obtain list of pods running on a device, we 3484 // should populate it with value: 3485 // "spec.node=\"projects/<project_id>/regions/<region_id>/devices/<device_id>\"". 3486 FilterTemplate string `protobuf:"bytes,6,opt,name=filter_template,json=filterTemplate,proto3" json:"filter_template,omitempty"` 3487 } 3488 3489 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) Reset() { 3490 *m = PolicySpec_SupportingAlertQuery_RestListQuery{} 3491 if protoimpl.UnsafeEnabled { 3492 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[22] 3493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3494 ms.StoreMessageInfo(mi) 3495 } 3496 } 3497 3498 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) String() string { 3499 return protoimpl.X.MessageStringOf(m) 3500 } 3501 3502 func (*PolicySpec_SupportingAlertQuery_RestListQuery) ProtoMessage() {} 3503 3504 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) ProtoReflect() preflect.Message { 3505 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[22] 3506 if protoimpl.UnsafeEnabled && m != nil { 3507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3508 if ms.LoadMessageInfo() == nil { 3509 ms.StoreMessageInfo(mi) 3510 } 3511 return ms 3512 } 3513 return mi.MessageOf(m) 3514 } 3515 3516 func (*PolicySpec_SupportingAlertQuery_RestListQuery) GotenMessage() {} 3517 3518 // Deprecated, Use PolicySpec_SupportingAlertQuery_RestListQuery.ProtoReflect.Descriptor instead. 3519 func (*PolicySpec_SupportingAlertQuery_RestListQuery) Descriptor() ([]byte, []int) { 3520 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 1, 3} 3521 } 3522 3523 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) Unmarshal(b []byte) error { 3524 return proto.Unmarshal(b, m) 3525 } 3526 3527 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) Marshal() ([]byte, error) { 3528 return proto.Marshal(m) 3529 } 3530 3531 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) MarshalJSON() ([]byte, error) { 3532 return protojson.MarshalOptions{}.Marshal(m) 3533 } 3534 3535 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) UnmarshalJSON(data []byte) error { 3536 return protojson.Unmarshal(data, m) 3537 } 3538 3539 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetDescription() string { 3540 if m != nil { 3541 return m.Description 3542 } 3543 return "" 3544 } 3545 3546 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetEndpoint() string { 3547 if m != nil { 3548 return m.Endpoint 3549 } 3550 return "" 3551 } 3552 3553 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetPathTemplate() string { 3554 if m != nil { 3555 return m.PathTemplate 3556 } 3557 return "" 3558 } 3559 3560 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetView() string { 3561 if m != nil { 3562 return m.View 3563 } 3564 return "" 3565 } 3566 3567 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetFieldMask() string { 3568 if m != nil { 3569 return m.FieldMask 3570 } 3571 return "" 3572 } 3573 3574 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) GetFilterTemplate() string { 3575 if m != nil { 3576 return m.FilterTemplate 3577 } 3578 return "" 3579 } 3580 3581 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetDescription(fv string) { 3582 if m == nil { 3583 panic(fmt.Errorf("can't set %s on nil %s", "Description", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3584 } 3585 m.Description = fv 3586 } 3587 3588 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetEndpoint(fv string) { 3589 if m == nil { 3590 panic(fmt.Errorf("can't set %s on nil %s", "Endpoint", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3591 } 3592 m.Endpoint = fv 3593 } 3594 3595 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetPathTemplate(fv string) { 3596 if m == nil { 3597 panic(fmt.Errorf("can't set %s on nil %s", "PathTemplate", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3598 } 3599 m.PathTemplate = fv 3600 } 3601 3602 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetView(fv string) { 3603 if m == nil { 3604 panic(fmt.Errorf("can't set %s on nil %s", "View", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3605 } 3606 m.View = fv 3607 } 3608 3609 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetFieldMask(fv string) { 3610 if m == nil { 3611 panic(fmt.Errorf("can't set %s on nil %s", "FieldMask", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3612 } 3613 m.FieldMask = fv 3614 } 3615 3616 func (m *PolicySpec_SupportingAlertQuery_RestListQuery) SetFilterTemplate(fv string) { 3617 if m == nil { 3618 panic(fmt.Errorf("can't set %s on nil %s", "FilterTemplate", "PolicySpec_SupportingAlertQuery_RestListQuery")) 3619 } 3620 m.FilterTemplate = fv 3621 } 3622 3623 // EdgeConnectivity describes means of accessing alerting resource for 3624 // troubleshooting purposes. 3625 type PolicySpec_AIAgentHandling_EdgeConnectivity struct { 3626 state protoimpl.MessageState 3627 sizeCache protoimpl.SizeCache 3628 unknownFields protoimpl.UnknownFields 3629 // Optional list of allowed binaries that AI agent can use. This can be 3630 // used to restrict potential errors, or indicate what utils are 3631 // available. 3632 AllowedBins []string `protobuf:"bytes,4,rep,name=allowed_bins,json=allowedBins,proto3" json:"allowed_bins,omitempty"` 3633 // Types that are valid to be assigned to Type: 3634 // *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh 3635 // *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh 3636 // *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh 3637 Type isPolicySpec_AIAgentHandling_EdgeConnectivity_Type `protobuf_oneof:"type"` 3638 } 3639 3640 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) Reset() { 3641 *m = PolicySpec_AIAgentHandling_EdgeConnectivity{} 3642 if protoimpl.UnsafeEnabled { 3643 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[23] 3644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3645 ms.StoreMessageInfo(mi) 3646 } 3647 } 3648 3649 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) String() string { 3650 return protoimpl.X.MessageStringOf(m) 3651 } 3652 3653 func (*PolicySpec_AIAgentHandling_EdgeConnectivity) ProtoMessage() {} 3654 3655 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) ProtoReflect() preflect.Message { 3656 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[23] 3657 if protoimpl.UnsafeEnabled && m != nil { 3658 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3659 if ms.LoadMessageInfo() == nil { 3660 ms.StoreMessageInfo(mi) 3661 } 3662 return ms 3663 } 3664 return mi.MessageOf(m) 3665 } 3666 3667 func (*PolicySpec_AIAgentHandling_EdgeConnectivity) GotenMessage() {} 3668 3669 // Deprecated, Use PolicySpec_AIAgentHandling_EdgeConnectivity.ProtoReflect.Descriptor instead. 3670 func (*PolicySpec_AIAgentHandling_EdgeConnectivity) Descriptor() ([]byte, []int) { 3671 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 0} 3672 } 3673 3674 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) Unmarshal(b []byte) error { 3675 return proto.Unmarshal(b, m) 3676 } 3677 3678 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) Marshal() ([]byte, error) { 3679 return proto.Marshal(m) 3680 } 3681 3682 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) MarshalJSON() ([]byte, error) { 3683 return protojson.MarshalOptions{}.Marshal(m) 3684 } 3685 3686 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) UnmarshalJSON(data []byte) error { 3687 return protojson.Unmarshal(data, m) 3688 } 3689 3690 type isPolicySpec_AIAgentHandling_EdgeConnectivity_Type interface { 3691 isPolicySpec_AIAgentHandling_EdgeConnectivity_Type() 3692 } 3693 3694 type PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh struct { 3695 // Device SSH connectivity 3696 DeviceSsh *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH `protobuf:"bytes,1,opt,name=device_ssh,json=deviceSsh,proto3,oneof"` 3697 } 3698 type PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh struct { 3699 // Proxies SSH connectivity 3700 ProxiesSsh *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH `protobuf:"bytes,2,opt,name=proxies_ssh,json=proxiesSsh,proto3,oneof"` 3701 } 3702 type PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh struct { 3703 // Pod SSH connectivity 3704 PodSsh *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH `protobuf:"bytes,3,opt,name=pod_ssh,json=podSsh,proto3,oneof"` 3705 } 3706 3707 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh) isPolicySpec_AIAgentHandling_EdgeConnectivity_Type() { 3708 } 3709 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh) isPolicySpec_AIAgentHandling_EdgeConnectivity_Type() { 3710 } 3711 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh) isPolicySpec_AIAgentHandling_EdgeConnectivity_Type() { 3712 } 3713 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) GetAllowedBins() []string { 3714 if m != nil { 3715 return m.AllowedBins 3716 } 3717 return nil 3718 } 3719 3720 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) GetType() isPolicySpec_AIAgentHandling_EdgeConnectivity_Type { 3721 if m != nil { 3722 return m.Type 3723 } 3724 return nil 3725 } 3726 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) GetDeviceSsh() *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH { 3727 if x, ok := m.GetType().(*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh); ok { 3728 return x.DeviceSsh 3729 } 3730 return nil 3731 } 3732 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) GetProxiesSsh() *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH { 3733 if x, ok := m.GetType().(*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh); ok { 3734 return x.ProxiesSsh 3735 } 3736 return nil 3737 } 3738 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) GetPodSsh() *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH { 3739 if x, ok := m.GetType().(*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh); ok { 3740 return x.PodSsh 3741 } 3742 return nil 3743 } 3744 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) SetAllowedBins(fv []string) { 3745 if m == nil { 3746 panic(fmt.Errorf("can't set %s on nil %s", "AllowedBins", "PolicySpec_AIAgentHandling_EdgeConnectivity")) 3747 } 3748 m.AllowedBins = fv 3749 } 3750 3751 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) SetType(ofv isPolicySpec_AIAgentHandling_EdgeConnectivity_Type) { 3752 if m == nil { 3753 panic(fmt.Errorf("can't set %s on nil %s", "isPolicySpec_AIAgentHandling_EdgeConnectivity_Type", "PolicySpec_AIAgentHandling_EdgeConnectivity")) 3754 } 3755 m.Type = ofv 3756 } 3757 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) SetDeviceSsh(fv *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) { 3758 m.SetType(&PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh{DeviceSsh: fv}) 3759 } 3760 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) SetProxiesSsh(fv *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) { 3761 m.SetType(&PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh{ProxiesSsh: fv}) 3762 } 3763 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity) SetPodSsh(fv *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) { 3764 m.SetType(&PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh{PodSsh: fv}) 3765 } 3766 3767 // Remediation indicates option available to AI agent. 3768 type PolicySpec_AIAgentHandling_Remediation struct { 3769 state protoimpl.MessageState 3770 sizeCache protoimpl.SizeCache 3771 unknownFields protoimpl.UnknownFields 3772 // Types that are valid to be assigned to Type: 3773 // *PolicySpec_AIAgentHandling_Remediation_FixInSsh 3774 // *PolicySpec_AIAgentHandling_Remediation_Reboot_ 3775 Type isPolicySpec_AIAgentHandling_Remediation_Type `protobuf_oneof:"type"` 3776 } 3777 3778 func (m *PolicySpec_AIAgentHandling_Remediation) Reset() { 3779 *m = PolicySpec_AIAgentHandling_Remediation{} 3780 if protoimpl.UnsafeEnabled { 3781 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[24] 3782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3783 ms.StoreMessageInfo(mi) 3784 } 3785 } 3786 3787 func (m *PolicySpec_AIAgentHandling_Remediation) String() string { 3788 return protoimpl.X.MessageStringOf(m) 3789 } 3790 3791 func (*PolicySpec_AIAgentHandling_Remediation) ProtoMessage() {} 3792 3793 func (m *PolicySpec_AIAgentHandling_Remediation) ProtoReflect() preflect.Message { 3794 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[24] 3795 if protoimpl.UnsafeEnabled && m != nil { 3796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3797 if ms.LoadMessageInfo() == nil { 3798 ms.StoreMessageInfo(mi) 3799 } 3800 return ms 3801 } 3802 return mi.MessageOf(m) 3803 } 3804 3805 func (*PolicySpec_AIAgentHandling_Remediation) GotenMessage() {} 3806 3807 // Deprecated, Use PolicySpec_AIAgentHandling_Remediation.ProtoReflect.Descriptor instead. 3808 func (*PolicySpec_AIAgentHandling_Remediation) Descriptor() ([]byte, []int) { 3809 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 1} 3810 } 3811 3812 func (m *PolicySpec_AIAgentHandling_Remediation) Unmarshal(b []byte) error { 3813 return proto.Unmarshal(b, m) 3814 } 3815 3816 func (m *PolicySpec_AIAgentHandling_Remediation) Marshal() ([]byte, error) { 3817 return proto.Marshal(m) 3818 } 3819 3820 func (m *PolicySpec_AIAgentHandling_Remediation) MarshalJSON() ([]byte, error) { 3821 return protojson.MarshalOptions{}.Marshal(m) 3822 } 3823 3824 func (m *PolicySpec_AIAgentHandling_Remediation) UnmarshalJSON(data []byte) error { 3825 return protojson.Unmarshal(data, m) 3826 } 3827 3828 type isPolicySpec_AIAgentHandling_Remediation_Type interface { 3829 isPolicySpec_AIAgentHandling_Remediation_Type() 3830 } 3831 3832 type PolicySpec_AIAgentHandling_Remediation_FixInSsh struct { 3833 // FixInSSH remediation type. 3834 FixInSsh *PolicySpec_AIAgentHandling_Remediation_FixInSSH `protobuf:"bytes,1,opt,name=fix_in_ssh,json=fixInSsh,proto3,oneof"` 3835 } 3836 type PolicySpec_AIAgentHandling_Remediation_Reboot_ struct { 3837 // Reboot remediation type. 3838 // It can be specified only if resource identity points to 3839 // devices.edgelq.com/Device, and if pod_id is specified as 3840 // one of the available labels. 3841 Reboot *PolicySpec_AIAgentHandling_Remediation_Reboot `protobuf:"bytes,2,opt,name=reboot,proto3,oneof"` 3842 } 3843 3844 func (*PolicySpec_AIAgentHandling_Remediation_FixInSsh) isPolicySpec_AIAgentHandling_Remediation_Type() { 3845 } 3846 func (*PolicySpec_AIAgentHandling_Remediation_Reboot_) isPolicySpec_AIAgentHandling_Remediation_Type() { 3847 } 3848 func (m *PolicySpec_AIAgentHandling_Remediation) GetType() isPolicySpec_AIAgentHandling_Remediation_Type { 3849 if m != nil { 3850 return m.Type 3851 } 3852 return nil 3853 } 3854 func (m *PolicySpec_AIAgentHandling_Remediation) GetFixInSsh() *PolicySpec_AIAgentHandling_Remediation_FixInSSH { 3855 if x, ok := m.GetType().(*PolicySpec_AIAgentHandling_Remediation_FixInSsh); ok { 3856 return x.FixInSsh 3857 } 3858 return nil 3859 } 3860 func (m *PolicySpec_AIAgentHandling_Remediation) GetReboot() *PolicySpec_AIAgentHandling_Remediation_Reboot { 3861 if x, ok := m.GetType().(*PolicySpec_AIAgentHandling_Remediation_Reboot_); ok { 3862 return x.Reboot 3863 } 3864 return nil 3865 } 3866 func (m *PolicySpec_AIAgentHandling_Remediation) SetType(ofv isPolicySpec_AIAgentHandling_Remediation_Type) { 3867 if m == nil { 3868 panic(fmt.Errorf("can't set %s on nil %s", "isPolicySpec_AIAgentHandling_Remediation_Type", "PolicySpec_AIAgentHandling_Remediation")) 3869 } 3870 m.Type = ofv 3871 } 3872 func (m *PolicySpec_AIAgentHandling_Remediation) SetFixInSsh(fv *PolicySpec_AIAgentHandling_Remediation_FixInSSH) { 3873 m.SetType(&PolicySpec_AIAgentHandling_Remediation_FixInSsh{FixInSsh: fv}) 3874 } 3875 func (m *PolicySpec_AIAgentHandling_Remediation) SetReboot(fv *PolicySpec_AIAgentHandling_Remediation_Reboot) { 3876 m.SetType(&PolicySpec_AIAgentHandling_Remediation_Reboot_{Reboot: fv}) 3877 } 3878 3879 // DeviceSSH informs that AI agent can SSH into alerting resource using 3880 // standard droplet-exposed SSH tunnel. 3881 // It is necessary to provide LabelInfo with device_id key in resource 3882 // identity, but its possible to use DeviceSSH connectivity for 3883 // non-Device alerts too. It is only necessary that alerting resource 3884 // runs a droplet process. 3885 type PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH struct { 3886 state protoimpl.MessageState 3887 sizeCache protoimpl.SizeCache 3888 unknownFields protoimpl.UnknownFields 3889 // Client name for self-identification. Can be any unique name like 3890 // "llm-alerting-agent". 3891 ClientName string `protobuf:"bytes,1,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` 3892 } 3893 3894 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) Reset() { 3895 *m = PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH{} 3896 if protoimpl.UnsafeEnabled { 3897 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[25] 3898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3899 ms.StoreMessageInfo(mi) 3900 } 3901 } 3902 3903 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) String() string { 3904 return protoimpl.X.MessageStringOf(m) 3905 } 3906 3907 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) ProtoMessage() {} 3908 3909 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) ProtoReflect() preflect.Message { 3910 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[25] 3911 if protoimpl.UnsafeEnabled && m != nil { 3912 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3913 if ms.LoadMessageInfo() == nil { 3914 ms.StoreMessageInfo(mi) 3915 } 3916 return ms 3917 } 3918 return mi.MessageOf(m) 3919 } 3920 3921 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) GotenMessage() {} 3922 3923 // Deprecated, Use PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH.ProtoReflect.Descriptor instead. 3924 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) Descriptor() ([]byte, []int) { 3925 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 0, 0} 3926 } 3927 3928 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) Unmarshal(b []byte) error { 3929 return proto.Unmarshal(b, m) 3930 } 3931 3932 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) Marshal() ([]byte, error) { 3933 return proto.Marshal(m) 3934 } 3935 3936 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) MarshalJSON() ([]byte, error) { 3937 return protojson.MarshalOptions{}.Marshal(m) 3938 } 3939 3940 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) UnmarshalJSON(data []byte) error { 3941 return protojson.Unmarshal(data, m) 3942 } 3943 3944 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) GetClientName() string { 3945 if m != nil { 3946 return m.ClientName 3947 } 3948 return "" 3949 } 3950 3951 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH) SetClientName(fv string) { 3952 if m == nil { 3953 panic(fmt.Errorf("can't set %s on nil %s", "ClientName", "PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH")) 3954 } 3955 m.ClientName = fv 3956 } 3957 3958 // ProxiesSSH informs that AI agent can SSH into alerting resource using 3959 // proxies service, standard SSH connectivity messages. It is assumed 3960 // that some process on alerting resource is connected to proxies 3961 // exposing SSH tunnel. Refer to Connect method in Proxies. 3962 type PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH struct { 3963 state protoimpl.MessageState 3964 sizeCache protoimpl.SizeCache 3965 unknownFields protoimpl.UnknownFields 3966 // Service domain to use in Connect request. 3967 ServiceDomain string `protobuf:"bytes,1,opt,name=service_domain,json=serviceDomain,proto3" json:"service_domain,omitempty"` 3968 // Provider name template to use in Connect request. 3969 // All substrings <$LABEL_KEY> will be replaced according to the 3970 // resource_identity.labels field, plus special <project_id> and 3971 // <region_id>. 3972 ProviderNameTmpl string `protobuf:"bytes,2,opt,name=provider_name_tmpl,json=providerNameTmpl,proto3" json:"provider_name_tmpl,omitempty"` 3973 // Client name for self-identification. Can be any unique name like 3974 // "llm-alerting-agent". 3975 ClientName string `protobuf:"bytes,3,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` 3976 // Service name to use in Connect request. 3977 ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` 3978 } 3979 3980 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) Reset() { 3981 *m = PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH{} 3982 if protoimpl.UnsafeEnabled { 3983 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[26] 3984 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3985 ms.StoreMessageInfo(mi) 3986 } 3987 } 3988 3989 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) String() string { 3990 return protoimpl.X.MessageStringOf(m) 3991 } 3992 3993 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) ProtoMessage() {} 3994 3995 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) ProtoReflect() preflect.Message { 3996 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[26] 3997 if protoimpl.UnsafeEnabled && m != nil { 3998 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 3999 if ms.LoadMessageInfo() == nil { 4000 ms.StoreMessageInfo(mi) 4001 } 4002 return ms 4003 } 4004 return mi.MessageOf(m) 4005 } 4006 4007 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) GotenMessage() {} 4008 4009 // Deprecated, Use PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH.ProtoReflect.Descriptor instead. 4010 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) Descriptor() ([]byte, []int) { 4011 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 0, 1} 4012 } 4013 4014 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) Unmarshal(b []byte) error { 4015 return proto.Unmarshal(b, m) 4016 } 4017 4018 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) Marshal() ([]byte, error) { 4019 return proto.Marshal(m) 4020 } 4021 4022 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) MarshalJSON() ([]byte, error) { 4023 return protojson.MarshalOptions{}.Marshal(m) 4024 } 4025 4026 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) UnmarshalJSON(data []byte) error { 4027 return protojson.Unmarshal(data, m) 4028 } 4029 4030 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) GetServiceDomain() string { 4031 if m != nil { 4032 return m.ServiceDomain 4033 } 4034 return "" 4035 } 4036 4037 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) GetProviderNameTmpl() string { 4038 if m != nil { 4039 return m.ProviderNameTmpl 4040 } 4041 return "" 4042 } 4043 4044 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) GetClientName() string { 4045 if m != nil { 4046 return m.ClientName 4047 } 4048 return "" 4049 } 4050 4051 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) GetServiceName() string { 4052 if m != nil { 4053 return m.ServiceName 4054 } 4055 return "" 4056 } 4057 4058 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) SetServiceDomain(fv string) { 4059 if m == nil { 4060 panic(fmt.Errorf("can't set %s on nil %s", "ServiceDomain", "PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH")) 4061 } 4062 m.ServiceDomain = fv 4063 } 4064 4065 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) SetProviderNameTmpl(fv string) { 4066 if m == nil { 4067 panic(fmt.Errorf("can't set %s on nil %s", "ProviderNameTmpl", "PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH")) 4068 } 4069 m.ProviderNameTmpl = fv 4070 } 4071 4072 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) SetClientName(fv string) { 4073 if m == nil { 4074 panic(fmt.Errorf("can't set %s on nil %s", "ClientName", "PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH")) 4075 } 4076 m.ClientName = fv 4077 } 4078 4079 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH) SetServiceName(fv string) { 4080 if m == nil { 4081 panic(fmt.Errorf("can't set %s on nil %s", "ServiceName", "PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH")) 4082 } 4083 m.ServiceName = fv 4084 } 4085 4086 // PodSSH can be used if application is running as a Pod supported by 4087 // droplet. 4088 // TODO: Not implemented 4089 type PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH struct { 4090 state protoimpl.MessageState 4091 sizeCache protoimpl.SizeCache 4092 unknownFields protoimpl.UnknownFields 4093 // Client name for self-identification. Can be any unique name like 4094 // "llm-alerting-agent". 4095 ClientName string `protobuf:"bytes,1,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` 4096 // Username to use. 4097 Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` 4098 } 4099 4100 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) Reset() { 4101 *m = PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH{} 4102 if protoimpl.UnsafeEnabled { 4103 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[27] 4104 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4105 ms.StoreMessageInfo(mi) 4106 } 4107 } 4108 4109 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) String() string { 4110 return protoimpl.X.MessageStringOf(m) 4111 } 4112 4113 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) ProtoMessage() {} 4114 4115 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) ProtoReflect() preflect.Message { 4116 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[27] 4117 if protoimpl.UnsafeEnabled && m != nil { 4118 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4119 if ms.LoadMessageInfo() == nil { 4120 ms.StoreMessageInfo(mi) 4121 } 4122 return ms 4123 } 4124 return mi.MessageOf(m) 4125 } 4126 4127 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) GotenMessage() {} 4128 4129 // Deprecated, Use PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH.ProtoReflect.Descriptor instead. 4130 func (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) Descriptor() ([]byte, []int) { 4131 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 0, 2} 4132 } 4133 4134 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) Unmarshal(b []byte) error { 4135 return proto.Unmarshal(b, m) 4136 } 4137 4138 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) Marshal() ([]byte, error) { 4139 return proto.Marshal(m) 4140 } 4141 4142 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) MarshalJSON() ([]byte, error) { 4143 return protojson.MarshalOptions{}.Marshal(m) 4144 } 4145 4146 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) UnmarshalJSON(data []byte) error { 4147 return protojson.Unmarshal(data, m) 4148 } 4149 4150 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) GetClientName() string { 4151 if m != nil { 4152 return m.ClientName 4153 } 4154 return "" 4155 } 4156 4157 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) GetUsername() string { 4158 if m != nil { 4159 return m.Username 4160 } 4161 return "" 4162 } 4163 4164 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) SetClientName(fv string) { 4165 if m == nil { 4166 panic(fmt.Errorf("can't set %s on nil %s", "ClientName", "PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH")) 4167 } 4168 m.ClientName = fv 4169 } 4170 4171 func (m *PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH) SetUsername(fv string) { 4172 if m == nil { 4173 panic(fmt.Errorf("can't set %s on nil %s", "Username", "PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH")) 4174 } 4175 m.Username = fv 4176 } 4177 4178 // FixInSSH declares that issue should be fixed using SSH shell. 4179 // AI Agent should provide a command to execute in shell. 4180 // This option can be used only if EdgeConnectivity is specified. 4181 type PolicySpec_AIAgentHandling_Remediation_FixInSSH struct { 4182 state protoimpl.MessageState 4183 sizeCache protoimpl.SizeCache 4184 unknownFields protoimpl.UnknownFields 4185 } 4186 4187 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) Reset() { 4188 *m = PolicySpec_AIAgentHandling_Remediation_FixInSSH{} 4189 if protoimpl.UnsafeEnabled { 4190 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[28] 4191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4192 ms.StoreMessageInfo(mi) 4193 } 4194 } 4195 4196 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) String() string { 4197 return protoimpl.X.MessageStringOf(m) 4198 } 4199 4200 func (*PolicySpec_AIAgentHandling_Remediation_FixInSSH) ProtoMessage() {} 4201 4202 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) ProtoReflect() preflect.Message { 4203 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[28] 4204 if protoimpl.UnsafeEnabled && m != nil { 4205 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4206 if ms.LoadMessageInfo() == nil { 4207 ms.StoreMessageInfo(mi) 4208 } 4209 return ms 4210 } 4211 return mi.MessageOf(m) 4212 } 4213 4214 func (*PolicySpec_AIAgentHandling_Remediation_FixInSSH) GotenMessage() {} 4215 4216 // Deprecated, Use PolicySpec_AIAgentHandling_Remediation_FixInSSH.ProtoReflect.Descriptor instead. 4217 func (*PolicySpec_AIAgentHandling_Remediation_FixInSSH) Descriptor() ([]byte, []int) { 4218 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 1, 0} 4219 } 4220 4221 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) Unmarshal(b []byte) error { 4222 return proto.Unmarshal(b, m) 4223 } 4224 4225 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) Marshal() ([]byte, error) { 4226 return proto.Marshal(m) 4227 } 4228 4229 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) MarshalJSON() ([]byte, error) { 4230 return protojson.MarshalOptions{}.Marshal(m) 4231 } 4232 4233 func (m *PolicySpec_AIAgentHandling_Remediation_FixInSSH) UnmarshalJSON(data []byte) error { 4234 return protojson.Unmarshal(data, m) 4235 } 4236 4237 // Reboot is a special type of remediation applicable only and only 4238 // for pods -> it is necessary to provide LabelInfo with pod_id key. 4239 // Pod will be restarted to remediate an issue. 4240 type PolicySpec_AIAgentHandling_Remediation_Reboot struct { 4241 state protoimpl.MessageState 4242 sizeCache protoimpl.SizeCache 4243 unknownFields protoimpl.UnknownFields 4244 } 4245 4246 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) Reset() { 4247 *m = PolicySpec_AIAgentHandling_Remediation_Reboot{} 4248 if protoimpl.UnsafeEnabled { 4249 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[29] 4250 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4251 ms.StoreMessageInfo(mi) 4252 } 4253 } 4254 4255 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) String() string { 4256 return protoimpl.X.MessageStringOf(m) 4257 } 4258 4259 func (*PolicySpec_AIAgentHandling_Remediation_Reboot) ProtoMessage() {} 4260 4261 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) ProtoReflect() preflect.Message { 4262 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[29] 4263 if protoimpl.UnsafeEnabled && m != nil { 4264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4265 if ms.LoadMessageInfo() == nil { 4266 ms.StoreMessageInfo(mi) 4267 } 4268 return ms 4269 } 4270 return mi.MessageOf(m) 4271 } 4272 4273 func (*PolicySpec_AIAgentHandling_Remediation_Reboot) GotenMessage() {} 4274 4275 // Deprecated, Use PolicySpec_AIAgentHandling_Remediation_Reboot.ProtoReflect.Descriptor instead. 4276 func (*PolicySpec_AIAgentHandling_Remediation_Reboot) Descriptor() ([]byte, []int) { 4277 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{2, 2, 1, 1} 4278 } 4279 4280 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) Unmarshal(b []byte) error { 4281 return proto.Unmarshal(b, m) 4282 } 4283 4284 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) Marshal() ([]byte, error) { 4285 return proto.Marshal(m) 4286 } 4287 4288 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) MarshalJSON() ([]byte, error) { 4289 return protojson.MarshalOptions{}.Marshal(m) 4290 } 4291 4292 func (m *PolicySpec_AIAgentHandling_Remediation_Reboot) UnmarshalJSON(data []byte) error { 4293 return protojson.Unmarshal(data, m) 4294 } 4295 4296 // Email Spec 4297 type NotificationChannelSpec_Email struct { 4298 state protoimpl.MessageState 4299 sizeCache protoimpl.SizeCache 4300 unknownFields protoimpl.UnknownFields 4301 // Email Addresses 4302 Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` 4303 } 4304 4305 func (m *NotificationChannelSpec_Email) Reset() { 4306 *m = NotificationChannelSpec_Email{} 4307 if protoimpl.UnsafeEnabled { 4308 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[30] 4309 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4310 ms.StoreMessageInfo(mi) 4311 } 4312 } 4313 4314 func (m *NotificationChannelSpec_Email) String() string { 4315 return protoimpl.X.MessageStringOf(m) 4316 } 4317 4318 func (*NotificationChannelSpec_Email) ProtoMessage() {} 4319 4320 func (m *NotificationChannelSpec_Email) ProtoReflect() preflect.Message { 4321 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[30] 4322 if protoimpl.UnsafeEnabled && m != nil { 4323 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4324 if ms.LoadMessageInfo() == nil { 4325 ms.StoreMessageInfo(mi) 4326 } 4327 return ms 4328 } 4329 return mi.MessageOf(m) 4330 } 4331 4332 func (*NotificationChannelSpec_Email) GotenMessage() {} 4333 4334 // Deprecated, Use NotificationChannelSpec_Email.ProtoReflect.Descriptor instead. 4335 func (*NotificationChannelSpec_Email) Descriptor() ([]byte, []int) { 4336 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 0} 4337 } 4338 4339 func (m *NotificationChannelSpec_Email) Unmarshal(b []byte) error { 4340 return proto.Unmarshal(b, m) 4341 } 4342 4343 func (m *NotificationChannelSpec_Email) Marshal() ([]byte, error) { 4344 return proto.Marshal(m) 4345 } 4346 4347 func (m *NotificationChannelSpec_Email) MarshalJSON() ([]byte, error) { 4348 return protojson.MarshalOptions{}.Marshal(m) 4349 } 4350 4351 func (m *NotificationChannelSpec_Email) UnmarshalJSON(data []byte) error { 4352 return protojson.Unmarshal(data, m) 4353 } 4354 4355 func (m *NotificationChannelSpec_Email) GetAddresses() []string { 4356 if m != nil { 4357 return m.Addresses 4358 } 4359 return nil 4360 } 4361 4362 func (m *NotificationChannelSpec_Email) SetAddresses(fv []string) { 4363 if m == nil { 4364 panic(fmt.Errorf("can't set %s on nil %s", "Addresses", "NotificationChannelSpec_Email")) 4365 } 4366 m.Addresses = fv 4367 } 4368 4369 // Slack Spec 4370 type NotificationChannelSpec_Slack struct { 4371 state protoimpl.MessageState 4372 sizeCache protoimpl.SizeCache 4373 unknownFields protoimpl.UnknownFields 4374 // Slack Incoming Webhook URL 4375 IncomingWebhook string `protobuf:"bytes,1,opt,name=incoming_webhook,json=incomingWebhook,proto3" json:"incoming_webhook,omitempty"` 4376 } 4377 4378 func (m *NotificationChannelSpec_Slack) Reset() { 4379 *m = NotificationChannelSpec_Slack{} 4380 if protoimpl.UnsafeEnabled { 4381 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[31] 4382 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4383 ms.StoreMessageInfo(mi) 4384 } 4385 } 4386 4387 func (m *NotificationChannelSpec_Slack) String() string { 4388 return protoimpl.X.MessageStringOf(m) 4389 } 4390 4391 func (*NotificationChannelSpec_Slack) ProtoMessage() {} 4392 4393 func (m *NotificationChannelSpec_Slack) ProtoReflect() preflect.Message { 4394 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[31] 4395 if protoimpl.UnsafeEnabled && m != nil { 4396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4397 if ms.LoadMessageInfo() == nil { 4398 ms.StoreMessageInfo(mi) 4399 } 4400 return ms 4401 } 4402 return mi.MessageOf(m) 4403 } 4404 4405 func (*NotificationChannelSpec_Slack) GotenMessage() {} 4406 4407 // Deprecated, Use NotificationChannelSpec_Slack.ProtoReflect.Descriptor instead. 4408 func (*NotificationChannelSpec_Slack) Descriptor() ([]byte, []int) { 4409 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 1} 4410 } 4411 4412 func (m *NotificationChannelSpec_Slack) Unmarshal(b []byte) error { 4413 return proto.Unmarshal(b, m) 4414 } 4415 4416 func (m *NotificationChannelSpec_Slack) Marshal() ([]byte, error) { 4417 return proto.Marshal(m) 4418 } 4419 4420 func (m *NotificationChannelSpec_Slack) MarshalJSON() ([]byte, error) { 4421 return protojson.MarshalOptions{}.Marshal(m) 4422 } 4423 4424 func (m *NotificationChannelSpec_Slack) UnmarshalJSON(data []byte) error { 4425 return protojson.Unmarshal(data, m) 4426 } 4427 4428 func (m *NotificationChannelSpec_Slack) GetIncomingWebhook() string { 4429 if m != nil { 4430 return m.IncomingWebhook 4431 } 4432 return "" 4433 } 4434 4435 func (m *NotificationChannelSpec_Slack) SetIncomingWebhook(fv string) { 4436 if m == nil { 4437 panic(fmt.Errorf("can't set %s on nil %s", "IncomingWebhook", "NotificationChannelSpec_Slack")) 4438 } 4439 m.IncomingWebhook = fv 4440 } 4441 4442 // PagerDuty Spec 4443 type NotificationChannelSpec_PagerDuty struct { 4444 state protoimpl.MessageState 4445 sizeCache protoimpl.SizeCache 4446 unknownFields protoimpl.UnknownFields 4447 // PagerDuty Service Key 4448 ServiceKey string `protobuf:"bytes,1,opt,name=service_key,json=serviceKey,proto3" json:"service_key,omitempty"` 4449 } 4450 4451 func (m *NotificationChannelSpec_PagerDuty) Reset() { 4452 *m = NotificationChannelSpec_PagerDuty{} 4453 if protoimpl.UnsafeEnabled { 4454 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[32] 4455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4456 ms.StoreMessageInfo(mi) 4457 } 4458 } 4459 4460 func (m *NotificationChannelSpec_PagerDuty) String() string { 4461 return protoimpl.X.MessageStringOf(m) 4462 } 4463 4464 func (*NotificationChannelSpec_PagerDuty) ProtoMessage() {} 4465 4466 func (m *NotificationChannelSpec_PagerDuty) ProtoReflect() preflect.Message { 4467 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[32] 4468 if protoimpl.UnsafeEnabled && m != nil { 4469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4470 if ms.LoadMessageInfo() == nil { 4471 ms.StoreMessageInfo(mi) 4472 } 4473 return ms 4474 } 4475 return mi.MessageOf(m) 4476 } 4477 4478 func (*NotificationChannelSpec_PagerDuty) GotenMessage() {} 4479 4480 // Deprecated, Use NotificationChannelSpec_PagerDuty.ProtoReflect.Descriptor instead. 4481 func (*NotificationChannelSpec_PagerDuty) Descriptor() ([]byte, []int) { 4482 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 2} 4483 } 4484 4485 func (m *NotificationChannelSpec_PagerDuty) Unmarshal(b []byte) error { 4486 return proto.Unmarshal(b, m) 4487 } 4488 4489 func (m *NotificationChannelSpec_PagerDuty) Marshal() ([]byte, error) { 4490 return proto.Marshal(m) 4491 } 4492 4493 func (m *NotificationChannelSpec_PagerDuty) MarshalJSON() ([]byte, error) { 4494 return protojson.MarshalOptions{}.Marshal(m) 4495 } 4496 4497 func (m *NotificationChannelSpec_PagerDuty) UnmarshalJSON(data []byte) error { 4498 return protojson.Unmarshal(data, m) 4499 } 4500 4501 func (m *NotificationChannelSpec_PagerDuty) GetServiceKey() string { 4502 if m != nil { 4503 return m.ServiceKey 4504 } 4505 return "" 4506 } 4507 4508 func (m *NotificationChannelSpec_PagerDuty) SetServiceKey(fv string) { 4509 if m == nil { 4510 panic(fmt.Errorf("can't set %s on nil %s", "ServiceKey", "NotificationChannelSpec_PagerDuty")) 4511 } 4512 m.ServiceKey = fv 4513 } 4514 4515 // Webhook Spec 4516 type NotificationChannelSpec_Webhook struct { 4517 state protoimpl.MessageState 4518 sizeCache protoimpl.SizeCache 4519 unknownFields protoimpl.UnknownFields 4520 // Webhook URL 4521 Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` 4522 // Headers 4523 Headers []*NotificationChannelSpec_Webhook_Header `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` 4524 // default is 0 means all the alerts in a notification are sent in single 4525 // request. Breaking into multiple messages may be significantly slower 4526 // than sending a single message. 4527 // For example, to use 250KB chunks, set 0.25 MB 4528 MaxMessageSizeMb float64 `protobuf:"fixed64,5,opt,name=max_message_size_mb,json=maxMessageSizeMb,proto3" json:"max_message_size_mb,omitempty"` 4529 } 4530 4531 func (m *NotificationChannelSpec_Webhook) Reset() { 4532 *m = NotificationChannelSpec_Webhook{} 4533 if protoimpl.UnsafeEnabled { 4534 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[33] 4535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4536 ms.StoreMessageInfo(mi) 4537 } 4538 } 4539 4540 func (m *NotificationChannelSpec_Webhook) String() string { 4541 return protoimpl.X.MessageStringOf(m) 4542 } 4543 4544 func (*NotificationChannelSpec_Webhook) ProtoMessage() {} 4545 4546 func (m *NotificationChannelSpec_Webhook) ProtoReflect() preflect.Message { 4547 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[33] 4548 if protoimpl.UnsafeEnabled && m != nil { 4549 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4550 if ms.LoadMessageInfo() == nil { 4551 ms.StoreMessageInfo(mi) 4552 } 4553 return ms 4554 } 4555 return mi.MessageOf(m) 4556 } 4557 4558 func (*NotificationChannelSpec_Webhook) GotenMessage() {} 4559 4560 // Deprecated, Use NotificationChannelSpec_Webhook.ProtoReflect.Descriptor instead. 4561 func (*NotificationChannelSpec_Webhook) Descriptor() ([]byte, []int) { 4562 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 3} 4563 } 4564 4565 func (m *NotificationChannelSpec_Webhook) Unmarshal(b []byte) error { 4566 return proto.Unmarshal(b, m) 4567 } 4568 4569 func (m *NotificationChannelSpec_Webhook) Marshal() ([]byte, error) { 4570 return proto.Marshal(m) 4571 } 4572 4573 func (m *NotificationChannelSpec_Webhook) MarshalJSON() ([]byte, error) { 4574 return protojson.MarshalOptions{}.Marshal(m) 4575 } 4576 4577 func (m *NotificationChannelSpec_Webhook) UnmarshalJSON(data []byte) error { 4578 return protojson.Unmarshal(data, m) 4579 } 4580 4581 func (m *NotificationChannelSpec_Webhook) GetUrl() string { 4582 if m != nil { 4583 return m.Url 4584 } 4585 return "" 4586 } 4587 4588 func (m *NotificationChannelSpec_Webhook) GetHeaders() []*NotificationChannelSpec_Webhook_Header { 4589 if m != nil { 4590 return m.Headers 4591 } 4592 return nil 4593 } 4594 4595 func (m *NotificationChannelSpec_Webhook) GetMaxMessageSizeMb() float64 { 4596 if m != nil { 4597 return m.MaxMessageSizeMb 4598 } 4599 return float64(0) 4600 } 4601 4602 func (m *NotificationChannelSpec_Webhook) SetUrl(fv string) { 4603 if m == nil { 4604 panic(fmt.Errorf("can't set %s on nil %s", "Url", "NotificationChannelSpec_Webhook")) 4605 } 4606 m.Url = fv 4607 } 4608 4609 func (m *NotificationChannelSpec_Webhook) SetHeaders(fv []*NotificationChannelSpec_Webhook_Header) { 4610 if m == nil { 4611 panic(fmt.Errorf("can't set %s on nil %s", "Headers", "NotificationChannelSpec_Webhook")) 4612 } 4613 m.Headers = fv 4614 } 4615 4616 func (m *NotificationChannelSpec_Webhook) SetMaxMessageSizeMb(fv float64) { 4617 if m == nil { 4618 panic(fmt.Errorf("can't set %s on nil %s", "MaxMessageSizeMb", "NotificationChannelSpec_Webhook")) 4619 } 4620 m.MaxMessageSizeMb = fv 4621 } 4622 4623 // Header 4624 type NotificationChannelSpec_Webhook_Header struct { 4625 state protoimpl.MessageState 4626 sizeCache protoimpl.SizeCache 4627 unknownFields protoimpl.UnknownFields 4628 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 4629 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 4630 } 4631 4632 func (m *NotificationChannelSpec_Webhook_Header) Reset() { 4633 *m = NotificationChannelSpec_Webhook_Header{} 4634 if protoimpl.UnsafeEnabled { 4635 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[34] 4636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4637 ms.StoreMessageInfo(mi) 4638 } 4639 } 4640 4641 func (m *NotificationChannelSpec_Webhook_Header) String() string { 4642 return protoimpl.X.MessageStringOf(m) 4643 } 4644 4645 func (*NotificationChannelSpec_Webhook_Header) ProtoMessage() {} 4646 4647 func (m *NotificationChannelSpec_Webhook_Header) ProtoReflect() preflect.Message { 4648 mi := &edgelq_alerting_proto_v1_specs_proto_msgTypes[34] 4649 if protoimpl.UnsafeEnabled && m != nil { 4650 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(m)) 4651 if ms.LoadMessageInfo() == nil { 4652 ms.StoreMessageInfo(mi) 4653 } 4654 return ms 4655 } 4656 return mi.MessageOf(m) 4657 } 4658 4659 func (*NotificationChannelSpec_Webhook_Header) GotenMessage() {} 4660 4661 // Deprecated, Use NotificationChannelSpec_Webhook_Header.ProtoReflect.Descriptor instead. 4662 func (*NotificationChannelSpec_Webhook_Header) Descriptor() ([]byte, []int) { 4663 return edgelq_alerting_proto_v1_specs_proto_rawDescGZIP(), []int{3, 3, 0} 4664 } 4665 4666 func (m *NotificationChannelSpec_Webhook_Header) Unmarshal(b []byte) error { 4667 return proto.Unmarshal(b, m) 4668 } 4669 4670 func (m *NotificationChannelSpec_Webhook_Header) Marshal() ([]byte, error) { 4671 return proto.Marshal(m) 4672 } 4673 4674 func (m *NotificationChannelSpec_Webhook_Header) MarshalJSON() ([]byte, error) { 4675 return protojson.MarshalOptions{}.Marshal(m) 4676 } 4677 4678 func (m *NotificationChannelSpec_Webhook_Header) UnmarshalJSON(data []byte) error { 4679 return protojson.Unmarshal(data, m) 4680 } 4681 4682 func (m *NotificationChannelSpec_Webhook_Header) GetKey() string { 4683 if m != nil { 4684 return m.Key 4685 } 4686 return "" 4687 } 4688 4689 func (m *NotificationChannelSpec_Webhook_Header) GetValue() string { 4690 if m != nil { 4691 return m.Value 4692 } 4693 return "" 4694 } 4695 4696 func (m *NotificationChannelSpec_Webhook_Header) SetKey(fv string) { 4697 if m == nil { 4698 panic(fmt.Errorf("can't set %s on nil %s", "Key", "NotificationChannelSpec_Webhook_Header")) 4699 } 4700 m.Key = fv 4701 } 4702 4703 func (m *NotificationChannelSpec_Webhook_Header) SetValue(fv string) { 4704 if m == nil { 4705 panic(fmt.Errorf("can't set %s on nil %s", "Value", "NotificationChannelSpec_Webhook_Header")) 4706 } 4707 m.Value = fv 4708 } 4709 4710 var edgelq_alerting_proto_v1_specs_proto preflect.FileDescriptor 4711 4712 var edgelq_alerting_proto_v1_specs_proto_rawDesc = []byte{ 4713 0x0a, 0x24, 0x65, 0x64, 0x67, 0x65, 0x6c, 0x71, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 4714 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 4715 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 4716 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 4717 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 4718 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 4719 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 4720 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 4721 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2e, 0x70, 0x72, 4722 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 4723 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 4724 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 4725 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 4726 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 4727 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 4728 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 4729 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x72, 4730 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x64, 0x67, 4731 0x65, 0x6c, 0x71, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 4732 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4733 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 4734 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4735 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 4736 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 4737 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 4738 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x65, 0x64, 0x67, 4739 0x65, 0x6c, 0x71, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x70, 4740 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 4741 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x08, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 4742 0x70, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 4743 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 4744 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 4745 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x62, 0x02, 0x08, 0x01, 0x52, 4746 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 4747 0x62, 0x79, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 4748 0x10, 0xca, 0xc6, 0x27, 0x0c, 0x42, 0x0a, 0x0a, 0x02, 0x08, 0x01, 0x12, 0x02, 0x08, 0x08, 0x18, 4749 0x01, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 4750 0x1a, 0xc7, 0x07, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 4751 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xb2, 0xda, 0x21, 0x1a, 4752 0x1a, 0x18, 0x0a, 0x16, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x65, 0x64, 0x67, 0x65, 4753 0x6c, 0x71, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x67, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 4754 0x65, 0x72, 0x12, 0x50, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x03, 0x20, 4755 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 4756 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 4757 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6e, 4758 0x64, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x62, 0x02, 0x08, 0x01, 0x52, 0x07, 0x74, 0x72, 0x69, 4759 0x67, 0x67, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 4760 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 4761 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 4762 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0xca, 0xc6, 0x27, 0x06, 0x5a, 0x04, 0x32, 0x02, 0x08, 4763 0x3c, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x63, 4764 0x0a, 0x0c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 4765 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 4766 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 4767 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x1b, 4768 0xca, 0xc6, 0x27, 0x17, 0x42, 0x15, 0x0a, 0x02, 0x08, 0x01, 0x12, 0x02, 0x08, 0x19, 0x18, 0x01, 4769 0x22, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x01, 0x68, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 4770 0x75, 0x65, 0x73, 0x1a, 0x71, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 4771 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0f, 0x6f, 4772 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 4773 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x32, 0x00, 0x3a, 0x02, 4774 0x08, 0x40, 0x52, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 4775 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 4776 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 4777 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x1a, 0xf7, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 4778 0x73, 0x69, 0x74, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x08, 0x74, 4779 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 4780 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 4781 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 4782 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6e, 0x64, 0x42, 0x0a, 0xca, 0xc6, 0x27, 4783 0x06, 0x42, 0x04, 0x12, 0x02, 0x08, 0x08, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 4784 0x73, 0x12, 0x61, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 4785 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 4786 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 4787 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 4788 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 4789 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x3a, 0x02, 0x10, 0x01, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 4790 0x61, 0x74, 0x6f, 0x72, 0x22, 0x2a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 4791 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 4792 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x02, 4793 0x1a, 0x97, 0x02, 0x0a, 0x0a, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6e, 0x64, 0x12, 4794 0x46, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 4795 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 4796 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 4797 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x48, 0x00, 4798 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x5f, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 4799 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 4800 0x36, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 4801 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, 0x65, 4802 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 4803 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 4804 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 4805 0x6f, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6e, 0x74, 4806 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 4807 0x67, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 4808 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x48, 4809 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x3a, 0x04, 0xe8, 0xde, 4810 0x21, 0x00, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe9, 0x15, 0x0a, 0x09, 0x54, 4811 0x73, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4a, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 4812 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 4813 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x73, 0x43, 0x6e, 4814 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0e, 0xca, 0xc6, 0x27, 4815 0x0a, 0x42, 0x08, 0x0a, 0x02, 0x08, 0x01, 0x12, 0x02, 0x08, 0x10, 0x52, 0x07, 0x71, 0x75, 0x65, 4816 0x72, 0x69, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x67, 0x72, 4817 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0e, 0xca, 0xc6, 4818 0x27, 0x0a, 0x42, 0x08, 0x0a, 0x00, 0x12, 0x02, 0x08, 0x08, 0x18, 0x01, 0x52, 0x0c, 0x71, 0x75, 4819 0x65, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x68, 0x0a, 0x12, 0x74, 0x68, 4820 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 4821 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 4822 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x73, 0x43, 0x6e, 0x64, 0x53, 0x70, 4823 0x65, 0x63, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x65, 0x72, 4824 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x62, 0x02, 0x08, 4825 0x01, 0x52, 0x11, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x65, 0x72, 4826 0x74, 0x69, 0x6e, 0x67, 0x12, 0x66, 0x0a, 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 4827 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 4828 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 4829 0x2e, 0x54, 0x73, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 4830 0x6c, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x42, 0x0c, 0xca, 4831 0xc6, 0x27, 0x08, 0x42, 0x06, 0x0a, 0x00, 0x12, 0x02, 0x08, 0x04, 0x52, 0x0f, 0x61, 0x6e, 0x6f, 4832 0x6d, 0x61, 0x6c, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x8c, 0x02, 0x0a, 4833 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 4834 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 4835 0x02, 0x68, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x66, 0x69, 0x6c, 4836 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xb2, 0xda, 0x21, 0x23, 0x1a, 4837 0x21, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x65, 0x64, 4838 0x67, 0x65, 0x6c, 0x71, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 4839 0x69, 0x65, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x6c, 4840 0x69, 0x67, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6e, 0x74, 4841 0x74, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x34, 0x2e, 4842 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x69, 0x67, 4843 0x6e, 0x65, 0x72, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x07, 4844 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 4845 0x6e, 0x74, 0x74, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 4846 0x34, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 4847 0x64, 0x75, 0x63, 0x65, 0x72, 0x52, 0x07, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x72, 0x12, 0x1b, 4848 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 4849 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x86, 0x08, 0x0a, 0x14, 4850 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 4851 0x67, 0x43, 0x66, 0x67, 0x12, 0x5e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 4852 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 4853 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x73, 0x43, 0x6e, 0x64, 0x53, 0x70, 4854 0x65, 0x63, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x65, 0x72, 4855 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 4856 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x3a, 0x02, 0x10, 0x01, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 4857 0x61, 0x74, 0x6f, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 4858 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 4859 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 4860 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x3a, 0xca, 0xc6, 0x27, 0x36, 4861 0x5a, 0x34, 0x3a, 0x02, 0x08, 0x3c, 0x3a, 0x03, 0x08, 0xb4, 0x01, 0x3a, 0x03, 0x08, 0xac, 0x02, 4862 0x3a, 0x03, 0x08, 0x84, 0x07, 0x3a, 0x03, 0x08, 0x88, 0x0e, 0x3a, 0x03, 0x08, 0x90, 0x1c, 0x3a, 4863 0x03, 0x08, 0xb0, 0x54, 0x3a, 0x04, 0x08, 0xe0, 0xa8, 0x01, 0x3a, 0x04, 0x08, 0xc0, 0xd1, 0x02, 4864 0x3a, 0x04, 0x08, 0x80, 0xa3, 0x05, 0x52, 0x0f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 4865 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x61, 0x69, 0x73, 0x65, 4866 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 4867 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 4868 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x5a, 0x02, 0x2a, 4869 0x00, 0x52, 0x0a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 4870 0x0d, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x04, 4871 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 4872 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 4873 0x0c, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x74, 0x0a, 4874 0x14, 0x70, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 4875 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6e, 0x74, 4876 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x73, 4877 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 4878 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x2e, 0x41, 0x6c, 0x65, 4879 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x52, 4880 0x12, 0x70, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 4881 0x6c, 0x64, 0x73, 0x12, 0x74, 0x0a, 0x24, 0x61, 0x64, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x5f, 4882 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 4883 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 4884 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4885 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xca, 0xc6, 4886 0x27, 0x04, 0x5a, 0x02, 0x32, 0x00, 0x52, 0x21, 0x61, 0x64, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 4887 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 4888 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xec, 0x02, 0x0a, 0x12, 0x41, 0x6c, 4889 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 4890 0x12, 0x28, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x5f, 0x75, 4891 0x70, 0x70, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 4892 0x41, 0x64, 0x61, 0x70, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x75, 4893 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 4894 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x61, 0x70, 0x74, 0x4c, 4895 0x6f, 0x77, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x70, 0x70, 0x65, 4896 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 4897 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 4898 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x08, 0x6d, 0x61, 0x78, 4899 0x55, 0x70, 0x70, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x77, 4900 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 4901 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 4902 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x08, 0x6d, 0x61, 4903 0x78, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x70, 4904 0x70, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 4905 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 4906 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x08, 0x6d, 4907 0x69, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 4908 0x6f, 0x77, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x74, 0x74, 4909 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 4910 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x08, 4911 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x2a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 4912 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 4913 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 4914 0x4f, 0x52, 0x10, 0x02, 0x1a, 0xef, 0x08, 0x0a, 0x12, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 4915 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x12, 0x4f, 0x0a, 0x0f, 0x61, 4916 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 4917 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 4918 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 4919 0x0b, 0xca, 0xc6, 0x27, 0x07, 0x5a, 0x05, 0x32, 0x03, 0x08, 0x88, 0x0e, 0x52, 0x0e, 0x61, 0x6e, 4920 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x4b, 0x0a, 0x0d, 4921 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 4922 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 4923 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 4924 0xca, 0xc6, 0x27, 0x07, 0x5a, 0x05, 0x32, 0x03, 0x08, 0xac, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x65, 4925 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x56, 0x0a, 0x13, 0x74, 0x72, 0x61, 4926 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 4927 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4928 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 4929 0x6e, 0x42, 0x0b, 0xca, 0xc6, 0x27, 0x07, 0x5a, 0x05, 0x32, 0x03, 0x08, 0xac, 0x02, 0x52, 0x11, 4930 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 4931 0x6c, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 4932 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 4933 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 4934 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x3a, 0xca, 0xc6, 0x27, 0x36, 0x5a, 0x34, 0x3a, 4935 0x02, 0x08, 0x3c, 0x3a, 0x03, 0x08, 0xb4, 0x01, 0x3a, 0x03, 0x08, 0xac, 0x02, 0x3a, 0x03, 0x08, 4936 0x84, 0x07, 0x3a, 0x03, 0x08, 0x88, 0x0e, 0x3a, 0x03, 0x08, 0x90, 0x1c, 0x3a, 0x03, 0x08, 0xb0, 4937 0x54, 0x3a, 0x04, 0x08, 0xe0, 0xa8, 0x01, 0x3a, 0x04, 0x08, 0xc0, 0xd1, 0x02, 0x3a, 0x04, 0x08, 4938 0x80, 0xa3, 0x05, 0x52, 0x0f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x65, 4939 0x72, 0x69, 0x6f, 0x64, 0x12, 0x6a, 0x0a, 0x10, 0x6c, 0x73, 0x74, 0x6d, 0x5f, 0x61, 0x75, 0x74, 4940 0x6f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 4941 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 4942 0x2e, 0x54, 0x73, 0x43, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 4943 0x6c, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x66, 0x67, 0x2e, 0x4c, 0x73, 4944 0x74, 0x6d, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 4945 0x0f, 0x6c, 0x73, 0x74, 0x6d, 0x41, 0x75, 0x74, 0x6f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 4946 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x61, 0x69, 0x73, 0x65, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 4947 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 4948 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4949 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x5a, 0x02, 0x2a, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x69, 0x73, 4950 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 4951 0x65, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 4952 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 4953 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 4954 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x1a, 0xe4, 0x03, 0x0a, 0x0f, 0x4c, 0x73, 0x74, 0x6d, 0x41, 4955 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x0b, 0x68, 0x69, 4956 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 4957 0x0e, 0xca, 0xc6, 0x27, 0x0a, 0x12, 0x08, 0x1a, 0x02, 0x08, 0x40, 0x2a, 0x02, 0x08, 0x08, 0x52, 4958 0x0a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 4959 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 4960 0x09, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x13, 0x6d, 0x61, 4961 0x78, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 4962 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0f, 0xca, 0xc6, 0x27, 0x0b, 0x12, 0x09, 0x1a, 4963 0x03, 0x08, 0x80, 0x08, 0x2a, 0x02, 0x08, 0x20, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x54, 0x72, 0x61, 4964 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x3f, 0x0a, 0x13, 0x6d, 4965 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, 4966 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0f, 0xca, 0xc6, 0x27, 0x0b, 0x12, 0x09, 4967 0x1a, 0x03, 0x08, 0x80, 0x08, 0x2a, 0x02, 0x08, 0x20, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x54, 0x72, 4968 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x3a, 0x0a, 0x19, 4969 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 4970 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 4971 0x17, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 4972 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x69, 4973 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 4974 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4975 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0xca, 0xc6, 4976 0x27, 0x0a, 0x5a, 0x08, 0x08, 0x01, 0x32, 0x04, 0x08, 0x80, 0xa3, 0x05, 0x52, 0x0e, 0x74, 0x72, 4977 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x32, 0x0a, 0x15, 4978 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x66, 0x72, 0x61, 4979 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x63, 0x68, 0x65, 4980 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 4981 0x12, 0x3b, 0x0a, 0x1a, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 4982 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 4983 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x72, 4984 0x63, 0x65, 0x41, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 4985 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0xca, 0x1c, 0x0a, 0x0a, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4986 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 4987 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 4988 0x69, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 4989 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6e, 4990 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 4991 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 4992 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xca, 0xc6, 4993 0x27, 0x04, 0x3a, 0x02, 0x10, 0x01, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 4994 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x11, 0x72, 0x65, 4995 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 4996 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 4997 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 4998 0x65, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 4999 0x69, 0x74, 0x79, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x62, 0x02, 0x08, 0x01, 0x52, 0x10, 0x72, 5000 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 5001 0x5f, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 5002 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x74, 5003 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 5004 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 5005 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x11, 0x73, 5006 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 5007 0x12, 0x46, 0x0a, 0x08, 0x61, 0x69, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 5008 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 5009 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 5010 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x52, 5011 0x07, 0x61, 0x69, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0xad, 0x04, 0x0a, 0x10, 0x52, 0x65, 0x73, 5012 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x4e, 0x0a, 5013 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 5014 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xb2, 0xda, 0x21, 0x1d, 0x12, 0x1b, 5015 0x0a, 0x17, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x67, 0x6f, 0x74, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 5016 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0x05, 0x52, 0x10, 0x61, 0x6c, 0x65, 5017 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5e, 0x0a, 5018 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 5019 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 5020 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 5021 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 5022 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0e, 0xca, 0xc6, 0x27, 0x0a, 0x42, 0x08, 0x0a, 0x02, 0x08, 5023 0x01, 0x12, 0x02, 0x08, 0x08, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x33, 0x0a, 5024 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x03, 5025 0x20, 0x03, 0x28, 0x09, 0x42, 0x0e, 0xca, 0xc6, 0x27, 0x0a, 0x42, 0x08, 0x0a, 0x02, 0x08, 0x01, 5026 0x12, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 5027 0x6e, 0x73, 0x1a, 0xb3, 0x02, 0x0a, 0x09, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 5028 0x12, 0x1e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 5029 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 0x03, 0x6b, 0x65, 0x79, 5030 0x12, 0x73, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 5031 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 5032 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 5033 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 5034 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 5035 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x12, 0xca, 0xc6, 0x27, 0x0e, 0x42, 0x0c, 0x0a, 5036 0x02, 0x08, 0x01, 0x18, 0x01, 0x22, 0x04, 0x3a, 0x02, 0x10, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 5037 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 5038 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 5039 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x01, 0x68, 5040 0x01, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x67, 5041 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x55, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 5042 0x74, 0x65, 0x78, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 5043 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x4c, 0x41, 5044 0x42, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 5045 0x45, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 5046 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x03, 0x1a, 0xe8, 0x09, 0x0a, 0x14, 0x53, 0x75, 0x70, 5047 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 5048 0x79, 0x12, 0x55, 0x0a, 0x08, 0x74, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 5049 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 5050 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 5051 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 5052 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 5053 0x07, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 5054 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6e, 0x74, 5055 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 5056 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 5057 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x6f, 5058 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x51, 0x75, 0x65, 5059 0x72, 0x79, 0x12, 0x65, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x71, 5060 0x75, 0x65, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6e, 0x74, 0x74, 5061 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 5062 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 5063 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x73, 5064 0x74, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 5065 0x74, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x68, 0x0a, 0x0f, 0x72, 0x65, 0x73, 5066 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 5067 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 5068 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 5069 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x51, 5070 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 5071 0x72, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 5072 0x65, 0x72, 0x79, 0x1a, 0xbe, 0x01, 0x0a, 0x07, 0x54, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 5073 0x2f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 5074 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 5075 0x02, 0x68, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 5076 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 5077 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 5078 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 5079 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 5080 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 5081 0x6e, 0x74, 0x74, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5082 0x34, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xca, 5083 0xc6, 0x27, 0x04, 0x62, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 5084 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x73, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 5085 0x12, 0x2f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 5086 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 5087 0x80, 0x02, 0x68, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 5088 0x6e, 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 5089 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 5090 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 5091 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0xea, 0x01, 0x0a, 0x0c, 0x52, 0x65, 5092 0x73, 0x74, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x0b, 0x64, 0x65, 5093 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 5094 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0b, 5095 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x08, 0x65, 5096 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 5097 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x52, 0x03, 0x88, 0x01, 0x01, 0x68, 0x01, 0x52, 0x08, 0x65, 0x6e, 5098 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 5099 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 5100 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0c, 0x70, 0x61, 5101 0x74, 0x68, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x76, 0x69, 5102 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xc6, 0x27, 0x06, 0x2a, 0x04, 5103 0x3a, 0x02, 0x08, 0x20, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x12, 0x2a, 0x0a, 0x0a, 0x66, 0x69, 5104 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 5105 0xca, 0xc6, 0x27, 0x07, 0x2a, 0x05, 0x3a, 0x03, 0x08, 0x80, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 5106 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x1a, 0xa1, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x74, 0x4c, 5107 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 5108 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 5109 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0b, 0x64, 0x65, 5110 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x08, 0x65, 0x6e, 0x64, 5111 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 5112 0x09, 0x2a, 0x07, 0x52, 0x03, 0x88, 0x01, 0x01, 0x68, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 5113 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x6d, 5114 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 5115 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 5116 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 5117 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xc6, 0x27, 0x06, 0x2a, 0x04, 0x3a, 0x02, 5118 0x08, 0x20, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x12, 0x2a, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 5119 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xca, 0xc6, 5120 0x27, 0x07, 0x2a, 0x05, 0x3a, 0x03, 0x08, 0x80, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 5121 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x34, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 5122 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xca, 5123 0xc6, 0x27, 0x07, 0x2a, 0x05, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 5124 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 5125 0x65, 0x72, 0x79, 0x1a, 0xcb, 0x0a, 0x0a, 0x0f, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 5126 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 5127 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 5128 0x64, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 5129 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 5130 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 5131 0x76, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x63, 5132 0x65, 0x70, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 5133 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 5134 0x74, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x11, 5135 0x65, 0x64, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 5136 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 5137 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 5138 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 5139 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 5140 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x10, 0x65, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 5141 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x68, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x65, 0x64, 5142 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 5143 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 5144 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 5145 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 5146 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 5147 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 5148 0x73, 0x1a, 0xf3, 0x05, 0x0a, 0x10, 0x45, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 5149 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 5150 0x5f, 0x73, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6e, 0x74, 0x74, 5151 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 5152 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 5153 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 5154 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 5155 0x53, 0x48, 0x48, 0x00, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x73, 0x68, 0x12, 5156 0x6a, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x02, 5157 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 5158 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 5159 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 5160 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 5161 0x74, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x53, 0x53, 0x48, 0x48, 0x00, 0x52, 5162 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x53, 0x73, 0x68, 0x12, 0x5e, 0x0a, 0x07, 0x70, 5163 0x6f, 0x64, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6e, 5164 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 5165 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 5166 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x43, 0x6f, 5167 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x53, 5168 0x48, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x53, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x61, 5169 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 5170 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x73, 0x1a, 0x3a, 5171 0x0a, 0x09, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x53, 0x48, 0x12, 0x2d, 0x0a, 0x0b, 0x63, 5172 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 5173 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 0x0a, 5174 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xdf, 0x01, 0x0a, 0x0a, 0x50, 5175 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x53, 0x53, 0x48, 0x12, 0x33, 0x0a, 0x0e, 0x73, 0x65, 0x72, 5176 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 5177 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 5178 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x3b, 5179 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 5180 0x74, 0x6d, 0x70, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 5181 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x02, 0x68, 0x01, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 5182 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x12, 0x2d, 0x0a, 0x0b, 0x63, 5183 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 5184 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 0x0a, 5185 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0c, 0x73, 0x65, 5186 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 5187 0x42, 0x0d, 0xca, 0xc6, 0x27, 0x09, 0x2a, 0x07, 0x3a, 0x03, 0x08, 0x80, 0x01, 0x68, 0x01, 0x52, 5188 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x61, 0x0a, 0x06, 5189 0x50, 0x6f, 0x64, 0x53, 0x53, 0x48, 0x12, 0x2d, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 5190 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 5191 0x08, 0x2a, 0x06, 0x3a, 0x02, 0x08, 0x40, 0x68, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 5192 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 5193 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x2a, 0x06, 0x3a, 5194 0x02, 0x08, 0x20, 0x68, 0x01, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42, 5195 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x65, 5196 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x5f, 0x69, 5197 0x6e, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6e, 0x74, 5198 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 5199 0x6c, 0x69, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 5200 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 5201 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x78, 0x49, 0x6e, 0x53, 0x53, 0x48, 0x48, 0x00, 0x52, 5202 0x08, 0x66, 0x69, 0x78, 0x49, 0x6e, 0x53, 0x73, 0x68, 0x12, 0x58, 0x0a, 0x06, 0x72, 0x65, 0x62, 5203 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 5204 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 5205 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x49, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 5206 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 5207 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x62, 5208 0x6f, 0x6f, 0x74, 0x1a, 0x0a, 0x0a, 0x08, 0x46, 0x69, 0x78, 0x49, 0x6e, 0x53, 0x53, 0x48, 0x1a, 5209 0x08, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 5210 0x65, 0x22, 0x3a, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 5211 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 5212 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 5213 0x44, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x44, 0x47, 0x45, 0x10, 0x02, 0x4a, 0x04, 0x08, 5214 0x03, 0x10, 0x04, 0x22, 0xe6, 0x0a, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 5215 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 5216 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 5217 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x79, 0x70, 5218 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 5219 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 5220 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 5221 0x63, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xca, 0xc6, 0x27, 0x04, 0x3a, 0x02, 0x10, 0x01, 5222 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 5223 0x64, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x32, 0x2e, 5224 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 5225 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 5226 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 5227 0x64, 0x42, 0x0c, 0xca, 0xc6, 0x27, 0x08, 0x42, 0x06, 0x22, 0x04, 0x3a, 0x02, 0x10, 0x01, 0x52, 5228 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x44, 0x0a, 5229 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6e, 5230 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 5231 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 5232 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x65, 0x6d, 5233 0x61, 0x69, 0x6c, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 5234 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6e, 0x74, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 5235 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 5236 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x6c, 0x61, 5237 0x63, 0x6b, 0x52, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x07, 0x77, 0x65, 0x62, 5238 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x74, 0x74, 5239 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 5240 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 5241 0x53, 0x70, 0x65, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 5242 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x3c, 0x0a, 0x1a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 5243 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 5244 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x6e, 0x6f, 0x74, 0x69, 0x66, 5245 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 5246 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 5247 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 5248 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 5249 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 5250 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x3e, 0x0a, 0x17, 5251 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x69, 0x65, 0x73, 5252 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x08, 0xca, 5253 0xc6, 0x27, 0x04, 0x12, 0x02, 0x2a, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x41, 0x6c, 0x65, 0x72, 5254 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x49, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x55, 0x0a, 0x28, 5255 0x70, 0x75, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x5f, 5256 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 5257 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x23, 5258 0x70, 0x75, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, 5259 0x6e, 0x74, 0x65, 0x72, 0x57, 0x68, 0x65, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 5260 0x69, 0x6e, 0x67, 0x1a, 0x25, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 5261 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 5262 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x6c, 5263 0x61, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 5264 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 5265 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x1a, 0x2c, 5266 0x0a, 0x09, 0x50, 0x61, 0x67, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 5267 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 5268 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x1a, 0xcf, 0x01, 0x0a, 5269 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 5270 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x51, 0x0a, 0x07, 0x68, 0x65, 5271 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6e, 0x74, 5272 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 5273 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 5274 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x48, 0x65, 5275 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 5276 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 5277 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x4d, 5278 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x1a, 0x30, 0x0a, 0x06, 5279 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 5280 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 5281 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3f, 5282 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 5283 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 5284 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4c, 0x41, 0x43, 0x4b, 5285 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x03, 0x22, 5286 0xea, 0x01, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0d, 0x0a, 5287 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 5288 0x4e, 0x45, 0x57, 0x5f, 0x46, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 5289 0x41, 0x49, 0x5f, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 5290 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x49, 5291 0x5f, 0x52, 0x45, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x57, 0x41, 5292 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x03, 5293 0x12, 0x15, 0x0a, 0x11, 0x41, 0x49, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x41, 5294 0x53, 0x5f, 0x54, 0x4d, 0x50, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x49, 0x5f, 0x41, 0x44, 5295 0x4a, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, 0x10, 0x05, 5296 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x49, 0x5f, 0x52, 0x45, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x49, 5297 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 5298 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 5299 0x50, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x4f, 0x50, 5300 0x50, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x22, 0x4c, 0x0a, 0x11, 5301 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 5302 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 5303 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x69, 0x6e, 5304 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 5305 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x42, 0x45, 0xe8, 0xde, 0x21, 0x01, 5306 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x6f, 5307 0x75, 0x64, 0x77, 0x61, 0x6e, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6c, 0x71, 0x2f, 0x61, 0x6c, 0x65, 5308 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 5309 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 5310 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 5311 } 5312 5313 var ( 5314 edgelq_alerting_proto_v1_specs_proto_rawDescOnce sync.Once 5315 edgelq_alerting_proto_v1_specs_proto_rawDescData = edgelq_alerting_proto_v1_specs_proto_rawDesc 5316 ) 5317 5318 func edgelq_alerting_proto_v1_specs_proto_rawDescGZIP() []byte { 5319 edgelq_alerting_proto_v1_specs_proto_rawDescOnce.Do(func() { 5320 edgelq_alerting_proto_v1_specs_proto_rawDescData = protoimpl.X.CompressGZIP(edgelq_alerting_proto_v1_specs_proto_rawDescData) 5321 }) 5322 return edgelq_alerting_proto_v1_specs_proto_rawDescData 5323 } 5324 5325 var edgelq_alerting_proto_v1_specs_proto_enumTypes = make([]protoimpl.EnumInfo, 6) 5326 var edgelq_alerting_proto_v1_specs_proto_msgTypes = make([]protoimpl.MessageInfo, 35) 5327 var edgelq_alerting_proto_v1_specs_proto_goTypes = []interface{}{ 5328 (LogCndSpec_Query_CompositeTrigger_Operator)(0), // 0: ntt.alerting.v1.LogCndSpec_Query_CompositeTrigger_Operator 5329 (TsCndSpec_ThresholdAlertingCfg_Operator)(0), // 1: ntt.alerting.v1.TsCndSpec_ThresholdAlertingCfg_Operator 5330 (PolicySpec_ProcessingLocation)(0), // 2: ntt.alerting.v1.PolicySpec_ProcessingLocation 5331 (PolicySpec_ResourceIdentity_LabelInfo_UsageContext)(0), // 3: ntt.alerting.v1.PolicySpec_ResourceIdentity_LabelInfo_UsageContext 5332 (NotificationChannelSpec_Type)(0), // 4: ntt.alerting.v1.NotificationChannelSpec_Type 5333 (NotificationChannelSpec_EventKind)(0), // 5: ntt.alerting.v1.NotificationChannelSpec_EventKind 5334 (*LogCndSpec)(nil), // 6: ntt.alerting.v1.LogCndSpec 5335 (*TsCndSpec)(nil), // 7: ntt.alerting.v1.TsCndSpec 5336 (*PolicySpec)(nil), // 8: ntt.alerting.v1.PolicySpec 5337 (*NotificationChannelSpec)(nil), // 9: ntt.alerting.v1.NotificationChannelSpec 5338 (*AlertingThreshold)(nil), // 10: ntt.alerting.v1.AlertingThreshold 5339 (*LogCndSpec_Query)(nil), // 11: ntt.alerting.v1.LogCndSpec.Query 5340 (*LogCndSpec_Query_LabelTrigger)(nil), // 12: ntt.alerting.v1.LogCndSpec.Query.LabelTrigger 5341 (*LogCndSpec_Query_StringPayloadTrigger)(nil), // 13: ntt.alerting.v1.LogCndSpec.Query.StringPayloadTrigger 5342 (*LogCndSpec_Query_CompositeTrigger)(nil), // 14: ntt.alerting.v1.LogCndSpec.Query.CompositeTrigger 5343 (*LogCndSpec_Query_TriggerCnd)(nil), // 15: ntt.alerting.v1.LogCndSpec.Query.TriggerCnd 5344 (*TsCndSpec_Query)(nil), // 16: ntt.alerting.v1.TsCndSpec.Query 5345 (*TsCndSpec_ThresholdAlertingCfg)(nil), // 17: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg 5346 (*TsCndSpec_AnomalyAlertingCfg)(nil), // 18: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg 5347 (*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds)(nil), // 19: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds 5348 (*TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder)(nil), // 20: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.LstmAutoEncoder 5349 (*PolicySpec_ResourceIdentity)(nil), // 21: ntt.alerting.v1.PolicySpec.ResourceIdentity 5350 (*PolicySpec_SupportingAlertQuery)(nil), // 22: ntt.alerting.v1.PolicySpec.SupportingAlertQuery 5351 (*PolicySpec_AIAgentHandling)(nil), // 23: ntt.alerting.v1.PolicySpec.AIAgentHandling 5352 (*PolicySpec_ResourceIdentity_LabelInfo)(nil), // 24: ntt.alerting.v1.PolicySpec.ResourceIdentity.LabelInfo 5353 (*PolicySpec_SupportingAlertQuery_TsQuery)(nil), // 25: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.TsQuery 5354 (*PolicySpec_SupportingAlertQuery_LogQuery)(nil), // 26: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.LogQuery 5355 (*PolicySpec_SupportingAlertQuery_RestGetQuery)(nil), // 27: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.RestGetQuery 5356 (*PolicySpec_SupportingAlertQuery_RestListQuery)(nil), // 28: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.RestListQuery 5357 (*PolicySpec_AIAgentHandling_EdgeConnectivity)(nil), // 29: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity 5358 (*PolicySpec_AIAgentHandling_Remediation)(nil), // 30: ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation 5359 (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH)(nil), // 31: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.DeviceSSH 5360 (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH)(nil), // 32: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.ProxiesSSH 5361 (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH)(nil), // 33: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.PodSSH 5362 (*PolicySpec_AIAgentHandling_Remediation_FixInSSH)(nil), // 34: ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.FixInSSH 5363 (*PolicySpec_AIAgentHandling_Remediation_Reboot)(nil), // 35: ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.Reboot 5364 (*NotificationChannelSpec_Email)(nil), // 36: ntt.alerting.v1.NotificationChannelSpec.Email 5365 (*NotificationChannelSpec_Slack)(nil), // 37: ntt.alerting.v1.NotificationChannelSpec.Slack 5366 (*NotificationChannelSpec_PagerDuty)(nil), // 38: ntt.alerting.v1.NotificationChannelSpec.PagerDuty 5367 (*NotificationChannelSpec_Webhook)(nil), // 39: ntt.alerting.v1.NotificationChannelSpec.Webhook 5368 (*NotificationChannelSpec_Webhook_Header)(nil), // 40: ntt.alerting.v1.NotificationChannelSpec.Webhook.Header 5369 (*durationpb.Duration)(nil), // 41: google.protobuf.Duration 5370 (monitoring_common.Aggregation_Aligner)(0), // 42: ntt.monitoring.v4.Aggregation_Aligner 5371 (monitoring_common.Aggregation_Reducer)(0), // 43: ntt.monitoring.v4.Aggregation_Reducer 5372 (*monitoring_common.Aggregation)(nil), // 44: ntt.monitoring.v4.Aggregation 5373 (*fieldmaskpb.FieldMask)(nil), // 45: google.protobuf.FieldMask 5374 } 5375 var edgelq_alerting_proto_v1_specs_proto_depIdxs = []int32{ 5376 11, // 0: ntt.alerting.v1.LogCndSpec.query:type_name -> ntt.alerting.v1.LogCndSpec.Query 5377 16, // 1: ntt.alerting.v1.TsCndSpec.queries:type_name -> ntt.alerting.v1.TsCndSpec.Query 5378 17, // 2: ntt.alerting.v1.TsCndSpec.threshold_alerting:type_name -> ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg 5379 18, // 3: ntt.alerting.v1.TsCndSpec.anomaly_alerting:type_name -> ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg 5380 2, // 4: ntt.alerting.v1.PolicySpec.processing_location:type_name -> ntt.alerting.v1.PolicySpec_ProcessingLocation 5381 21, // 5: ntt.alerting.v1.PolicySpec.resource_identity:type_name -> ntt.alerting.v1.PolicySpec.ResourceIdentity 5382 22, // 6: ntt.alerting.v1.PolicySpec.supporting_queries:type_name -> ntt.alerting.v1.PolicySpec.SupportingAlertQuery 5383 23, // 7: ntt.alerting.v1.PolicySpec.ai_agent:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling 5384 4, // 8: ntt.alerting.v1.NotificationChannelSpec.type:type_name -> ntt.alerting.v1.NotificationChannelSpec_Type 5385 5, // 9: ntt.alerting.v1.NotificationChannelSpec.enabled_kinds:type_name -> ntt.alerting.v1.NotificationChannelSpec_EventKind 5386 36, // 10: ntt.alerting.v1.NotificationChannelSpec.email:type_name -> ntt.alerting.v1.NotificationChannelSpec.Email 5387 37, // 11: ntt.alerting.v1.NotificationChannelSpec.slack:type_name -> ntt.alerting.v1.NotificationChannelSpec.Slack 5388 39, // 12: ntt.alerting.v1.NotificationChannelSpec.webhook:type_name -> ntt.alerting.v1.NotificationChannelSpec.Webhook 5389 45, // 13: ntt.alerting.v1.NotificationChannelSpec.notification_mask:type_name -> google.protobuf.FieldMask 5390 15, // 14: ntt.alerting.v1.LogCndSpec.Query.trigger:type_name -> ntt.alerting.v1.LogCndSpec.Query.TriggerCnd 5391 41, // 15: ntt.alerting.v1.LogCndSpec.Query.min_duration:type_name -> google.protobuf.Duration 5392 15, // 16: ntt.alerting.v1.LogCndSpec.Query.CompositeTrigger.triggers:type_name -> ntt.alerting.v1.LogCndSpec.Query.TriggerCnd 5393 0, // 17: ntt.alerting.v1.LogCndSpec.Query.CompositeTrigger.operator:type_name -> ntt.alerting.v1.LogCndSpec_Query_CompositeTrigger_Operator 5394 12, // 18: ntt.alerting.v1.LogCndSpec.Query.TriggerCnd.label:type_name -> ntt.alerting.v1.LogCndSpec.Query.LabelTrigger 5395 13, // 19: ntt.alerting.v1.LogCndSpec.Query.TriggerCnd.string_content:type_name -> ntt.alerting.v1.LogCndSpec.Query.StringPayloadTrigger 5396 14, // 20: ntt.alerting.v1.LogCndSpec.Query.TriggerCnd.composite:type_name -> ntt.alerting.v1.LogCndSpec.Query.CompositeTrigger 5397 42, // 21: ntt.alerting.v1.TsCndSpec.Query.aligner:type_name -> ntt.monitoring.v4.Aggregation_Aligner 5398 43, // 22: ntt.alerting.v1.TsCndSpec.Query.reducer:type_name -> ntt.monitoring.v4.Aggregation_Reducer 5399 1, // 23: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.operator:type_name -> ntt.alerting.v1.TsCndSpec_ThresholdAlertingCfg_Operator 5400 41, // 24: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.alignment_period:type_name -> google.protobuf.Duration 5401 41, // 25: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.raise_after:type_name -> google.protobuf.Duration 5402 41, // 26: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.silence_after:type_name -> google.protobuf.Duration 5403 19, // 27: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.per_query_thresholds:type_name -> ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds 5404 41, // 28: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.adaptive_thresholds_detection_period:type_name -> google.protobuf.Duration 5405 41, // 29: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.analysis_window:type_name -> google.protobuf.Duration 5406 41, // 30: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.step_interval:type_name -> google.protobuf.Duration 5407 41, // 31: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.train_step_interval:type_name -> google.protobuf.Duration 5408 41, // 32: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.alignment_period:type_name -> google.protobuf.Duration 5409 20, // 33: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.lstm_autoencoder:type_name -> ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.LstmAutoEncoder 5410 41, // 34: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.raise_after:type_name -> google.protobuf.Duration 5411 41, // 35: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.silence_after:type_name -> google.protobuf.Duration 5412 10, // 36: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds.max_upper:type_name -> ntt.alerting.v1.AlertingThreshold 5413 10, // 37: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds.max_lower:type_name -> ntt.alerting.v1.AlertingThreshold 5414 10, // 38: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds.min_upper:type_name -> ntt.alerting.v1.AlertingThreshold 5415 10, // 39: ntt.alerting.v1.TsCndSpec.ThresholdAlertingCfg.AlertingThresholds.min_lower:type_name -> ntt.alerting.v1.AlertingThreshold 5416 41, // 40: ntt.alerting.v1.TsCndSpec.AnomalyAlertingCfg.LstmAutoEncoder.training_period:type_name -> google.protobuf.Duration 5417 24, // 41: ntt.alerting.v1.PolicySpec.ResourceIdentity.labels:type_name -> ntt.alerting.v1.PolicySpec.ResourceIdentity.LabelInfo 5418 25, // 42: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.ts_query:type_name -> ntt.alerting.v1.PolicySpec.SupportingAlertQuery.TsQuery 5419 26, // 43: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.log_query:type_name -> ntt.alerting.v1.PolicySpec.SupportingAlertQuery.LogQuery 5420 27, // 44: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.rest_get_query:type_name -> ntt.alerting.v1.PolicySpec.SupportingAlertQuery.RestGetQuery 5421 28, // 45: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.rest_list_query:type_name -> ntt.alerting.v1.PolicySpec.SupportingAlertQuery.RestListQuery 5422 29, // 46: ntt.alerting.v1.PolicySpec.AIAgentHandling.edge_connectivity:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity 5423 30, // 47: ntt.alerting.v1.PolicySpec.AIAgentHandling.remediation_options:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation 5424 3, // 48: ntt.alerting.v1.PolicySpec.ResourceIdentity.LabelInfo.contexts:type_name -> ntt.alerting.v1.PolicySpec_ResourceIdentity_LabelInfo_UsageContext 5425 44, // 49: ntt.alerting.v1.PolicySpec.SupportingAlertQuery.TsQuery.aggregation:type_name -> ntt.monitoring.v4.Aggregation 5426 31, // 50: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.device_ssh:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.DeviceSSH 5427 32, // 51: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.proxies_ssh:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.ProxiesSSH 5428 33, // 52: ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.pod_ssh:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.EdgeConnectivity.PodSSH 5429 34, // 53: ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.fix_in_ssh:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.FixInSSH 5430 35, // 54: ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.reboot:type_name -> ntt.alerting.v1.PolicySpec.AIAgentHandling.Remediation.Reboot 5431 40, // 55: ntt.alerting.v1.NotificationChannelSpec.Webhook.headers:type_name -> ntt.alerting.v1.NotificationChannelSpec.Webhook.Header 5432 56, // [56:56] is the sub-list for method output_type 5433 56, // [56:56] is the sub-list for method input_type 5434 56, // [56:56] is the sub-list for extension type_name 5435 56, // [56:56] is the sub-list for extension extendee 5436 0, // [0:56] is the sub-list for field type_name 5437 } 5438 5439 func init() { edgelq_alerting_proto_v1_specs_proto_init() } 5440 func edgelq_alerting_proto_v1_specs_proto_init() { 5441 if edgelq_alerting_proto_v1_specs_proto != nil { 5442 return 5443 } 5444 if !protoimpl.UnsafeEnabled { 5445 5446 edgelq_alerting_proto_v1_specs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 5447 switch v := v.(*LogCndSpec); i { 5448 case 0: 5449 return &v.state 5450 case 1: 5451 return &v.sizeCache 5452 case 2: 5453 return &v.unknownFields 5454 default: 5455 return nil 5456 } 5457 } 5458 edgelq_alerting_proto_v1_specs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 5459 switch v := v.(*TsCndSpec); i { 5460 case 0: 5461 return &v.state 5462 case 1: 5463 return &v.sizeCache 5464 case 2: 5465 return &v.unknownFields 5466 default: 5467 return nil 5468 } 5469 } 5470 edgelq_alerting_proto_v1_specs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 5471 switch v := v.(*PolicySpec); i { 5472 case 0: 5473 return &v.state 5474 case 1: 5475 return &v.sizeCache 5476 case 2: 5477 return &v.unknownFields 5478 default: 5479 return nil 5480 } 5481 } 5482 edgelq_alerting_proto_v1_specs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 5483 switch v := v.(*NotificationChannelSpec); i { 5484 case 0: 5485 return &v.state 5486 case 1: 5487 return &v.sizeCache 5488 case 2: 5489 return &v.unknownFields 5490 default: 5491 return nil 5492 } 5493 } 5494 edgelq_alerting_proto_v1_specs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 5495 switch v := v.(*AlertingThreshold); i { 5496 case 0: 5497 return &v.state 5498 case 1: 5499 return &v.sizeCache 5500 case 2: 5501 return &v.unknownFields 5502 default: 5503 return nil 5504 } 5505 } 5506 edgelq_alerting_proto_v1_specs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 5507 switch v := v.(*LogCndSpec_Query); i { 5508 case 0: 5509 return &v.state 5510 case 1: 5511 return &v.sizeCache 5512 case 2: 5513 return &v.unknownFields 5514 default: 5515 return nil 5516 } 5517 } 5518 edgelq_alerting_proto_v1_specs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 5519 switch v := v.(*LogCndSpec_Query_LabelTrigger); i { 5520 case 0: 5521 return &v.state 5522 case 1: 5523 return &v.sizeCache 5524 case 2: 5525 return &v.unknownFields 5526 default: 5527 return nil 5528 } 5529 } 5530 edgelq_alerting_proto_v1_specs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 5531 switch v := v.(*LogCndSpec_Query_StringPayloadTrigger); i { 5532 case 0: 5533 return &v.state 5534 case 1: 5535 return &v.sizeCache 5536 case 2: 5537 return &v.unknownFields 5538 default: 5539 return nil 5540 } 5541 } 5542 edgelq_alerting_proto_v1_specs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 5543 switch v := v.(*LogCndSpec_Query_CompositeTrigger); i { 5544 case 0: 5545 return &v.state 5546 case 1: 5547 return &v.sizeCache 5548 case 2: 5549 return &v.unknownFields 5550 default: 5551 return nil 5552 } 5553 } 5554 edgelq_alerting_proto_v1_specs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 5555 switch v := v.(*LogCndSpec_Query_TriggerCnd); i { 5556 case 0: 5557 return &v.state 5558 case 1: 5559 return &v.sizeCache 5560 case 2: 5561 return &v.unknownFields 5562 default: 5563 return nil 5564 } 5565 } 5566 edgelq_alerting_proto_v1_specs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 5567 switch v := v.(*TsCndSpec_Query); i { 5568 case 0: 5569 return &v.state 5570 case 1: 5571 return &v.sizeCache 5572 case 2: 5573 return &v.unknownFields 5574 default: 5575 return nil 5576 } 5577 } 5578 edgelq_alerting_proto_v1_specs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 5579 switch v := v.(*TsCndSpec_ThresholdAlertingCfg); i { 5580 case 0: 5581 return &v.state 5582 case 1: 5583 return &v.sizeCache 5584 case 2: 5585 return &v.unknownFields 5586 default: 5587 return nil 5588 } 5589 } 5590 edgelq_alerting_proto_v1_specs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 5591 switch v := v.(*TsCndSpec_AnomalyAlertingCfg); i { 5592 case 0: 5593 return &v.state 5594 case 1: 5595 return &v.sizeCache 5596 case 2: 5597 return &v.unknownFields 5598 default: 5599 return nil 5600 } 5601 } 5602 edgelq_alerting_proto_v1_specs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 5603 switch v := v.(*TsCndSpec_ThresholdAlertingCfg_AlertingThresholds); i { 5604 case 0: 5605 return &v.state 5606 case 1: 5607 return &v.sizeCache 5608 case 2: 5609 return &v.unknownFields 5610 default: 5611 return nil 5612 } 5613 } 5614 edgelq_alerting_proto_v1_specs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 5615 switch v := v.(*TsCndSpec_AnomalyAlertingCfg_LstmAutoEncoder); i { 5616 case 0: 5617 return &v.state 5618 case 1: 5619 return &v.sizeCache 5620 case 2: 5621 return &v.unknownFields 5622 default: 5623 return nil 5624 } 5625 } 5626 edgelq_alerting_proto_v1_specs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 5627 switch v := v.(*PolicySpec_ResourceIdentity); i { 5628 case 0: 5629 return &v.state 5630 case 1: 5631 return &v.sizeCache 5632 case 2: 5633 return &v.unknownFields 5634 default: 5635 return nil 5636 } 5637 } 5638 edgelq_alerting_proto_v1_specs_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 5639 switch v := v.(*PolicySpec_SupportingAlertQuery); i { 5640 case 0: 5641 return &v.state 5642 case 1: 5643 return &v.sizeCache 5644 case 2: 5645 return &v.unknownFields 5646 default: 5647 return nil 5648 } 5649 } 5650 edgelq_alerting_proto_v1_specs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 5651 switch v := v.(*PolicySpec_AIAgentHandling); i { 5652 case 0: 5653 return &v.state 5654 case 1: 5655 return &v.sizeCache 5656 case 2: 5657 return &v.unknownFields 5658 default: 5659 return nil 5660 } 5661 } 5662 edgelq_alerting_proto_v1_specs_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 5663 switch v := v.(*PolicySpec_ResourceIdentity_LabelInfo); i { 5664 case 0: 5665 return &v.state 5666 case 1: 5667 return &v.sizeCache 5668 case 2: 5669 return &v.unknownFields 5670 default: 5671 return nil 5672 } 5673 } 5674 edgelq_alerting_proto_v1_specs_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 5675 switch v := v.(*PolicySpec_SupportingAlertQuery_TsQuery); i { 5676 case 0: 5677 return &v.state 5678 case 1: 5679 return &v.sizeCache 5680 case 2: 5681 return &v.unknownFields 5682 default: 5683 return nil 5684 } 5685 } 5686 edgelq_alerting_proto_v1_specs_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 5687 switch v := v.(*PolicySpec_SupportingAlertQuery_LogQuery); i { 5688 case 0: 5689 return &v.state 5690 case 1: 5691 return &v.sizeCache 5692 case 2: 5693 return &v.unknownFields 5694 default: 5695 return nil 5696 } 5697 } 5698 edgelq_alerting_proto_v1_specs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 5699 switch v := v.(*PolicySpec_SupportingAlertQuery_RestGetQuery); i { 5700 case 0: 5701 return &v.state 5702 case 1: 5703 return &v.sizeCache 5704 case 2: 5705 return &v.unknownFields 5706 default: 5707 return nil 5708 } 5709 } 5710 edgelq_alerting_proto_v1_specs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 5711 switch v := v.(*PolicySpec_SupportingAlertQuery_RestListQuery); i { 5712 case 0: 5713 return &v.state 5714 case 1: 5715 return &v.sizeCache 5716 case 2: 5717 return &v.unknownFields 5718 default: 5719 return nil 5720 } 5721 } 5722 edgelq_alerting_proto_v1_specs_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 5723 switch v := v.(*PolicySpec_AIAgentHandling_EdgeConnectivity); i { 5724 case 0: 5725 return &v.state 5726 case 1: 5727 return &v.sizeCache 5728 case 2: 5729 return &v.unknownFields 5730 default: 5731 return nil 5732 } 5733 } 5734 edgelq_alerting_proto_v1_specs_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 5735 switch v := v.(*PolicySpec_AIAgentHandling_Remediation); i { 5736 case 0: 5737 return &v.state 5738 case 1: 5739 return &v.sizeCache 5740 case 2: 5741 return &v.unknownFields 5742 default: 5743 return nil 5744 } 5745 } 5746 edgelq_alerting_proto_v1_specs_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 5747 switch v := v.(*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSSH); i { 5748 case 0: 5749 return &v.state 5750 case 1: 5751 return &v.sizeCache 5752 case 2: 5753 return &v.unknownFields 5754 default: 5755 return nil 5756 } 5757 } 5758 edgelq_alerting_proto_v1_specs_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 5759 switch v := v.(*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSSH); i { 5760 case 0: 5761 return &v.state 5762 case 1: 5763 return &v.sizeCache 5764 case 2: 5765 return &v.unknownFields 5766 default: 5767 return nil 5768 } 5769 } 5770 edgelq_alerting_proto_v1_specs_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 5771 switch v := v.(*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSSH); i { 5772 case 0: 5773 return &v.state 5774 case 1: 5775 return &v.sizeCache 5776 case 2: 5777 return &v.unknownFields 5778 default: 5779 return nil 5780 } 5781 } 5782 edgelq_alerting_proto_v1_specs_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 5783 switch v := v.(*PolicySpec_AIAgentHandling_Remediation_FixInSSH); i { 5784 case 0: 5785 return &v.state 5786 case 1: 5787 return &v.sizeCache 5788 case 2: 5789 return &v.unknownFields 5790 default: 5791 return nil 5792 } 5793 } 5794 edgelq_alerting_proto_v1_specs_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 5795 switch v := v.(*PolicySpec_AIAgentHandling_Remediation_Reboot); i { 5796 case 0: 5797 return &v.state 5798 case 1: 5799 return &v.sizeCache 5800 case 2: 5801 return &v.unknownFields 5802 default: 5803 return nil 5804 } 5805 } 5806 edgelq_alerting_proto_v1_specs_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 5807 switch v := v.(*NotificationChannelSpec_Email); i { 5808 case 0: 5809 return &v.state 5810 case 1: 5811 return &v.sizeCache 5812 case 2: 5813 return &v.unknownFields 5814 default: 5815 return nil 5816 } 5817 } 5818 edgelq_alerting_proto_v1_specs_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 5819 switch v := v.(*NotificationChannelSpec_Slack); i { 5820 case 0: 5821 return &v.state 5822 case 1: 5823 return &v.sizeCache 5824 case 2: 5825 return &v.unknownFields 5826 default: 5827 return nil 5828 } 5829 } 5830 edgelq_alerting_proto_v1_specs_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 5831 switch v := v.(*NotificationChannelSpec_PagerDuty); i { 5832 case 0: 5833 return &v.state 5834 case 1: 5835 return &v.sizeCache 5836 case 2: 5837 return &v.unknownFields 5838 default: 5839 return nil 5840 } 5841 } 5842 edgelq_alerting_proto_v1_specs_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 5843 switch v := v.(*NotificationChannelSpec_Webhook); i { 5844 case 0: 5845 return &v.state 5846 case 1: 5847 return &v.sizeCache 5848 case 2: 5849 return &v.unknownFields 5850 default: 5851 return nil 5852 } 5853 } 5854 edgelq_alerting_proto_v1_specs_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 5855 switch v := v.(*NotificationChannelSpec_Webhook_Header); i { 5856 case 0: 5857 return &v.state 5858 case 1: 5859 return &v.sizeCache 5860 case 2: 5861 return &v.unknownFields 5862 default: 5863 return nil 5864 } 5865 } 5866 } 5867 5868 edgelq_alerting_proto_v1_specs_proto_msgTypes[9].OneofWrappers = []interface{}{ 5869 (*LogCndSpec_Query_TriggerCnd_Label)(nil), 5870 (*LogCndSpec_Query_TriggerCnd_StringContent)(nil), 5871 (*LogCndSpec_Query_TriggerCnd_Composite)(nil), 5872 } 5873 edgelq_alerting_proto_v1_specs_proto_msgTypes[12].OneofWrappers = []interface{}{ 5874 (*TsCndSpec_AnomalyAlertingCfg_LstmAutoencoder)(nil), 5875 } 5876 edgelq_alerting_proto_v1_specs_proto_msgTypes[16].OneofWrappers = []interface{}{ 5877 (*PolicySpec_SupportingAlertQuery_TsQuery_)(nil), 5878 (*PolicySpec_SupportingAlertQuery_LogQuery_)(nil), 5879 (*PolicySpec_SupportingAlertQuery_RestGetQuery_)(nil), 5880 (*PolicySpec_SupportingAlertQuery_RestListQuery_)(nil), 5881 } 5882 edgelq_alerting_proto_v1_specs_proto_msgTypes[23].OneofWrappers = []interface{}{ 5883 (*PolicySpec_AIAgentHandling_EdgeConnectivity_DeviceSsh)(nil), 5884 (*PolicySpec_AIAgentHandling_EdgeConnectivity_ProxiesSsh)(nil), 5885 (*PolicySpec_AIAgentHandling_EdgeConnectivity_PodSsh)(nil), 5886 } 5887 edgelq_alerting_proto_v1_specs_proto_msgTypes[24].OneofWrappers = []interface{}{ 5888 (*PolicySpec_AIAgentHandling_Remediation_FixInSsh)(nil), 5889 (*PolicySpec_AIAgentHandling_Remediation_Reboot_)(nil), 5890 } 5891 type x struct{} 5892 out := protoimpl.TypeBuilder{ 5893 File: protoimpl.DescBuilder{ 5894 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 5895 RawDescriptor: edgelq_alerting_proto_v1_specs_proto_rawDesc, 5896 NumEnums: 6, 5897 NumMessages: 35, 5898 NumExtensions: 0, 5899 NumServices: 0, 5900 }, 5901 GoTypes: edgelq_alerting_proto_v1_specs_proto_goTypes, 5902 DependencyIndexes: edgelq_alerting_proto_v1_specs_proto_depIdxs, 5903 EnumInfos: edgelq_alerting_proto_v1_specs_proto_enumTypes, 5904 MessageInfos: edgelq_alerting_proto_v1_specs_proto_msgTypes, 5905 }.Build() 5906 edgelq_alerting_proto_v1_specs_proto = out.File 5907 edgelq_alerting_proto_v1_specs_proto_rawDesc = nil 5908 edgelq_alerting_proto_v1_specs_proto_goTypes = nil 5909 edgelq_alerting_proto_v1_specs_proto_depIdxs = nil 5910 }