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  }