...

Source file src/cloud.google.com/go/monitoring/apiv3/v2/monitoringpb/alert.pb.go

Documentation: cloud.google.com/go/monitoring/apiv3/v2/monitoringpb

     1  // Copyright 2023 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.33.0
    18  // 	protoc        v4.25.3
    19  // source: google/monitoring/v3/alert.proto
    20  
    21  package monitoringpb
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	_ "google.golang.org/genproto/googleapis/api/annotations"
    28  	status "google.golang.org/genproto/googleapis/rpc/status"
    29  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    30  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    31  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    32  	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
    33  )
    34  
    35  const (
    36  	// Verify that this generated code is sufficiently up-to-date.
    37  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    38  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    39  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    40  )
    41  
    42  // Operators for combining conditions.
    43  type AlertPolicy_ConditionCombinerType int32
    44  
    45  const (
    46  	// An unspecified combiner.
    47  	AlertPolicy_COMBINE_UNSPECIFIED AlertPolicy_ConditionCombinerType = 0
    48  	// Combine conditions using the logical `AND` operator. An
    49  	// incident is created only if all the conditions are met
    50  	// simultaneously. This combiner is satisfied if all conditions are
    51  	// met, even if they are met on completely different resources.
    52  	AlertPolicy_AND AlertPolicy_ConditionCombinerType = 1
    53  	// Combine conditions using the logical `OR` operator. An incident
    54  	// is created if any of the listed conditions is met.
    55  	AlertPolicy_OR AlertPolicy_ConditionCombinerType = 2
    56  	// Combine conditions using logical `AND` operator, but unlike the regular
    57  	// `AND` option, an incident is created only if all conditions are met
    58  	// simultaneously on at least one resource.
    59  	AlertPolicy_AND_WITH_MATCHING_RESOURCE AlertPolicy_ConditionCombinerType = 3
    60  )
    61  
    62  // Enum value maps for AlertPolicy_ConditionCombinerType.
    63  var (
    64  	AlertPolicy_ConditionCombinerType_name = map[int32]string{
    65  		0: "COMBINE_UNSPECIFIED",
    66  		1: "AND",
    67  		2: "OR",
    68  		3: "AND_WITH_MATCHING_RESOURCE",
    69  	}
    70  	AlertPolicy_ConditionCombinerType_value = map[string]int32{
    71  		"COMBINE_UNSPECIFIED":        0,
    72  		"AND":                        1,
    73  		"OR":                         2,
    74  		"AND_WITH_MATCHING_RESOURCE": 3,
    75  	}
    76  )
    77  
    78  func (x AlertPolicy_ConditionCombinerType) Enum() *AlertPolicy_ConditionCombinerType {
    79  	p := new(AlertPolicy_ConditionCombinerType)
    80  	*p = x
    81  	return p
    82  }
    83  
    84  func (x AlertPolicy_ConditionCombinerType) String() string {
    85  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    86  }
    87  
    88  func (AlertPolicy_ConditionCombinerType) Descriptor() protoreflect.EnumDescriptor {
    89  	return file_google_monitoring_v3_alert_proto_enumTypes[0].Descriptor()
    90  }
    91  
    92  func (AlertPolicy_ConditionCombinerType) Type() protoreflect.EnumType {
    93  	return &file_google_monitoring_v3_alert_proto_enumTypes[0]
    94  }
    95  
    96  func (x AlertPolicy_ConditionCombinerType) Number() protoreflect.EnumNumber {
    97  	return protoreflect.EnumNumber(x)
    98  }
    99  
   100  // Deprecated: Use AlertPolicy_ConditionCombinerType.Descriptor instead.
   101  func (AlertPolicy_ConditionCombinerType) EnumDescriptor() ([]byte, []int) {
   102  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 0}
   103  }
   104  
   105  // An enumeration of possible severity level for an Alert Policy.
   106  type AlertPolicy_Severity int32
   107  
   108  const (
   109  	// No severity is specified. This is the default value.
   110  	AlertPolicy_SEVERITY_UNSPECIFIED AlertPolicy_Severity = 0
   111  	// This is the highest severity level. Use this if the problem could
   112  	// cause significant damage or downtime.
   113  	AlertPolicy_CRITICAL AlertPolicy_Severity = 1
   114  	// This is the medium severity level. Use this if the problem could
   115  	// cause minor damage or downtime.
   116  	AlertPolicy_ERROR AlertPolicy_Severity = 2
   117  	// This is the lowest severity level. Use this if the problem is not causing
   118  	// any damage or downtime, but could potentially lead to a problem in the
   119  	// future.
   120  	AlertPolicy_WARNING AlertPolicy_Severity = 3
   121  )
   122  
   123  // Enum value maps for AlertPolicy_Severity.
   124  var (
   125  	AlertPolicy_Severity_name = map[int32]string{
   126  		0: "SEVERITY_UNSPECIFIED",
   127  		1: "CRITICAL",
   128  		2: "ERROR",
   129  		3: "WARNING",
   130  	}
   131  	AlertPolicy_Severity_value = map[string]int32{
   132  		"SEVERITY_UNSPECIFIED": 0,
   133  		"CRITICAL":             1,
   134  		"ERROR":                2,
   135  		"WARNING":              3,
   136  	}
   137  )
   138  
   139  func (x AlertPolicy_Severity) Enum() *AlertPolicy_Severity {
   140  	p := new(AlertPolicy_Severity)
   141  	*p = x
   142  	return p
   143  }
   144  
   145  func (x AlertPolicy_Severity) String() string {
   146  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   147  }
   148  
   149  func (AlertPolicy_Severity) Descriptor() protoreflect.EnumDescriptor {
   150  	return file_google_monitoring_v3_alert_proto_enumTypes[1].Descriptor()
   151  }
   152  
   153  func (AlertPolicy_Severity) Type() protoreflect.EnumType {
   154  	return &file_google_monitoring_v3_alert_proto_enumTypes[1]
   155  }
   156  
   157  func (x AlertPolicy_Severity) Number() protoreflect.EnumNumber {
   158  	return protoreflect.EnumNumber(x)
   159  }
   160  
   161  // Deprecated: Use AlertPolicy_Severity.Descriptor instead.
   162  func (AlertPolicy_Severity) EnumDescriptor() ([]byte, []int) {
   163  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1}
   164  }
   165  
   166  // A condition control that determines how metric-threshold conditions
   167  // are evaluated when data stops arriving.
   168  // This control doesn't affect metric-absence policies.
   169  type AlertPolicy_Condition_EvaluationMissingData int32
   170  
   171  const (
   172  	// An unspecified evaluation missing data option.  Equivalent to
   173  	// EVALUATION_MISSING_DATA_NO_OP.
   174  	AlertPolicy_Condition_EVALUATION_MISSING_DATA_UNSPECIFIED AlertPolicy_Condition_EvaluationMissingData = 0
   175  	// If there is no data to evaluate the condition, then evaluate the
   176  	// condition as false.
   177  	AlertPolicy_Condition_EVALUATION_MISSING_DATA_INACTIVE AlertPolicy_Condition_EvaluationMissingData = 1
   178  	// If there is no data to evaluate the condition, then evaluate the
   179  	// condition as true.
   180  	AlertPolicy_Condition_EVALUATION_MISSING_DATA_ACTIVE AlertPolicy_Condition_EvaluationMissingData = 2
   181  	// Do not evaluate the condition to any value if there is no data.
   182  	AlertPolicy_Condition_EVALUATION_MISSING_DATA_NO_OP AlertPolicy_Condition_EvaluationMissingData = 3
   183  )
   184  
   185  // Enum value maps for AlertPolicy_Condition_EvaluationMissingData.
   186  var (
   187  	AlertPolicy_Condition_EvaluationMissingData_name = map[int32]string{
   188  		0: "EVALUATION_MISSING_DATA_UNSPECIFIED",
   189  		1: "EVALUATION_MISSING_DATA_INACTIVE",
   190  		2: "EVALUATION_MISSING_DATA_ACTIVE",
   191  		3: "EVALUATION_MISSING_DATA_NO_OP",
   192  	}
   193  	AlertPolicy_Condition_EvaluationMissingData_value = map[string]int32{
   194  		"EVALUATION_MISSING_DATA_UNSPECIFIED": 0,
   195  		"EVALUATION_MISSING_DATA_INACTIVE":    1,
   196  		"EVALUATION_MISSING_DATA_ACTIVE":      2,
   197  		"EVALUATION_MISSING_DATA_NO_OP":       3,
   198  	}
   199  )
   200  
   201  func (x AlertPolicy_Condition_EvaluationMissingData) Enum() *AlertPolicy_Condition_EvaluationMissingData {
   202  	p := new(AlertPolicy_Condition_EvaluationMissingData)
   203  	*p = x
   204  	return p
   205  }
   206  
   207  func (x AlertPolicy_Condition_EvaluationMissingData) String() string {
   208  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   209  }
   210  
   211  func (AlertPolicy_Condition_EvaluationMissingData) Descriptor() protoreflect.EnumDescriptor {
   212  	return file_google_monitoring_v3_alert_proto_enumTypes[2].Descriptor()
   213  }
   214  
   215  func (AlertPolicy_Condition_EvaluationMissingData) Type() protoreflect.EnumType {
   216  	return &file_google_monitoring_v3_alert_proto_enumTypes[2]
   217  }
   218  
   219  func (x AlertPolicy_Condition_EvaluationMissingData) Number() protoreflect.EnumNumber {
   220  	return protoreflect.EnumNumber(x)
   221  }
   222  
   223  // Deprecated: Use AlertPolicy_Condition_EvaluationMissingData.Descriptor instead.
   224  func (AlertPolicy_Condition_EvaluationMissingData) EnumDescriptor() ([]byte, []int) {
   225  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 0}
   226  }
   227  
   228  // A description of the conditions under which some aspect of your system is
   229  // considered to be "unhealthy" and the ways to notify people or services about
   230  // this state. For an overview of alert policies, see
   231  // [Introduction to Alerting](https://cloud.google.com/monitoring/alerts/).
   232  type AlertPolicy struct {
   233  	state         protoimpl.MessageState
   234  	sizeCache     protoimpl.SizeCache
   235  	unknownFields protoimpl.UnknownFields
   236  
   237  	// Required if the policy exists. The resource name for this policy. The
   238  	// format is:
   239  	//
   240  	//	projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
   241  	//
   242  	// `[ALERT_POLICY_ID]` is assigned by Cloud Monitoring when the policy
   243  	// is created. When calling the
   244  	// [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy]
   245  	// method, do not include the `name` field in the alerting policy passed as
   246  	// part of the request.
   247  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   248  	// A short name or phrase used to identify the policy in dashboards,
   249  	// notifications, and incidents. To avoid confusion, don't use the same
   250  	// display name for multiple policies in the same project. The name is
   251  	// limited to 512 Unicode characters.
   252  	//
   253  	// The convention for the display_name of a PrometheusQueryLanguageCondition
   254  	// is "{rule group name}/{alert name}", where the {rule group name} and
   255  	// {alert name} should be taken from the corresponding Prometheus
   256  	// configuration file. This convention is not enforced.
   257  	// In any case the display_name is not a unique key of the AlertPolicy.
   258  	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
   259  	// Documentation that is included with notifications and incidents related to
   260  	// this policy. Best practice is for the documentation to include information
   261  	// to help responders understand, mitigate, escalate, and correct the
   262  	// underlying problems detected by the alerting policy. Notification channels
   263  	// that have limited capacity might not show this documentation.
   264  	Documentation *AlertPolicy_Documentation `protobuf:"bytes,13,opt,name=documentation,proto3" json:"documentation,omitempty"`
   265  	// User-supplied key/value data to be used for organizing and
   266  	// identifying the `AlertPolicy` objects.
   267  	//
   268  	// The field can contain up to 64 entries. Each key and value is limited to
   269  	// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
   270  	// values can contain only lowercase letters, numerals, underscores, and
   271  	// dashes. Keys must begin with a letter.
   272  	//
   273  	// Note that Prometheus {alert name} is a
   274  	// [valid Prometheus label
   275  	// names](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels),
   276  	// whereas Prometheus {rule group} is an unrestricted UTF-8 string.
   277  	// This means that they cannot be stored as-is in user labels, because
   278  	// they may contain characters that are not allowed in user-label values.
   279  	UserLabels map[string]string `protobuf:"bytes,16,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   280  	// A list of conditions for the policy. The conditions are combined by AND or
   281  	// OR according to the `combiner` field. If the combined conditions evaluate
   282  	// to true, then an incident is created. A policy can have from one to six
   283  	// conditions.
   284  	// If `condition_time_series_query_language` is present, it must be the only
   285  	// `condition`.
   286  	// If `condition_monitoring_query_language` is present, it must be the only
   287  	// `condition`.
   288  	Conditions []*AlertPolicy_Condition `protobuf:"bytes,12,rep,name=conditions,proto3" json:"conditions,omitempty"`
   289  	// How to combine the results of multiple conditions to determine if an
   290  	// incident should be opened.
   291  	// If `condition_time_series_query_language` is present, this must be
   292  	// `COMBINE_UNSPECIFIED`.
   293  	Combiner AlertPolicy_ConditionCombinerType `protobuf:"varint,6,opt,name=combiner,proto3,enum=google.monitoring.v3.AlertPolicy_ConditionCombinerType" json:"combiner,omitempty"`
   294  	// Whether or not the policy is enabled. On write, the default interpretation
   295  	// if unset is that the policy is enabled. On read, clients should not make
   296  	// any assumption about the state if it has not been populated. The
   297  	// field should always be populated on List and Get operations, unless
   298  	// a field projection has been specified that strips it out.
   299  	Enabled *wrapperspb.BoolValue `protobuf:"bytes,17,opt,name=enabled,proto3" json:"enabled,omitempty"`
   300  	// Read-only description of how the alert policy is invalid. This field is
   301  	// only set when the alert policy is invalid. An invalid alert policy will not
   302  	// generate incidents.
   303  	Validity *status.Status `protobuf:"bytes,18,opt,name=validity,proto3" json:"validity,omitempty"`
   304  	// Identifies the notification channels to which notifications should be sent
   305  	// when incidents are opened or closed or when new violations occur on
   306  	// an already opened incident. Each element of this array corresponds to
   307  	// the `name` field in each of the
   308  	// [`NotificationChannel`][google.monitoring.v3.NotificationChannel]
   309  	// objects that are returned from the [`ListNotificationChannels`]
   310  	// [google.monitoring.v3.NotificationChannelService.ListNotificationChannels]
   311  	// method. The format of the entries in this field is:
   312  	//
   313  	//	projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
   314  	NotificationChannels []string `protobuf:"bytes,14,rep,name=notification_channels,json=notificationChannels,proto3" json:"notification_channels,omitempty"`
   315  	// A read-only record of the creation of the alerting policy. If provided
   316  	// in a call to create or update, this field will be ignored.
   317  	CreationRecord *MutationRecord `protobuf:"bytes,10,opt,name=creation_record,json=creationRecord,proto3" json:"creation_record,omitempty"`
   318  	// A read-only record of the most recent change to the alerting policy. If
   319  	// provided in a call to create or update, this field will be ignored.
   320  	MutationRecord *MutationRecord `protobuf:"bytes,11,opt,name=mutation_record,json=mutationRecord,proto3" json:"mutation_record,omitempty"`
   321  	// Control over how this alert policy's notification channels are notified.
   322  	AlertStrategy *AlertPolicy_AlertStrategy `protobuf:"bytes,21,opt,name=alert_strategy,json=alertStrategy,proto3" json:"alert_strategy,omitempty"`
   323  	// Optional. The severity of an alert policy indicates how important incidents
   324  	// generated by that policy are. The severity level will be displayed on the
   325  	// Incident detail page and in notifications.
   326  	Severity AlertPolicy_Severity `protobuf:"varint,22,opt,name=severity,proto3,enum=google.monitoring.v3.AlertPolicy_Severity" json:"severity,omitempty"`
   327  }
   328  
   329  func (x *AlertPolicy) Reset() {
   330  	*x = AlertPolicy{}
   331  	if protoimpl.UnsafeEnabled {
   332  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[0]
   333  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   334  		ms.StoreMessageInfo(mi)
   335  	}
   336  }
   337  
   338  func (x *AlertPolicy) String() string {
   339  	return protoimpl.X.MessageStringOf(x)
   340  }
   341  
   342  func (*AlertPolicy) ProtoMessage() {}
   343  
   344  func (x *AlertPolicy) ProtoReflect() protoreflect.Message {
   345  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[0]
   346  	if protoimpl.UnsafeEnabled && x != nil {
   347  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   348  		if ms.LoadMessageInfo() == nil {
   349  			ms.StoreMessageInfo(mi)
   350  		}
   351  		return ms
   352  	}
   353  	return mi.MessageOf(x)
   354  }
   355  
   356  // Deprecated: Use AlertPolicy.ProtoReflect.Descriptor instead.
   357  func (*AlertPolicy) Descriptor() ([]byte, []int) {
   358  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0}
   359  }
   360  
   361  func (x *AlertPolicy) GetName() string {
   362  	if x != nil {
   363  		return x.Name
   364  	}
   365  	return ""
   366  }
   367  
   368  func (x *AlertPolicy) GetDisplayName() string {
   369  	if x != nil {
   370  		return x.DisplayName
   371  	}
   372  	return ""
   373  }
   374  
   375  func (x *AlertPolicy) GetDocumentation() *AlertPolicy_Documentation {
   376  	if x != nil {
   377  		return x.Documentation
   378  	}
   379  	return nil
   380  }
   381  
   382  func (x *AlertPolicy) GetUserLabels() map[string]string {
   383  	if x != nil {
   384  		return x.UserLabels
   385  	}
   386  	return nil
   387  }
   388  
   389  func (x *AlertPolicy) GetConditions() []*AlertPolicy_Condition {
   390  	if x != nil {
   391  		return x.Conditions
   392  	}
   393  	return nil
   394  }
   395  
   396  func (x *AlertPolicy) GetCombiner() AlertPolicy_ConditionCombinerType {
   397  	if x != nil {
   398  		return x.Combiner
   399  	}
   400  	return AlertPolicy_COMBINE_UNSPECIFIED
   401  }
   402  
   403  func (x *AlertPolicy) GetEnabled() *wrapperspb.BoolValue {
   404  	if x != nil {
   405  		return x.Enabled
   406  	}
   407  	return nil
   408  }
   409  
   410  func (x *AlertPolicy) GetValidity() *status.Status {
   411  	if x != nil {
   412  		return x.Validity
   413  	}
   414  	return nil
   415  }
   416  
   417  func (x *AlertPolicy) GetNotificationChannels() []string {
   418  	if x != nil {
   419  		return x.NotificationChannels
   420  	}
   421  	return nil
   422  }
   423  
   424  func (x *AlertPolicy) GetCreationRecord() *MutationRecord {
   425  	if x != nil {
   426  		return x.CreationRecord
   427  	}
   428  	return nil
   429  }
   430  
   431  func (x *AlertPolicy) GetMutationRecord() *MutationRecord {
   432  	if x != nil {
   433  		return x.MutationRecord
   434  	}
   435  	return nil
   436  }
   437  
   438  func (x *AlertPolicy) GetAlertStrategy() *AlertPolicy_AlertStrategy {
   439  	if x != nil {
   440  		return x.AlertStrategy
   441  	}
   442  	return nil
   443  }
   444  
   445  func (x *AlertPolicy) GetSeverity() AlertPolicy_Severity {
   446  	if x != nil {
   447  		return x.Severity
   448  	}
   449  	return AlertPolicy_SEVERITY_UNSPECIFIED
   450  }
   451  
   452  // Documentation that is included in the notifications and incidents
   453  // pertaining to this policy.
   454  type AlertPolicy_Documentation struct {
   455  	state         protoimpl.MessageState
   456  	sizeCache     protoimpl.SizeCache
   457  	unknownFields protoimpl.UnknownFields
   458  
   459  	// The body of the documentation, interpreted according to `mime_type`.
   460  	// The content may not exceed 8,192 Unicode characters and may not exceed
   461  	// more than 10,240 bytes when encoded in UTF-8 format, whichever is
   462  	// smaller. This text can be [templatized by using
   463  	// variables](https://cloud.google.com/monitoring/alerts/doc-variables).
   464  	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
   465  	// The format of the `content` field. Presently, only the value
   466  	// `"text/markdown"` is supported. See
   467  	// [Markdown](https://en.wikipedia.org/wiki/Markdown) for more information.
   468  	MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
   469  	// Optional. The subject line of the notification. The subject line may not
   470  	// exceed 10,240 bytes. In notifications generated by this policy, the
   471  	// contents of the subject line after variable expansion will be truncated
   472  	// to 255 bytes or shorter at the latest UTF-8 character boundary. The
   473  	// 255-byte limit is recommended by [this
   474  	// thread](https://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit).
   475  	// It is both the limit imposed by some third-party ticketing products and
   476  	// it is common to define textual fields in databases as VARCHAR(255).
   477  	//
   478  	// The contents of the subject line can be [templatized by using
   479  	// variables](https://cloud.google.com/monitoring/alerts/doc-variables).
   480  	// If this field is missing or empty, a default subject line will be
   481  	// generated.
   482  	Subject string `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"`
   483  }
   484  
   485  func (x *AlertPolicy_Documentation) Reset() {
   486  	*x = AlertPolicy_Documentation{}
   487  	if protoimpl.UnsafeEnabled {
   488  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[1]
   489  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   490  		ms.StoreMessageInfo(mi)
   491  	}
   492  }
   493  
   494  func (x *AlertPolicy_Documentation) String() string {
   495  	return protoimpl.X.MessageStringOf(x)
   496  }
   497  
   498  func (*AlertPolicy_Documentation) ProtoMessage() {}
   499  
   500  func (x *AlertPolicy_Documentation) ProtoReflect() protoreflect.Message {
   501  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[1]
   502  	if protoimpl.UnsafeEnabled && x != nil {
   503  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   504  		if ms.LoadMessageInfo() == nil {
   505  			ms.StoreMessageInfo(mi)
   506  		}
   507  		return ms
   508  	}
   509  	return mi.MessageOf(x)
   510  }
   511  
   512  // Deprecated: Use AlertPolicy_Documentation.ProtoReflect.Descriptor instead.
   513  func (*AlertPolicy_Documentation) Descriptor() ([]byte, []int) {
   514  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 0}
   515  }
   516  
   517  func (x *AlertPolicy_Documentation) GetContent() string {
   518  	if x != nil {
   519  		return x.Content
   520  	}
   521  	return ""
   522  }
   523  
   524  func (x *AlertPolicy_Documentation) GetMimeType() string {
   525  	if x != nil {
   526  		return x.MimeType
   527  	}
   528  	return ""
   529  }
   530  
   531  func (x *AlertPolicy_Documentation) GetSubject() string {
   532  	if x != nil {
   533  		return x.Subject
   534  	}
   535  	return ""
   536  }
   537  
   538  // A condition is a true/false test that determines when an alerting policy
   539  // should open an incident. If a condition evaluates to true, it signifies
   540  // that something is wrong.
   541  type AlertPolicy_Condition struct {
   542  	state         protoimpl.MessageState
   543  	sizeCache     protoimpl.SizeCache
   544  	unknownFields protoimpl.UnknownFields
   545  
   546  	// Required if the condition exists. The unique resource name for this
   547  	// condition. Its format is:
   548  	//
   549  	//	projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]
   550  	//
   551  	// `[CONDITION_ID]` is assigned by Cloud Monitoring when the
   552  	// condition is created as part of a new or updated alerting policy.
   553  	//
   554  	// When calling the
   555  	// [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy]
   556  	// method, do not include the `name` field in the conditions of the
   557  	// requested alerting policy. Cloud Monitoring creates the
   558  	// condition identifiers and includes them in the new policy.
   559  	//
   560  	// When calling the
   561  	// [alertPolicies.update][google.monitoring.v3.AlertPolicyService.UpdateAlertPolicy]
   562  	// method to update a policy, including a condition `name` causes the
   563  	// existing condition to be updated. Conditions without names are added to
   564  	// the updated policy. Existing conditions are deleted if they are not
   565  	// updated.
   566  	//
   567  	// Best practice is to preserve `[CONDITION_ID]` if you make only small
   568  	// changes, such as those to condition thresholds, durations, or trigger
   569  	// values.  Otherwise, treat the change as a new condition and let the
   570  	// existing condition be deleted.
   571  	Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
   572  	// A short name or phrase used to identify the condition in dashboards,
   573  	// notifications, and incidents. To avoid confusion, don't use the same
   574  	// display name for multiple conditions in the same policy.
   575  	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
   576  	// Only one of the following condition types will be specified.
   577  	//
   578  	// Types that are assignable to Condition:
   579  	//
   580  	//	*AlertPolicy_Condition_ConditionThreshold
   581  	//	*AlertPolicy_Condition_ConditionAbsent
   582  	//	*AlertPolicy_Condition_ConditionMatchedLog
   583  	//	*AlertPolicy_Condition_ConditionMonitoringQueryLanguage
   584  	//	*AlertPolicy_Condition_ConditionPrometheusQueryLanguage
   585  	Condition isAlertPolicy_Condition_Condition `protobuf_oneof:"condition"`
   586  }
   587  
   588  func (x *AlertPolicy_Condition) Reset() {
   589  	*x = AlertPolicy_Condition{}
   590  	if protoimpl.UnsafeEnabled {
   591  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[2]
   592  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   593  		ms.StoreMessageInfo(mi)
   594  	}
   595  }
   596  
   597  func (x *AlertPolicy_Condition) String() string {
   598  	return protoimpl.X.MessageStringOf(x)
   599  }
   600  
   601  func (*AlertPolicy_Condition) ProtoMessage() {}
   602  
   603  func (x *AlertPolicy_Condition) ProtoReflect() protoreflect.Message {
   604  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[2]
   605  	if protoimpl.UnsafeEnabled && x != nil {
   606  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   607  		if ms.LoadMessageInfo() == nil {
   608  			ms.StoreMessageInfo(mi)
   609  		}
   610  		return ms
   611  	}
   612  	return mi.MessageOf(x)
   613  }
   614  
   615  // Deprecated: Use AlertPolicy_Condition.ProtoReflect.Descriptor instead.
   616  func (*AlertPolicy_Condition) Descriptor() ([]byte, []int) {
   617  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1}
   618  }
   619  
   620  func (x *AlertPolicy_Condition) GetName() string {
   621  	if x != nil {
   622  		return x.Name
   623  	}
   624  	return ""
   625  }
   626  
   627  func (x *AlertPolicy_Condition) GetDisplayName() string {
   628  	if x != nil {
   629  		return x.DisplayName
   630  	}
   631  	return ""
   632  }
   633  
   634  func (m *AlertPolicy_Condition) GetCondition() isAlertPolicy_Condition_Condition {
   635  	if m != nil {
   636  		return m.Condition
   637  	}
   638  	return nil
   639  }
   640  
   641  func (x *AlertPolicy_Condition) GetConditionThreshold() *AlertPolicy_Condition_MetricThreshold {
   642  	if x, ok := x.GetCondition().(*AlertPolicy_Condition_ConditionThreshold); ok {
   643  		return x.ConditionThreshold
   644  	}
   645  	return nil
   646  }
   647  
   648  func (x *AlertPolicy_Condition) GetConditionAbsent() *AlertPolicy_Condition_MetricAbsence {
   649  	if x, ok := x.GetCondition().(*AlertPolicy_Condition_ConditionAbsent); ok {
   650  		return x.ConditionAbsent
   651  	}
   652  	return nil
   653  }
   654  
   655  func (x *AlertPolicy_Condition) GetConditionMatchedLog() *AlertPolicy_Condition_LogMatch {
   656  	if x, ok := x.GetCondition().(*AlertPolicy_Condition_ConditionMatchedLog); ok {
   657  		return x.ConditionMatchedLog
   658  	}
   659  	return nil
   660  }
   661  
   662  func (x *AlertPolicy_Condition) GetConditionMonitoringQueryLanguage() *AlertPolicy_Condition_MonitoringQueryLanguageCondition {
   663  	if x, ok := x.GetCondition().(*AlertPolicy_Condition_ConditionMonitoringQueryLanguage); ok {
   664  		return x.ConditionMonitoringQueryLanguage
   665  	}
   666  	return nil
   667  }
   668  
   669  func (x *AlertPolicy_Condition) GetConditionPrometheusQueryLanguage() *AlertPolicy_Condition_PrometheusQueryLanguageCondition {
   670  	if x, ok := x.GetCondition().(*AlertPolicy_Condition_ConditionPrometheusQueryLanguage); ok {
   671  		return x.ConditionPrometheusQueryLanguage
   672  	}
   673  	return nil
   674  }
   675  
   676  type isAlertPolicy_Condition_Condition interface {
   677  	isAlertPolicy_Condition_Condition()
   678  }
   679  
   680  type AlertPolicy_Condition_ConditionThreshold struct {
   681  	// A condition that compares a time series against a threshold.
   682  	ConditionThreshold *AlertPolicy_Condition_MetricThreshold `protobuf:"bytes,1,opt,name=condition_threshold,json=conditionThreshold,proto3,oneof"`
   683  }
   684  
   685  type AlertPolicy_Condition_ConditionAbsent struct {
   686  	// A condition that checks that a time series continues to
   687  	// receive new data points.
   688  	ConditionAbsent *AlertPolicy_Condition_MetricAbsence `protobuf:"bytes,2,opt,name=condition_absent,json=conditionAbsent,proto3,oneof"`
   689  }
   690  
   691  type AlertPolicy_Condition_ConditionMatchedLog struct {
   692  	// A condition that checks for log messages matching given constraints. If
   693  	// set, no other conditions can be present.
   694  	ConditionMatchedLog *AlertPolicy_Condition_LogMatch `protobuf:"bytes,20,opt,name=condition_matched_log,json=conditionMatchedLog,proto3,oneof"`
   695  }
   696  
   697  type AlertPolicy_Condition_ConditionMonitoringQueryLanguage struct {
   698  	// A condition that uses the Monitoring Query Language to define
   699  	// alerts.
   700  	ConditionMonitoringQueryLanguage *AlertPolicy_Condition_MonitoringQueryLanguageCondition `protobuf:"bytes,19,opt,name=condition_monitoring_query_language,json=conditionMonitoringQueryLanguage,proto3,oneof"`
   701  }
   702  
   703  type AlertPolicy_Condition_ConditionPrometheusQueryLanguage struct {
   704  	// A condition that uses the Prometheus query language to define alerts.
   705  	ConditionPrometheusQueryLanguage *AlertPolicy_Condition_PrometheusQueryLanguageCondition `protobuf:"bytes,21,opt,name=condition_prometheus_query_language,json=conditionPrometheusQueryLanguage,proto3,oneof"`
   706  }
   707  
   708  func (*AlertPolicy_Condition_ConditionThreshold) isAlertPolicy_Condition_Condition() {}
   709  
   710  func (*AlertPolicy_Condition_ConditionAbsent) isAlertPolicy_Condition_Condition() {}
   711  
   712  func (*AlertPolicy_Condition_ConditionMatchedLog) isAlertPolicy_Condition_Condition() {}
   713  
   714  func (*AlertPolicy_Condition_ConditionMonitoringQueryLanguage) isAlertPolicy_Condition_Condition() {}
   715  
   716  func (*AlertPolicy_Condition_ConditionPrometheusQueryLanguage) isAlertPolicy_Condition_Condition() {}
   717  
   718  // Control over how the notification channels in `notification_channels`
   719  // are notified when this alert fires.
   720  type AlertPolicy_AlertStrategy struct {
   721  	state         protoimpl.MessageState
   722  	sizeCache     protoimpl.SizeCache
   723  	unknownFields protoimpl.UnknownFields
   724  
   725  	// Required for alert policies with a `LogMatch` condition.
   726  	//
   727  	// This limit is not implemented for alert policies that are not log-based.
   728  	NotificationRateLimit *AlertPolicy_AlertStrategy_NotificationRateLimit `protobuf:"bytes,1,opt,name=notification_rate_limit,json=notificationRateLimit,proto3" json:"notification_rate_limit,omitempty"`
   729  	// If an alert policy that was active has no data for this long, any open
   730  	// incidents will close
   731  	AutoClose *durationpb.Duration `protobuf:"bytes,3,opt,name=auto_close,json=autoClose,proto3" json:"auto_close,omitempty"`
   732  	// Control how notifications will be sent out, on a per-channel basis.
   733  	NotificationChannelStrategy []*AlertPolicy_AlertStrategy_NotificationChannelStrategy `protobuf:"bytes,4,rep,name=notification_channel_strategy,json=notificationChannelStrategy,proto3" json:"notification_channel_strategy,omitempty"`
   734  }
   735  
   736  func (x *AlertPolicy_AlertStrategy) Reset() {
   737  	*x = AlertPolicy_AlertStrategy{}
   738  	if protoimpl.UnsafeEnabled {
   739  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[3]
   740  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   741  		ms.StoreMessageInfo(mi)
   742  	}
   743  }
   744  
   745  func (x *AlertPolicy_AlertStrategy) String() string {
   746  	return protoimpl.X.MessageStringOf(x)
   747  }
   748  
   749  func (*AlertPolicy_AlertStrategy) ProtoMessage() {}
   750  
   751  func (x *AlertPolicy_AlertStrategy) ProtoReflect() protoreflect.Message {
   752  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[3]
   753  	if protoimpl.UnsafeEnabled && x != nil {
   754  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   755  		if ms.LoadMessageInfo() == nil {
   756  			ms.StoreMessageInfo(mi)
   757  		}
   758  		return ms
   759  	}
   760  	return mi.MessageOf(x)
   761  }
   762  
   763  // Deprecated: Use AlertPolicy_AlertStrategy.ProtoReflect.Descriptor instead.
   764  func (*AlertPolicy_AlertStrategy) Descriptor() ([]byte, []int) {
   765  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 2}
   766  }
   767  
   768  func (x *AlertPolicy_AlertStrategy) GetNotificationRateLimit() *AlertPolicy_AlertStrategy_NotificationRateLimit {
   769  	if x != nil {
   770  		return x.NotificationRateLimit
   771  	}
   772  	return nil
   773  }
   774  
   775  func (x *AlertPolicy_AlertStrategy) GetAutoClose() *durationpb.Duration {
   776  	if x != nil {
   777  		return x.AutoClose
   778  	}
   779  	return nil
   780  }
   781  
   782  func (x *AlertPolicy_AlertStrategy) GetNotificationChannelStrategy() []*AlertPolicy_AlertStrategy_NotificationChannelStrategy {
   783  	if x != nil {
   784  		return x.NotificationChannelStrategy
   785  	}
   786  	return nil
   787  }
   788  
   789  // Specifies how many time series must fail a predicate to trigger a
   790  // condition. If not specified, then a `{count: 1}` trigger is used.
   791  type AlertPolicy_Condition_Trigger struct {
   792  	state         protoimpl.MessageState
   793  	sizeCache     protoimpl.SizeCache
   794  	unknownFields protoimpl.UnknownFields
   795  
   796  	// A type of trigger.
   797  	//
   798  	// Types that are assignable to Type:
   799  	//
   800  	//	*AlertPolicy_Condition_Trigger_Count
   801  	//	*AlertPolicy_Condition_Trigger_Percent
   802  	Type isAlertPolicy_Condition_Trigger_Type `protobuf_oneof:"type"`
   803  }
   804  
   805  func (x *AlertPolicy_Condition_Trigger) Reset() {
   806  	*x = AlertPolicy_Condition_Trigger{}
   807  	if protoimpl.UnsafeEnabled {
   808  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[5]
   809  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   810  		ms.StoreMessageInfo(mi)
   811  	}
   812  }
   813  
   814  func (x *AlertPolicy_Condition_Trigger) String() string {
   815  	return protoimpl.X.MessageStringOf(x)
   816  }
   817  
   818  func (*AlertPolicy_Condition_Trigger) ProtoMessage() {}
   819  
   820  func (x *AlertPolicy_Condition_Trigger) ProtoReflect() protoreflect.Message {
   821  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[5]
   822  	if protoimpl.UnsafeEnabled && x != nil {
   823  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   824  		if ms.LoadMessageInfo() == nil {
   825  			ms.StoreMessageInfo(mi)
   826  		}
   827  		return ms
   828  	}
   829  	return mi.MessageOf(x)
   830  }
   831  
   832  // Deprecated: Use AlertPolicy_Condition_Trigger.ProtoReflect.Descriptor instead.
   833  func (*AlertPolicy_Condition_Trigger) Descriptor() ([]byte, []int) {
   834  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 0}
   835  }
   836  
   837  func (m *AlertPolicy_Condition_Trigger) GetType() isAlertPolicy_Condition_Trigger_Type {
   838  	if m != nil {
   839  		return m.Type
   840  	}
   841  	return nil
   842  }
   843  
   844  func (x *AlertPolicy_Condition_Trigger) GetCount() int32 {
   845  	if x, ok := x.GetType().(*AlertPolicy_Condition_Trigger_Count); ok {
   846  		return x.Count
   847  	}
   848  	return 0
   849  }
   850  
   851  func (x *AlertPolicy_Condition_Trigger) GetPercent() float64 {
   852  	if x, ok := x.GetType().(*AlertPolicy_Condition_Trigger_Percent); ok {
   853  		return x.Percent
   854  	}
   855  	return 0
   856  }
   857  
   858  type isAlertPolicy_Condition_Trigger_Type interface {
   859  	isAlertPolicy_Condition_Trigger_Type()
   860  }
   861  
   862  type AlertPolicy_Condition_Trigger_Count struct {
   863  	// The absolute number of time series that must fail
   864  	// the predicate for the condition to be triggered.
   865  	Count int32 `protobuf:"varint,1,opt,name=count,proto3,oneof"`
   866  }
   867  
   868  type AlertPolicy_Condition_Trigger_Percent struct {
   869  	// The percentage of time series that must fail the
   870  	// predicate for the condition to be triggered.
   871  	Percent float64 `protobuf:"fixed64,2,opt,name=percent,proto3,oneof"`
   872  }
   873  
   874  func (*AlertPolicy_Condition_Trigger_Count) isAlertPolicy_Condition_Trigger_Type() {}
   875  
   876  func (*AlertPolicy_Condition_Trigger_Percent) isAlertPolicy_Condition_Trigger_Type() {}
   877  
   878  // A condition type that compares a collection of time series
   879  // against a threshold.
   880  type AlertPolicy_Condition_MetricThreshold struct {
   881  	state         protoimpl.MessageState
   882  	sizeCache     protoimpl.SizeCache
   883  	unknownFields protoimpl.UnknownFields
   884  
   885  	// Required. A
   886  	// [filter](https://cloud.google.com/monitoring/api/v3/filters) that
   887  	// identifies which time series should be compared with the threshold.
   888  	//
   889  	// The filter is similar to the one that is specified in the
   890  	// [`ListTimeSeries`
   891  	// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
   892  	// (that call is useful to verify the time series that will be retrieved /
   893  	// processed). The filter must specify the metric type and the resource
   894  	// type. Optionally, it can specify resource labels and metric labels.
   895  	// This field must not exceed 2048 Unicode characters in length.
   896  	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
   897  	// Specifies the alignment of data points in individual time series as
   898  	// well as how to combine the retrieved time series together (such as
   899  	// when aggregating multiple streams on each resource to a single
   900  	// stream for each resource or when aggregating streams across all
   901  	// members of a group of resources). Multiple aggregations
   902  	// are applied in the order specified.
   903  	//
   904  	// This field is similar to the one in the [`ListTimeSeries`
   905  	// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
   906  	// It is advisable to use the `ListTimeSeries` method when debugging this
   907  	// field.
   908  	Aggregations []*Aggregation `protobuf:"bytes,8,rep,name=aggregations,proto3" json:"aggregations,omitempty"`
   909  	// A [filter](https://cloud.google.com/monitoring/api/v3/filters) that
   910  	// identifies a time series that should be used as the denominator of a
   911  	// ratio that will be compared with the threshold. If a
   912  	// `denominator_filter` is specified, the time series specified by the
   913  	// `filter` field will be used as the numerator.
   914  	//
   915  	// The filter must specify the metric type and optionally may contain
   916  	// restrictions on resource type, resource labels, and metric labels.
   917  	// This field may not exceed 2048 Unicode characters in length.
   918  	DenominatorFilter string `protobuf:"bytes,9,opt,name=denominator_filter,json=denominatorFilter,proto3" json:"denominator_filter,omitempty"`
   919  	// Specifies the alignment of data points in individual time series
   920  	// selected by `denominatorFilter` as
   921  	// well as how to combine the retrieved time series together (such as
   922  	// when aggregating multiple streams on each resource to a single
   923  	// stream for each resource or when aggregating streams across all
   924  	// members of a group of resources).
   925  	//
   926  	// When computing ratios, the `aggregations` and
   927  	// `denominator_aggregations` fields must use the same alignment period
   928  	// and produce time series that have the same periodicity and labels.
   929  	DenominatorAggregations []*Aggregation `protobuf:"bytes,10,rep,name=denominator_aggregations,json=denominatorAggregations,proto3" json:"denominator_aggregations,omitempty"`
   930  	// When this field is present, the `MetricThreshold` condition forecasts
   931  	// whether the time series is predicted to violate the threshold within
   932  	// the `forecast_horizon`. When this field is not set, the
   933  	// `MetricThreshold` tests the current value of the timeseries against the
   934  	// threshold.
   935  	ForecastOptions *AlertPolicy_Condition_MetricThreshold_ForecastOptions `protobuf:"bytes,12,opt,name=forecast_options,json=forecastOptions,proto3" json:"forecast_options,omitempty"`
   936  	// The comparison to apply between the time series (indicated by `filter`
   937  	// and `aggregation`) and the threshold (indicated by `threshold_value`).
   938  	// The comparison is applied on each time series, with the time series
   939  	// on the left-hand side and the threshold on the right-hand side.
   940  	//
   941  	// Only `COMPARISON_LT` and `COMPARISON_GT` are supported currently.
   942  	Comparison ComparisonType `protobuf:"varint,4,opt,name=comparison,proto3,enum=google.monitoring.v3.ComparisonType" json:"comparison,omitempty"`
   943  	// A value against which to compare the time series.
   944  	ThresholdValue float64 `protobuf:"fixed64,5,opt,name=threshold_value,json=thresholdValue,proto3" json:"threshold_value,omitempty"`
   945  	// The amount of time that a time series must violate the
   946  	// threshold to be considered failing. Currently, only values
   947  	// that are a multiple of a minute--e.g., 0, 60, 120, or 300
   948  	// seconds--are supported. If an invalid value is given, an
   949  	// error will be returned. When choosing a duration, it is useful to
   950  	// keep in mind the frequency of the underlying time series data
   951  	// (which may also be affected by any alignments specified in the
   952  	// `aggregations` field); a good duration is long enough so that a single
   953  	// outlier does not generate spurious alerts, but short enough that
   954  	// unhealthy states are detected and alerted on quickly.
   955  	Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"`
   956  	// The number/percent of time series for which the comparison must hold
   957  	// in order for the condition to trigger. If unspecified, then the
   958  	// condition will trigger if the comparison is true for any of the
   959  	// time series that have been identified by `filter` and `aggregations`,
   960  	// or by the ratio, if `denominator_filter` and `denominator_aggregations`
   961  	// are specified.
   962  	Trigger *AlertPolicy_Condition_Trigger `protobuf:"bytes,7,opt,name=trigger,proto3" json:"trigger,omitempty"`
   963  	// A condition control that determines how metric-threshold conditions
   964  	// are evaluated when data stops arriving. To use this control, the value
   965  	// of the `duration` field must be greater than or equal to 60 seconds.
   966  	EvaluationMissingData AlertPolicy_Condition_EvaluationMissingData `protobuf:"varint,11,opt,name=evaluation_missing_data,json=evaluationMissingData,proto3,enum=google.monitoring.v3.AlertPolicy_Condition_EvaluationMissingData" json:"evaluation_missing_data,omitempty"`
   967  }
   968  
   969  func (x *AlertPolicy_Condition_MetricThreshold) Reset() {
   970  	*x = AlertPolicy_Condition_MetricThreshold{}
   971  	if protoimpl.UnsafeEnabled {
   972  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[6]
   973  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   974  		ms.StoreMessageInfo(mi)
   975  	}
   976  }
   977  
   978  func (x *AlertPolicy_Condition_MetricThreshold) String() string {
   979  	return protoimpl.X.MessageStringOf(x)
   980  }
   981  
   982  func (*AlertPolicy_Condition_MetricThreshold) ProtoMessage() {}
   983  
   984  func (x *AlertPolicy_Condition_MetricThreshold) ProtoReflect() protoreflect.Message {
   985  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[6]
   986  	if protoimpl.UnsafeEnabled && x != nil {
   987  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   988  		if ms.LoadMessageInfo() == nil {
   989  			ms.StoreMessageInfo(mi)
   990  		}
   991  		return ms
   992  	}
   993  	return mi.MessageOf(x)
   994  }
   995  
   996  // Deprecated: Use AlertPolicy_Condition_MetricThreshold.ProtoReflect.Descriptor instead.
   997  func (*AlertPolicy_Condition_MetricThreshold) Descriptor() ([]byte, []int) {
   998  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 1}
   999  }
  1000  
  1001  func (x *AlertPolicy_Condition_MetricThreshold) GetFilter() string {
  1002  	if x != nil {
  1003  		return x.Filter
  1004  	}
  1005  	return ""
  1006  }
  1007  
  1008  func (x *AlertPolicy_Condition_MetricThreshold) GetAggregations() []*Aggregation {
  1009  	if x != nil {
  1010  		return x.Aggregations
  1011  	}
  1012  	return nil
  1013  }
  1014  
  1015  func (x *AlertPolicy_Condition_MetricThreshold) GetDenominatorFilter() string {
  1016  	if x != nil {
  1017  		return x.DenominatorFilter
  1018  	}
  1019  	return ""
  1020  }
  1021  
  1022  func (x *AlertPolicy_Condition_MetricThreshold) GetDenominatorAggregations() []*Aggregation {
  1023  	if x != nil {
  1024  		return x.DenominatorAggregations
  1025  	}
  1026  	return nil
  1027  }
  1028  
  1029  func (x *AlertPolicy_Condition_MetricThreshold) GetForecastOptions() *AlertPolicy_Condition_MetricThreshold_ForecastOptions {
  1030  	if x != nil {
  1031  		return x.ForecastOptions
  1032  	}
  1033  	return nil
  1034  }
  1035  
  1036  func (x *AlertPolicy_Condition_MetricThreshold) GetComparison() ComparisonType {
  1037  	if x != nil {
  1038  		return x.Comparison
  1039  	}
  1040  	return ComparisonType_COMPARISON_UNSPECIFIED
  1041  }
  1042  
  1043  func (x *AlertPolicy_Condition_MetricThreshold) GetThresholdValue() float64 {
  1044  	if x != nil {
  1045  		return x.ThresholdValue
  1046  	}
  1047  	return 0
  1048  }
  1049  
  1050  func (x *AlertPolicy_Condition_MetricThreshold) GetDuration() *durationpb.Duration {
  1051  	if x != nil {
  1052  		return x.Duration
  1053  	}
  1054  	return nil
  1055  }
  1056  
  1057  func (x *AlertPolicy_Condition_MetricThreshold) GetTrigger() *AlertPolicy_Condition_Trigger {
  1058  	if x != nil {
  1059  		return x.Trigger
  1060  	}
  1061  	return nil
  1062  }
  1063  
  1064  func (x *AlertPolicy_Condition_MetricThreshold) GetEvaluationMissingData() AlertPolicy_Condition_EvaluationMissingData {
  1065  	if x != nil {
  1066  		return x.EvaluationMissingData
  1067  	}
  1068  	return AlertPolicy_Condition_EVALUATION_MISSING_DATA_UNSPECIFIED
  1069  }
  1070  
  1071  // A condition type that checks that monitored resources
  1072  // are reporting data. The configuration defines a metric and
  1073  // a set of monitored resources. The predicate is considered in violation
  1074  // when a time series for the specified metric of a monitored
  1075  // resource does not include any data in the specified `duration`.
  1076  type AlertPolicy_Condition_MetricAbsence struct {
  1077  	state         protoimpl.MessageState
  1078  	sizeCache     protoimpl.SizeCache
  1079  	unknownFields protoimpl.UnknownFields
  1080  
  1081  	// Required. A
  1082  	// [filter](https://cloud.google.com/monitoring/api/v3/filters) that
  1083  	// identifies which time series should be compared with the threshold.
  1084  	//
  1085  	// The filter is similar to the one that is specified in the
  1086  	// [`ListTimeSeries`
  1087  	// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
  1088  	// (that call is useful to verify the time series that will be retrieved /
  1089  	// processed). The filter must specify the metric type and the resource
  1090  	// type. Optionally, it can specify resource labels and metric labels.
  1091  	// This field must not exceed 2048 Unicode characters in length.
  1092  	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
  1093  	// Specifies the alignment of data points in individual time series as
  1094  	// well as how to combine the retrieved time series together (such as
  1095  	// when aggregating multiple streams on each resource to a single
  1096  	// stream for each resource or when aggregating streams across all
  1097  	// members of a group of resources). Multiple aggregations
  1098  	// are applied in the order specified.
  1099  	//
  1100  	// This field is similar to the one in the [`ListTimeSeries`
  1101  	// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
  1102  	// It is advisable to use the `ListTimeSeries` method when debugging this
  1103  	// field.
  1104  	Aggregations []*Aggregation `protobuf:"bytes,5,rep,name=aggregations,proto3" json:"aggregations,omitempty"`
  1105  	// The amount of time that a time series must fail to report new
  1106  	// data to be considered failing. The minimum value of this field
  1107  	// is 120 seconds. Larger values that are a multiple of a
  1108  	// minute--for example, 240 or 300 seconds--are supported.
  1109  	// If an invalid value is given, an
  1110  	// error will be returned. The `Duration.nanos` field is
  1111  	// ignored.
  1112  	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
  1113  	// The number/percent of time series for which the comparison must hold
  1114  	// in order for the condition to trigger. If unspecified, then the
  1115  	// condition will trigger if the comparison is true for any of the
  1116  	// time series that have been identified by `filter` and `aggregations`.
  1117  	Trigger *AlertPolicy_Condition_Trigger `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"`
  1118  }
  1119  
  1120  func (x *AlertPolicy_Condition_MetricAbsence) Reset() {
  1121  	*x = AlertPolicy_Condition_MetricAbsence{}
  1122  	if protoimpl.UnsafeEnabled {
  1123  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[7]
  1124  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1125  		ms.StoreMessageInfo(mi)
  1126  	}
  1127  }
  1128  
  1129  func (x *AlertPolicy_Condition_MetricAbsence) String() string {
  1130  	return protoimpl.X.MessageStringOf(x)
  1131  }
  1132  
  1133  func (*AlertPolicy_Condition_MetricAbsence) ProtoMessage() {}
  1134  
  1135  func (x *AlertPolicy_Condition_MetricAbsence) ProtoReflect() protoreflect.Message {
  1136  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[7]
  1137  	if protoimpl.UnsafeEnabled && x != nil {
  1138  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1139  		if ms.LoadMessageInfo() == nil {
  1140  			ms.StoreMessageInfo(mi)
  1141  		}
  1142  		return ms
  1143  	}
  1144  	return mi.MessageOf(x)
  1145  }
  1146  
  1147  // Deprecated: Use AlertPolicy_Condition_MetricAbsence.ProtoReflect.Descriptor instead.
  1148  func (*AlertPolicy_Condition_MetricAbsence) Descriptor() ([]byte, []int) {
  1149  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 2}
  1150  }
  1151  
  1152  func (x *AlertPolicy_Condition_MetricAbsence) GetFilter() string {
  1153  	if x != nil {
  1154  		return x.Filter
  1155  	}
  1156  	return ""
  1157  }
  1158  
  1159  func (x *AlertPolicy_Condition_MetricAbsence) GetAggregations() []*Aggregation {
  1160  	if x != nil {
  1161  		return x.Aggregations
  1162  	}
  1163  	return nil
  1164  }
  1165  
  1166  func (x *AlertPolicy_Condition_MetricAbsence) GetDuration() *durationpb.Duration {
  1167  	if x != nil {
  1168  		return x.Duration
  1169  	}
  1170  	return nil
  1171  }
  1172  
  1173  func (x *AlertPolicy_Condition_MetricAbsence) GetTrigger() *AlertPolicy_Condition_Trigger {
  1174  	if x != nil {
  1175  		return x.Trigger
  1176  	}
  1177  	return nil
  1178  }
  1179  
  1180  // A condition type that checks whether a log message in the [scoping
  1181  // project](https://cloud.google.com/monitoring/api/v3#project_name)
  1182  // satisfies the given filter. Logs from other projects in the metrics
  1183  // scope are not evaluated.
  1184  type AlertPolicy_Condition_LogMatch struct {
  1185  	state         protoimpl.MessageState
  1186  	sizeCache     protoimpl.SizeCache
  1187  	unknownFields protoimpl.UnknownFields
  1188  
  1189  	// Required. A logs-based filter. See [Advanced Logs
  1190  	// Queries](https://cloud.google.com/logging/docs/view/advanced-queries)
  1191  	// for how this filter should be constructed.
  1192  	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
  1193  	// Optional. A map from a label key to an extractor expression, which is
  1194  	// used to extract the value for this label key. Each entry in this map is
  1195  	// a specification for how data should be extracted from log entries that
  1196  	// match `filter`. Each combination of extracted values is treated as a
  1197  	// separate rule for the purposes of triggering notifications. Label keys
  1198  	// and corresponding values can be used in notifications generated by this
  1199  	// condition.
  1200  	//
  1201  	// Please see [the documentation on logs-based metric
  1202  	// `valueExtractor`s](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics#LogMetric.FIELDS.value_extractor)
  1203  	// for syntax and examples.
  1204  	LabelExtractors map[string]string `protobuf:"bytes,2,rep,name=label_extractors,json=labelExtractors,proto3" json:"label_extractors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1205  }
  1206  
  1207  func (x *AlertPolicy_Condition_LogMatch) Reset() {
  1208  	*x = AlertPolicy_Condition_LogMatch{}
  1209  	if protoimpl.UnsafeEnabled {
  1210  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[8]
  1211  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1212  		ms.StoreMessageInfo(mi)
  1213  	}
  1214  }
  1215  
  1216  func (x *AlertPolicy_Condition_LogMatch) String() string {
  1217  	return protoimpl.X.MessageStringOf(x)
  1218  }
  1219  
  1220  func (*AlertPolicy_Condition_LogMatch) ProtoMessage() {}
  1221  
  1222  func (x *AlertPolicy_Condition_LogMatch) ProtoReflect() protoreflect.Message {
  1223  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[8]
  1224  	if protoimpl.UnsafeEnabled && x != nil {
  1225  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1226  		if ms.LoadMessageInfo() == nil {
  1227  			ms.StoreMessageInfo(mi)
  1228  		}
  1229  		return ms
  1230  	}
  1231  	return mi.MessageOf(x)
  1232  }
  1233  
  1234  // Deprecated: Use AlertPolicy_Condition_LogMatch.ProtoReflect.Descriptor instead.
  1235  func (*AlertPolicy_Condition_LogMatch) Descriptor() ([]byte, []int) {
  1236  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 3}
  1237  }
  1238  
  1239  func (x *AlertPolicy_Condition_LogMatch) GetFilter() string {
  1240  	if x != nil {
  1241  		return x.Filter
  1242  	}
  1243  	return ""
  1244  }
  1245  
  1246  func (x *AlertPolicy_Condition_LogMatch) GetLabelExtractors() map[string]string {
  1247  	if x != nil {
  1248  		return x.LabelExtractors
  1249  	}
  1250  	return nil
  1251  }
  1252  
  1253  // A condition type that allows alert policies to be defined using
  1254  // [Monitoring Query Language](https://cloud.google.com/monitoring/mql).
  1255  type AlertPolicy_Condition_MonitoringQueryLanguageCondition struct {
  1256  	state         protoimpl.MessageState
  1257  	sizeCache     protoimpl.SizeCache
  1258  	unknownFields protoimpl.UnknownFields
  1259  
  1260  	// [Monitoring Query Language](https://cloud.google.com/monitoring/mql)
  1261  	// query that outputs a boolean stream.
  1262  	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
  1263  	// The amount of time that a time series must violate the
  1264  	// threshold to be considered failing. Currently, only values
  1265  	// that are a multiple of a minute--e.g., 0, 60, 120, or 300
  1266  	// seconds--are supported. If an invalid value is given, an
  1267  	// error will be returned. When choosing a duration, it is useful to
  1268  	// keep in mind the frequency of the underlying time series data
  1269  	// (which may also be affected by any alignments specified in the
  1270  	// `aggregations` field); a good duration is long enough so that a single
  1271  	// outlier does not generate spurious alerts, but short enough that
  1272  	// unhealthy states are detected and alerted on quickly.
  1273  	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
  1274  	// The number/percent of time series for which the comparison must hold
  1275  	// in order for the condition to trigger. If unspecified, then the
  1276  	// condition will trigger if the comparison is true for any of the
  1277  	// time series that have been identified by `filter` and `aggregations`,
  1278  	// or by the ratio, if `denominator_filter` and `denominator_aggregations`
  1279  	// are specified.
  1280  	Trigger *AlertPolicy_Condition_Trigger `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"`
  1281  	// A condition control that determines how metric-threshold conditions
  1282  	// are evaluated when data stops arriving.
  1283  	EvaluationMissingData AlertPolicy_Condition_EvaluationMissingData `protobuf:"varint,4,opt,name=evaluation_missing_data,json=evaluationMissingData,proto3,enum=google.monitoring.v3.AlertPolicy_Condition_EvaluationMissingData" json:"evaluation_missing_data,omitempty"`
  1284  }
  1285  
  1286  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) Reset() {
  1287  	*x = AlertPolicy_Condition_MonitoringQueryLanguageCondition{}
  1288  	if protoimpl.UnsafeEnabled {
  1289  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[9]
  1290  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1291  		ms.StoreMessageInfo(mi)
  1292  	}
  1293  }
  1294  
  1295  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) String() string {
  1296  	return protoimpl.X.MessageStringOf(x)
  1297  }
  1298  
  1299  func (*AlertPolicy_Condition_MonitoringQueryLanguageCondition) ProtoMessage() {}
  1300  
  1301  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) ProtoReflect() protoreflect.Message {
  1302  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[9]
  1303  	if protoimpl.UnsafeEnabled && x != nil {
  1304  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1305  		if ms.LoadMessageInfo() == nil {
  1306  			ms.StoreMessageInfo(mi)
  1307  		}
  1308  		return ms
  1309  	}
  1310  	return mi.MessageOf(x)
  1311  }
  1312  
  1313  // Deprecated: Use AlertPolicy_Condition_MonitoringQueryLanguageCondition.ProtoReflect.Descriptor instead.
  1314  func (*AlertPolicy_Condition_MonitoringQueryLanguageCondition) Descriptor() ([]byte, []int) {
  1315  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 4}
  1316  }
  1317  
  1318  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) GetQuery() string {
  1319  	if x != nil {
  1320  		return x.Query
  1321  	}
  1322  	return ""
  1323  }
  1324  
  1325  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) GetDuration() *durationpb.Duration {
  1326  	if x != nil {
  1327  		return x.Duration
  1328  	}
  1329  	return nil
  1330  }
  1331  
  1332  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) GetTrigger() *AlertPolicy_Condition_Trigger {
  1333  	if x != nil {
  1334  		return x.Trigger
  1335  	}
  1336  	return nil
  1337  }
  1338  
  1339  func (x *AlertPolicy_Condition_MonitoringQueryLanguageCondition) GetEvaluationMissingData() AlertPolicy_Condition_EvaluationMissingData {
  1340  	if x != nil {
  1341  		return x.EvaluationMissingData
  1342  	}
  1343  	return AlertPolicy_Condition_EVALUATION_MISSING_DATA_UNSPECIFIED
  1344  }
  1345  
  1346  // A condition type that allows alert policies to be defined using
  1347  // [Prometheus Query Language
  1348  // (PromQL)](https://prometheus.io/docs/prometheus/latest/querying/basics/).
  1349  //
  1350  // The PrometheusQueryLanguageCondition message contains information
  1351  // from a Prometheus alerting rule and its associated rule group.
  1352  //
  1353  // A Prometheus alerting rule is described
  1354  // [here](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/).
  1355  // The semantics of a Prometheus alerting rule is described
  1356  // [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule).
  1357  //
  1358  // A Prometheus rule group is described
  1359  // [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/).
  1360  // The semantics of a Prometheus rule group is described
  1361  // [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group).
  1362  //
  1363  // Because Cloud Alerting has no representation of a Prometheus rule
  1364  // group resource, we must embed the information of the parent rule
  1365  // group inside each of the conditions that refer to it. We must also
  1366  // update the contents of all Prometheus alerts in case the information
  1367  // of their rule group changes.
  1368  //
  1369  // The PrometheusQueryLanguageCondition protocol buffer combines the
  1370  // information of the corresponding rule group and alerting rule.
  1371  // The structure of the PrometheusQueryLanguageCondition protocol buffer
  1372  // does NOT mimic the structure of the Prometheus rule group and alerting
  1373  // rule YAML declarations. The PrometheusQueryLanguageCondition protocol
  1374  // buffer may change in the future to support future rule group and/or
  1375  // alerting rule features. There are no new such features at the present
  1376  // time (2023-06-26).
  1377  type AlertPolicy_Condition_PrometheusQueryLanguageCondition struct {
  1378  	state         protoimpl.MessageState
  1379  	sizeCache     protoimpl.SizeCache
  1380  	unknownFields protoimpl.UnknownFields
  1381  
  1382  	// Required. The PromQL expression to evaluate. Every evaluation cycle
  1383  	// this expression is evaluated at the current time, and all resultant
  1384  	// time series become pending/firing alerts. This field must not be empty.
  1385  	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
  1386  	// Optional. Alerts are considered firing once their PromQL expression was
  1387  	// evaluated to be "true" for this long.
  1388  	// Alerts whose PromQL expression was not evaluated to be "true" for
  1389  	// long enough are considered pending.
  1390  	// Must be a non-negative duration or missing.
  1391  	// This field is optional. Its default value is zero.
  1392  	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
  1393  	// Optional. How often this rule should be evaluated.
  1394  	// Must be a positive multiple of 30 seconds or missing.
  1395  	// This field is optional. Its default value is 30 seconds.
  1396  	// If this PrometheusQueryLanguageCondition was generated from a
  1397  	// Prometheus alerting rule, then this value should be taken from the
  1398  	// enclosing rule group.
  1399  	EvaluationInterval *durationpb.Duration `protobuf:"bytes,3,opt,name=evaluation_interval,json=evaluationInterval,proto3" json:"evaluation_interval,omitempty"`
  1400  	// Optional. Labels to add to or overwrite in the PromQL query result.
  1401  	// Label names [must be
  1402  	// valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
  1403  	// Label values can be [templatized by using
  1404  	// variables](https://cloud.google.com/monitoring/alerts/doc-variables).
  1405  	// The only available variable names are the names of the labels in the
  1406  	// PromQL result, including "__name__" and "value". "labels" may be empty.
  1407  	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1408  	// Optional. The rule group name of this alert in the corresponding
  1409  	// Prometheus configuration file.
  1410  	//
  1411  	// Some external tools may require this field to be populated correctly
  1412  	// in order to refer to the original Prometheus configuration file.
  1413  	// The rule group name and the alert name are necessary to update the
  1414  	// relevant AlertPolicies in case the definition of the rule group changes
  1415  	// in the future.
  1416  	//
  1417  	// This field is optional. If this field is not empty, then it must
  1418  	// contain a valid UTF-8 string.
  1419  	// This field may not exceed 2048 Unicode characters in length.
  1420  	RuleGroup string `protobuf:"bytes,5,opt,name=rule_group,json=ruleGroup,proto3" json:"rule_group,omitempty"`
  1421  	// Optional. The alerting rule name of this alert in the corresponding
  1422  	// Prometheus configuration file.
  1423  	//
  1424  	// Some external tools may require this field to be populated correctly
  1425  	// in order to refer to the original Prometheus configuration file.
  1426  	// The rule group name and the alert name are necessary to update the
  1427  	// relevant AlertPolicies in case the definition of the rule group changes
  1428  	// in the future.
  1429  	//
  1430  	// This field is optional. If this field is not empty, then it must be a
  1431  	// [valid Prometheus label
  1432  	// name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
  1433  	// This field may not exceed 2048 Unicode characters in length.
  1434  	AlertRule string `protobuf:"bytes,6,opt,name=alert_rule,json=alertRule,proto3" json:"alert_rule,omitempty"`
  1435  }
  1436  
  1437  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) Reset() {
  1438  	*x = AlertPolicy_Condition_PrometheusQueryLanguageCondition{}
  1439  	if protoimpl.UnsafeEnabled {
  1440  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[10]
  1441  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1442  		ms.StoreMessageInfo(mi)
  1443  	}
  1444  }
  1445  
  1446  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) String() string {
  1447  	return protoimpl.X.MessageStringOf(x)
  1448  }
  1449  
  1450  func (*AlertPolicy_Condition_PrometheusQueryLanguageCondition) ProtoMessage() {}
  1451  
  1452  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) ProtoReflect() protoreflect.Message {
  1453  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[10]
  1454  	if protoimpl.UnsafeEnabled && x != nil {
  1455  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1456  		if ms.LoadMessageInfo() == nil {
  1457  			ms.StoreMessageInfo(mi)
  1458  		}
  1459  		return ms
  1460  	}
  1461  	return mi.MessageOf(x)
  1462  }
  1463  
  1464  // Deprecated: Use AlertPolicy_Condition_PrometheusQueryLanguageCondition.ProtoReflect.Descriptor instead.
  1465  func (*AlertPolicy_Condition_PrometheusQueryLanguageCondition) Descriptor() ([]byte, []int) {
  1466  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 5}
  1467  }
  1468  
  1469  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetQuery() string {
  1470  	if x != nil {
  1471  		return x.Query
  1472  	}
  1473  	return ""
  1474  }
  1475  
  1476  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetDuration() *durationpb.Duration {
  1477  	if x != nil {
  1478  		return x.Duration
  1479  	}
  1480  	return nil
  1481  }
  1482  
  1483  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetEvaluationInterval() *durationpb.Duration {
  1484  	if x != nil {
  1485  		return x.EvaluationInterval
  1486  	}
  1487  	return nil
  1488  }
  1489  
  1490  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetLabels() map[string]string {
  1491  	if x != nil {
  1492  		return x.Labels
  1493  	}
  1494  	return nil
  1495  }
  1496  
  1497  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetRuleGroup() string {
  1498  	if x != nil {
  1499  		return x.RuleGroup
  1500  	}
  1501  	return ""
  1502  }
  1503  
  1504  func (x *AlertPolicy_Condition_PrometheusQueryLanguageCondition) GetAlertRule() string {
  1505  	if x != nil {
  1506  		return x.AlertRule
  1507  	}
  1508  	return ""
  1509  }
  1510  
  1511  // Options used when forecasting the time series and testing
  1512  // the predicted value against the threshold.
  1513  type AlertPolicy_Condition_MetricThreshold_ForecastOptions struct {
  1514  	state         protoimpl.MessageState
  1515  	sizeCache     protoimpl.SizeCache
  1516  	unknownFields protoimpl.UnknownFields
  1517  
  1518  	// Required. The length of time into the future to forecast whether a
  1519  	// time series will violate the threshold. If the predicted value is
  1520  	// found to violate the threshold, and the violation is observed in all
  1521  	// forecasts made for the configured `duration`, then the time series is
  1522  	// considered to be failing.
  1523  	// The forecast horizon can range from 1 hour to 60 hours.
  1524  	ForecastHorizon *durationpb.Duration `protobuf:"bytes,1,opt,name=forecast_horizon,json=forecastHorizon,proto3" json:"forecast_horizon,omitempty"`
  1525  }
  1526  
  1527  func (x *AlertPolicy_Condition_MetricThreshold_ForecastOptions) Reset() {
  1528  	*x = AlertPolicy_Condition_MetricThreshold_ForecastOptions{}
  1529  	if protoimpl.UnsafeEnabled {
  1530  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[11]
  1531  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1532  		ms.StoreMessageInfo(mi)
  1533  	}
  1534  }
  1535  
  1536  func (x *AlertPolicy_Condition_MetricThreshold_ForecastOptions) String() string {
  1537  	return protoimpl.X.MessageStringOf(x)
  1538  }
  1539  
  1540  func (*AlertPolicy_Condition_MetricThreshold_ForecastOptions) ProtoMessage() {}
  1541  
  1542  func (x *AlertPolicy_Condition_MetricThreshold_ForecastOptions) ProtoReflect() protoreflect.Message {
  1543  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[11]
  1544  	if protoimpl.UnsafeEnabled && x != nil {
  1545  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1546  		if ms.LoadMessageInfo() == nil {
  1547  			ms.StoreMessageInfo(mi)
  1548  		}
  1549  		return ms
  1550  	}
  1551  	return mi.MessageOf(x)
  1552  }
  1553  
  1554  // Deprecated: Use AlertPolicy_Condition_MetricThreshold_ForecastOptions.ProtoReflect.Descriptor instead.
  1555  func (*AlertPolicy_Condition_MetricThreshold_ForecastOptions) Descriptor() ([]byte, []int) {
  1556  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 1, 1, 0}
  1557  }
  1558  
  1559  func (x *AlertPolicy_Condition_MetricThreshold_ForecastOptions) GetForecastHorizon() *durationpb.Duration {
  1560  	if x != nil {
  1561  		return x.ForecastHorizon
  1562  	}
  1563  	return nil
  1564  }
  1565  
  1566  // Control over the rate of notifications sent to this alert policy's
  1567  // notification channels.
  1568  type AlertPolicy_AlertStrategy_NotificationRateLimit struct {
  1569  	state         protoimpl.MessageState
  1570  	sizeCache     protoimpl.SizeCache
  1571  	unknownFields protoimpl.UnknownFields
  1572  
  1573  	// Not more than one notification per `period`.
  1574  	Period *durationpb.Duration `protobuf:"bytes,1,opt,name=period,proto3" json:"period,omitempty"`
  1575  }
  1576  
  1577  func (x *AlertPolicy_AlertStrategy_NotificationRateLimit) Reset() {
  1578  	*x = AlertPolicy_AlertStrategy_NotificationRateLimit{}
  1579  	if protoimpl.UnsafeEnabled {
  1580  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[14]
  1581  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1582  		ms.StoreMessageInfo(mi)
  1583  	}
  1584  }
  1585  
  1586  func (x *AlertPolicy_AlertStrategy_NotificationRateLimit) String() string {
  1587  	return protoimpl.X.MessageStringOf(x)
  1588  }
  1589  
  1590  func (*AlertPolicy_AlertStrategy_NotificationRateLimit) ProtoMessage() {}
  1591  
  1592  func (x *AlertPolicy_AlertStrategy_NotificationRateLimit) ProtoReflect() protoreflect.Message {
  1593  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[14]
  1594  	if protoimpl.UnsafeEnabled && x != nil {
  1595  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1596  		if ms.LoadMessageInfo() == nil {
  1597  			ms.StoreMessageInfo(mi)
  1598  		}
  1599  		return ms
  1600  	}
  1601  	return mi.MessageOf(x)
  1602  }
  1603  
  1604  // Deprecated: Use AlertPolicy_AlertStrategy_NotificationRateLimit.ProtoReflect.Descriptor instead.
  1605  func (*AlertPolicy_AlertStrategy_NotificationRateLimit) Descriptor() ([]byte, []int) {
  1606  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 2, 0}
  1607  }
  1608  
  1609  func (x *AlertPolicy_AlertStrategy_NotificationRateLimit) GetPeriod() *durationpb.Duration {
  1610  	if x != nil {
  1611  		return x.Period
  1612  	}
  1613  	return nil
  1614  }
  1615  
  1616  // Control over how the notification channels in `notification_channels`
  1617  // are notified when this alert fires, on a per-channel basis.
  1618  type AlertPolicy_AlertStrategy_NotificationChannelStrategy struct {
  1619  	state         protoimpl.MessageState
  1620  	sizeCache     protoimpl.SizeCache
  1621  	unknownFields protoimpl.UnknownFields
  1622  
  1623  	// The full REST resource name for the notification channels that these
  1624  	// settings apply to. Each of these correspond to the name field in one
  1625  	// of the NotificationChannel objects referenced in the
  1626  	// notification_channels field of this AlertPolicy.
  1627  	// The format is:
  1628  	//
  1629  	//	projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
  1630  	NotificationChannelNames []string `protobuf:"bytes,1,rep,name=notification_channel_names,json=notificationChannelNames,proto3" json:"notification_channel_names,omitempty"`
  1631  	// The frequency at which to send reminder notifications for open
  1632  	// incidents.
  1633  	RenotifyInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=renotify_interval,json=renotifyInterval,proto3" json:"renotify_interval,omitempty"`
  1634  }
  1635  
  1636  func (x *AlertPolicy_AlertStrategy_NotificationChannelStrategy) Reset() {
  1637  	*x = AlertPolicy_AlertStrategy_NotificationChannelStrategy{}
  1638  	if protoimpl.UnsafeEnabled {
  1639  		mi := &file_google_monitoring_v3_alert_proto_msgTypes[15]
  1640  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1641  		ms.StoreMessageInfo(mi)
  1642  	}
  1643  }
  1644  
  1645  func (x *AlertPolicy_AlertStrategy_NotificationChannelStrategy) String() string {
  1646  	return protoimpl.X.MessageStringOf(x)
  1647  }
  1648  
  1649  func (*AlertPolicy_AlertStrategy_NotificationChannelStrategy) ProtoMessage() {}
  1650  
  1651  func (x *AlertPolicy_AlertStrategy_NotificationChannelStrategy) ProtoReflect() protoreflect.Message {
  1652  	mi := &file_google_monitoring_v3_alert_proto_msgTypes[15]
  1653  	if protoimpl.UnsafeEnabled && x != nil {
  1654  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1655  		if ms.LoadMessageInfo() == nil {
  1656  			ms.StoreMessageInfo(mi)
  1657  		}
  1658  		return ms
  1659  	}
  1660  	return mi.MessageOf(x)
  1661  }
  1662  
  1663  // Deprecated: Use AlertPolicy_AlertStrategy_NotificationChannelStrategy.ProtoReflect.Descriptor instead.
  1664  func (*AlertPolicy_AlertStrategy_NotificationChannelStrategy) Descriptor() ([]byte, []int) {
  1665  	return file_google_monitoring_v3_alert_proto_rawDescGZIP(), []int{0, 2, 1}
  1666  }
  1667  
  1668  func (x *AlertPolicy_AlertStrategy_NotificationChannelStrategy) GetNotificationChannelNames() []string {
  1669  	if x != nil {
  1670  		return x.NotificationChannelNames
  1671  	}
  1672  	return nil
  1673  }
  1674  
  1675  func (x *AlertPolicy_AlertStrategy_NotificationChannelStrategy) GetRenotifyInterval() *durationpb.Duration {
  1676  	if x != nil {
  1677  		return x.RenotifyInterval
  1678  	}
  1679  	return nil
  1680  }
  1681  
  1682  var File_google_monitoring_v3_alert_proto protoreflect.FileDescriptor
  1683  
  1684  var file_google_monitoring_v3_alert_proto_rawDesc = []byte{
  1685  	0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
  1686  	0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f,
  1687  	0x74, 0x6f, 0x12, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
  1688  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1689  	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
  1690  	0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1691  	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70,
  1692  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x6f, 0x6e,
  1693  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
  1694  	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
  1695  	0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x6d, 0x75,
  1696  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x70, 0x72,
  1697  	0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
  1698  	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
  1699  	0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
  1700  	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72,
  1701  	0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f,
  1702  	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf4, 0x29, 0x0a,
  1703  	0x0b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04,
  1704  	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
  1705  	0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
  1706  	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e,
  1707  	0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
  1708  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
  1709  	0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  1710  	0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x44, 0x6f,
  1711  	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x6f, 0x63,
  1712  	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0b, 0x75, 0x73,
  1713  	0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1714  	0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
  1715  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69,
  1716  	0x63, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74,
  1717  	0x72, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4b,
  1718  	0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03,
  1719  	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  1720  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50,
  1721  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52,
  1722  	0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x08, 0x63,
  1723  	0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e,
  1724  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
  1725  	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  1726  	0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e,
  1727  	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x72,
  1728  	0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
  1729  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1730  	0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65,
  1731  	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69,
  1732  	0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1733  	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x76, 0x61,
  1734  	0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
  1735  	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18,
  1736  	0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
  1737  	0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x63,
  1738  	0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0a,
  1739  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  1740  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x75, 0x74, 0x61,
  1741  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61,
  1742  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x75,
  1743  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20,
  1744  	0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  1745  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74,
  1746  	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x61, 0x74,
  1747  	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x56, 0x0a, 0x0e, 0x61, 0x6c, 0x65,
  1748  	0x72, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28,
  1749  	0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
  1750  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f,
  1751  	0x6c, 0x69, 0x63, 0x79, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65,
  1752  	0x67, 0x79, 0x52, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
  1753  	0x79, 0x12, 0x4b, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x16, 0x20,
  1754  	0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  1755  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74,
  1756  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x42,
  1757  	0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x1a, 0x65,
  1758  	0x0a, 0x0d, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  1759  	0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1760  	0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d,
  1761  	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69,
  1762  	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63,
  1763  	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x73, 0x75,
  1764  	0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x92, 0x1a, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
  1765  	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
  1766  	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c,
  1767  	0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
  1768  	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6e, 0x0a, 0x13, 0x63, 0x6f,
  1769  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
  1770  	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1771  	0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41,
  1772  	0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69,
  1773  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73,
  1774  	0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
  1775  	0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x66, 0x0a, 0x10, 0x63, 0x6f,
  1776  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02,
  1777  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  1778  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72,
  1779  	0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
  1780  	0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x62, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x48,
  1781  	0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x73, 0x65,
  1782  	0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
  1783  	0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28,
  1784  	0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
  1785  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f,
  1786  	0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c,
  1787  	0x6f, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x64, 0x69,
  1788  	0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x9d,
  1789  	0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e,
  1790  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61,
  1791  	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67,
  1792  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1793  	0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e,
  1794  	0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  1795  	0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
  1796  	0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x63, 0x6f,
  1797  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
  1798  	0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x9d,
  1799  	0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
  1800  	0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61,
  1801  	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67,
  1802  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1803  	0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e,
  1804  	0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74,
  1805  	0x68, 0x65, 0x75, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
  1806  	0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x63, 0x6f,
  1807  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75,
  1808  	0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x1a, 0x45,
  1809  	0x0a, 0x07, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x75,
  1810  	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
  1811  	0x74, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
  1812  	0x28, 0x01, 0x48, 0x00, 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a,
  1813  	0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xc8, 0x06, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1814  	0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c,
  1815  	0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
  1816  	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67,
  1817  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67,
  1818  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1819  	0x2e, 0x76, 0x33, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
  1820  	0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a,
  1821  	0x12, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x66, 0x69, 0x6c,
  1822  	0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x6e, 0x6f, 0x6d,
  1823  	0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x18,
  1824  	0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x67, 0x72,
  1825  	0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
  1826  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  1827  	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
  1828  	0x6e, 0x52, 0x17, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x67,
  1829  	0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x76, 0x0a, 0x10, 0x66, 0x6f,
  1830  	0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c,
  1831  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  1832  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72,
  1833  	0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
  1834  	0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
  1835  	0x64, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  1836  	0x73, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f,
  1837  	0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e,
  1838  	0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1839  	0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f,
  1840  	0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 0x6f,
  1841  	0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x68, 0x72, 0x65,
  1842  	0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
  1843  	0x01, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75,
  1844  	0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20,
  1845  	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  1846  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08,
  1847  	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67,
  1848  	0x67, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1849  	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
  1850  	0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e,
  1851  	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07,
  1852  	0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x79, 0x0a, 0x17, 0x65, 0x76, 0x61, 0x6c, 0x75,
  1853  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61,
  1854  	0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1855  	0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
  1856  	0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64,
  1857  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1858  	0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x65, 0x76, 0x61,
  1859  	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x61,
  1860  	0x74, 0x61, 0x1a, 0x5c, 0x0a, 0x0f, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x70,
  1861  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73,
  1862  	0x74, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1863  	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  1864  	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
  1865  	0x0f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e,
  1866  	0x1a, 0xf9, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x62, 0x73, 0x65, 0x6e,
  1867  	0x63, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
  1868  	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
  1869  	0x45, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
  1870  	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
  1871  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x67, 0x67,
  1872  	0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67,
  1873  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
  1874  	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1875  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
  1876  	0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a,
  1877  	0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33,
  1878  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  1879  	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  1880  	0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67,
  1881  	0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x1a, 0xe1, 0x01, 0x0a,
  1882  	0x08, 0x4c, 0x6f, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c,
  1883  	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
  1884  	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x74, 0x0a, 0x10, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f,
  1885  	0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
  1886  	0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  1887  	0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c,
  1888  	0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f,
  1889  	0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, 0x74, 0x72,
  1890  	0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6c, 0x61, 0x62,
  1891  	0x65, 0x6c, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x42, 0x0a, 0x14,
  1892  	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x45,
  1893  	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
  1894  	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
  1895  	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
  1896  	0x1a, 0xb9, 0x02, 0x0a, 0x20, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x51,
  1897  	0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x64,
  1898  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01,
  1899  	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x64,
  1900  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
  1901  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  1902  	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
  1903  	0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x03, 0x20,
  1904  	0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  1905  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74,
  1906  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
  1907  	0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
  1908  	0x72, 0x12, 0x79, 0x0a, 0x17, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
  1909  	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01,
  1910  	0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  1911  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50,
  1912  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
  1913  	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e,
  1914  	0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
  1915  	0x6e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xc4, 0x03, 0x0a,
  1916  	0x20, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79,
  1917  	0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
  1918  	0x6e, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1919  	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3a, 0x0a, 0x08,
  1920  	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  1921  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1922  	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08,
  1923  	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x13, 0x65, 0x76, 0x61, 0x6c,
  1924  	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18,
  1925  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  1926  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1927  	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
  1928  	0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x75, 0x0a, 0x06, 0x6c, 0x61, 0x62,
  1929  	0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1930  	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
  1931  	0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e,
  1932  	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75,
  1933  	0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f,
  1934  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
  1935  	0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
  1936  	0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05,
  1937  	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x47,
  1938  	0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x72, 0x75,
  1939  	0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x61,
  1940  	0x6c, 0x65, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
  1941  	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
  1942  	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
  1943  	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
  1944  	0x02, 0x38, 0x01, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
  1945  	0x6f, 0x6e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a,
  1946  	0x23, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x53,
  1947  	0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
  1948  	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41,
  1949  	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54,
  1950  	0x41, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e,
  1951  	0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49,
  1952  	0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02,
  1953  	0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d,
  1954  	0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4e, 0x4f, 0x5f, 0x4f,
  1955  	0x50, 0x10, 0x03, 0x3a, 0x97, 0x02, 0xea, 0x41, 0x93, 0x02, 0x0a, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  1956  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
  1957  	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  1958  	0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x70, 0x72, 0x6f, 0x6a,
  1959  	0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61,
  1960  	0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x6c,
  1961  	0x65, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x64,
  1962  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
  1963  	0x6e, 0x7d, 0x12, 0x50, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1964  	0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d,
  1965  	0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b,
  1966  	0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x7d, 0x2f, 0x63, 0x6f,
  1967  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
  1968  	0x69, 0x6f, 0x6e, 0x7d, 0x12, 0x44, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66,
  1969  	0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69,
  1970  	0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
  1971  	0x63, 0x79, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b,
  1972  	0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0x01, 0x2a, 0x42, 0x0b, 0x0a,
  1973  	0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xcc, 0x04, 0x0a, 0x0d, 0x41,
  1974  	0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x7d, 0x0a, 0x17,
  1975  	0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74,
  1976  	0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e,
  1977  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
  1978  	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  1979  	0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x4e,
  1980  	0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4c,
  1981  	0x69, 0x6d, 0x69, 0x74, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
  1982  	0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x61,
  1983  	0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1984  	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  1985  	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f,
  1986  	0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
  1987  	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73,
  1988  	0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e,
  1989  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
  1990  	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  1991  	0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x4e,
  1992  	0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
  1993  	0x65, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x1b, 0x6e, 0x6f, 0x74, 0x69,
  1994  	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53,
  1995  	0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x1a, 0x4a, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x69, 0x66,
  1996  	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  1997  	0x12, 0x31, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  1998  	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  1999  	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x65, 0x72,
  2000  	0x69, 0x6f, 0x64, 0x1a, 0xa3, 0x01, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
  2001  	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74,
  2002  	0x65, 0x67, 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
  2003  	0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
  2004  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
  2005  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
  2006  	0x73, 0x12, 0x46, 0x0a, 0x11, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x69, 0x6e,
  2007  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  2008  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  2009  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66,
  2010  	0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65,
  2011  	0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  2012  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
  2013  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
  2014  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x61, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x64,
  2015  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70,
  2016  	0x65, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x5f, 0x55, 0x4e, 0x53,
  2017  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e,
  2018  	0x44, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x41,
  2019  	0x4e, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47,
  2020  	0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x03, 0x22, 0x4a, 0x0a, 0x08, 0x53,
  2021  	0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52,
  2022  	0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
  2023  	0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12,
  2024  	0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41,
  2025  	0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x3a, 0xc9, 0x01, 0xea, 0x41, 0xc5, 0x01, 0x0a, 0x25,
  2026  	0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2027  	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50,
  2028  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
  2029  	0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x50,
  2030  	0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70,
  2031  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x7d, 0x12, 0x39, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
  2032  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
  2033  	0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69,
  2034  	0x65, 0x73, 0x2f, 0x7b, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  2035  	0x7d, 0x12, 0x2d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64,
  2036  	0x65, 0x72, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65,
  2037  	0x73, 0x2f, 0x7b, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x7d,
  2038  	0x12, 0x01, 0x2a, 0x42, 0xc5, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2039  	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
  2040  	0x42, 0x0a, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41,
  2041  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
  2042  	0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x61,
  2043  	0x70, 0x69, 0x76, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  2044  	0x6e, 0x67, 0x70, 0x62, 0x3b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x70,
  2045  	0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64,
  2046  	0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x33, 0xca, 0x02,
  2047  	0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4d, 0x6f,
  2048  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x33, 0xea, 0x02, 0x1d, 0x47, 0x6f,
  2049  	0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4d, 0x6f, 0x6e,
  2050  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f,
  2051  	0x74, 0x6f, 0x33,
  2052  }
  2053  
  2054  var (
  2055  	file_google_monitoring_v3_alert_proto_rawDescOnce sync.Once
  2056  	file_google_monitoring_v3_alert_proto_rawDescData = file_google_monitoring_v3_alert_proto_rawDesc
  2057  )
  2058  
  2059  func file_google_monitoring_v3_alert_proto_rawDescGZIP() []byte {
  2060  	file_google_monitoring_v3_alert_proto_rawDescOnce.Do(func() {
  2061  		file_google_monitoring_v3_alert_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_monitoring_v3_alert_proto_rawDescData)
  2062  	})
  2063  	return file_google_monitoring_v3_alert_proto_rawDescData
  2064  }
  2065  
  2066  var file_google_monitoring_v3_alert_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
  2067  var file_google_monitoring_v3_alert_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
  2068  var file_google_monitoring_v3_alert_proto_goTypes = []interface{}{
  2069  	(AlertPolicy_ConditionCombinerType)(0),                         // 0: google.monitoring.v3.AlertPolicy.ConditionCombinerType
  2070  	(AlertPolicy_Severity)(0),                                      // 1: google.monitoring.v3.AlertPolicy.Severity
  2071  	(AlertPolicy_Condition_EvaluationMissingData)(0),               // 2: google.monitoring.v3.AlertPolicy.Condition.EvaluationMissingData
  2072  	(*AlertPolicy)(nil),                                            // 3: google.monitoring.v3.AlertPolicy
  2073  	(*AlertPolicy_Documentation)(nil),                              // 4: google.monitoring.v3.AlertPolicy.Documentation
  2074  	(*AlertPolicy_Condition)(nil),                                  // 5: google.monitoring.v3.AlertPolicy.Condition
  2075  	(*AlertPolicy_AlertStrategy)(nil),                              // 6: google.monitoring.v3.AlertPolicy.AlertStrategy
  2076  	nil,                                                            // 7: google.monitoring.v3.AlertPolicy.UserLabelsEntry
  2077  	(*AlertPolicy_Condition_Trigger)(nil),                          // 8: google.monitoring.v3.AlertPolicy.Condition.Trigger
  2078  	(*AlertPolicy_Condition_MetricThreshold)(nil),                  // 9: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold
  2079  	(*AlertPolicy_Condition_MetricAbsence)(nil),                    // 10: google.monitoring.v3.AlertPolicy.Condition.MetricAbsence
  2080  	(*AlertPolicy_Condition_LogMatch)(nil),                         // 11: google.monitoring.v3.AlertPolicy.Condition.LogMatch
  2081  	(*AlertPolicy_Condition_MonitoringQueryLanguageCondition)(nil), // 12: google.monitoring.v3.AlertPolicy.Condition.MonitoringQueryLanguageCondition
  2082  	(*AlertPolicy_Condition_PrometheusQueryLanguageCondition)(nil), // 13: google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition
  2083  	(*AlertPolicy_Condition_MetricThreshold_ForecastOptions)(nil),  // 14: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.ForecastOptions
  2084  	nil, // 15: google.monitoring.v3.AlertPolicy.Condition.LogMatch.LabelExtractorsEntry
  2085  	nil, // 16: google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition.LabelsEntry
  2086  	(*AlertPolicy_AlertStrategy_NotificationRateLimit)(nil),       // 17: google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationRateLimit
  2087  	(*AlertPolicy_AlertStrategy_NotificationChannelStrategy)(nil), // 18: google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationChannelStrategy
  2088  	(*wrapperspb.BoolValue)(nil),                                  // 19: google.protobuf.BoolValue
  2089  	(*status.Status)(nil),                                         // 20: google.rpc.Status
  2090  	(*MutationRecord)(nil),                                        // 21: google.monitoring.v3.MutationRecord
  2091  	(*durationpb.Duration)(nil),                                   // 22: google.protobuf.Duration
  2092  	(*Aggregation)(nil),                                           // 23: google.monitoring.v3.Aggregation
  2093  	(ComparisonType)(0),                                           // 24: google.monitoring.v3.ComparisonType
  2094  }
  2095  var file_google_monitoring_v3_alert_proto_depIdxs = []int32{
  2096  	4,  // 0: google.monitoring.v3.AlertPolicy.documentation:type_name -> google.monitoring.v3.AlertPolicy.Documentation
  2097  	7,  // 1: google.monitoring.v3.AlertPolicy.user_labels:type_name -> google.monitoring.v3.AlertPolicy.UserLabelsEntry
  2098  	5,  // 2: google.monitoring.v3.AlertPolicy.conditions:type_name -> google.monitoring.v3.AlertPolicy.Condition
  2099  	0,  // 3: google.monitoring.v3.AlertPolicy.combiner:type_name -> google.monitoring.v3.AlertPolicy.ConditionCombinerType
  2100  	19, // 4: google.monitoring.v3.AlertPolicy.enabled:type_name -> google.protobuf.BoolValue
  2101  	20, // 5: google.monitoring.v3.AlertPolicy.validity:type_name -> google.rpc.Status
  2102  	21, // 6: google.monitoring.v3.AlertPolicy.creation_record:type_name -> google.monitoring.v3.MutationRecord
  2103  	21, // 7: google.monitoring.v3.AlertPolicy.mutation_record:type_name -> google.monitoring.v3.MutationRecord
  2104  	6,  // 8: google.monitoring.v3.AlertPolicy.alert_strategy:type_name -> google.monitoring.v3.AlertPolicy.AlertStrategy
  2105  	1,  // 9: google.monitoring.v3.AlertPolicy.severity:type_name -> google.monitoring.v3.AlertPolicy.Severity
  2106  	9,  // 10: google.monitoring.v3.AlertPolicy.Condition.condition_threshold:type_name -> google.monitoring.v3.AlertPolicy.Condition.MetricThreshold
  2107  	10, // 11: google.monitoring.v3.AlertPolicy.Condition.condition_absent:type_name -> google.monitoring.v3.AlertPolicy.Condition.MetricAbsence
  2108  	11, // 12: google.monitoring.v3.AlertPolicy.Condition.condition_matched_log:type_name -> google.monitoring.v3.AlertPolicy.Condition.LogMatch
  2109  	12, // 13: google.monitoring.v3.AlertPolicy.Condition.condition_monitoring_query_language:type_name -> google.monitoring.v3.AlertPolicy.Condition.MonitoringQueryLanguageCondition
  2110  	13, // 14: google.monitoring.v3.AlertPolicy.Condition.condition_prometheus_query_language:type_name -> google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition
  2111  	17, // 15: google.monitoring.v3.AlertPolicy.AlertStrategy.notification_rate_limit:type_name -> google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationRateLimit
  2112  	22, // 16: google.monitoring.v3.AlertPolicy.AlertStrategy.auto_close:type_name -> google.protobuf.Duration
  2113  	18, // 17: google.monitoring.v3.AlertPolicy.AlertStrategy.notification_channel_strategy:type_name -> google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationChannelStrategy
  2114  	23, // 18: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.aggregations:type_name -> google.monitoring.v3.Aggregation
  2115  	23, // 19: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.denominator_aggregations:type_name -> google.monitoring.v3.Aggregation
  2116  	14, // 20: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.forecast_options:type_name -> google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.ForecastOptions
  2117  	24, // 21: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.comparison:type_name -> google.monitoring.v3.ComparisonType
  2118  	22, // 22: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.duration:type_name -> google.protobuf.Duration
  2119  	8,  // 23: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.trigger:type_name -> google.monitoring.v3.AlertPolicy.Condition.Trigger
  2120  	2,  // 24: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.evaluation_missing_data:type_name -> google.monitoring.v3.AlertPolicy.Condition.EvaluationMissingData
  2121  	23, // 25: google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.aggregations:type_name -> google.monitoring.v3.Aggregation
  2122  	22, // 26: google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.duration:type_name -> google.protobuf.Duration
  2123  	8,  // 27: google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.trigger:type_name -> google.monitoring.v3.AlertPolicy.Condition.Trigger
  2124  	15, // 28: google.monitoring.v3.AlertPolicy.Condition.LogMatch.label_extractors:type_name -> google.monitoring.v3.AlertPolicy.Condition.LogMatch.LabelExtractorsEntry
  2125  	22, // 29: google.monitoring.v3.AlertPolicy.Condition.MonitoringQueryLanguageCondition.duration:type_name -> google.protobuf.Duration
  2126  	8,  // 30: google.monitoring.v3.AlertPolicy.Condition.MonitoringQueryLanguageCondition.trigger:type_name -> google.monitoring.v3.AlertPolicy.Condition.Trigger
  2127  	2,  // 31: google.monitoring.v3.AlertPolicy.Condition.MonitoringQueryLanguageCondition.evaluation_missing_data:type_name -> google.monitoring.v3.AlertPolicy.Condition.EvaluationMissingData
  2128  	22, // 32: google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition.duration:type_name -> google.protobuf.Duration
  2129  	22, // 33: google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition.evaluation_interval:type_name -> google.protobuf.Duration
  2130  	16, // 34: google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition.labels:type_name -> google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition.LabelsEntry
  2131  	22, // 35: google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.ForecastOptions.forecast_horizon:type_name -> google.protobuf.Duration
  2132  	22, // 36: google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationRateLimit.period:type_name -> google.protobuf.Duration
  2133  	22, // 37: google.monitoring.v3.AlertPolicy.AlertStrategy.NotificationChannelStrategy.renotify_interval:type_name -> google.protobuf.Duration
  2134  	38, // [38:38] is the sub-list for method output_type
  2135  	38, // [38:38] is the sub-list for method input_type
  2136  	38, // [38:38] is the sub-list for extension type_name
  2137  	38, // [38:38] is the sub-list for extension extendee
  2138  	0,  // [0:38] is the sub-list for field type_name
  2139  }
  2140  
  2141  func init() { file_google_monitoring_v3_alert_proto_init() }
  2142  func file_google_monitoring_v3_alert_proto_init() {
  2143  	if File_google_monitoring_v3_alert_proto != nil {
  2144  		return
  2145  	}
  2146  	file_google_monitoring_v3_common_proto_init()
  2147  	file_google_monitoring_v3_mutation_record_proto_init()
  2148  	if !protoimpl.UnsafeEnabled {
  2149  		file_google_monitoring_v3_alert_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2150  			switch v := v.(*AlertPolicy); i {
  2151  			case 0:
  2152  				return &v.state
  2153  			case 1:
  2154  				return &v.sizeCache
  2155  			case 2:
  2156  				return &v.unknownFields
  2157  			default:
  2158  				return nil
  2159  			}
  2160  		}
  2161  		file_google_monitoring_v3_alert_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2162  			switch v := v.(*AlertPolicy_Documentation); i {
  2163  			case 0:
  2164  				return &v.state
  2165  			case 1:
  2166  				return &v.sizeCache
  2167  			case 2:
  2168  				return &v.unknownFields
  2169  			default:
  2170  				return nil
  2171  			}
  2172  		}
  2173  		file_google_monitoring_v3_alert_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2174  			switch v := v.(*AlertPolicy_Condition); i {
  2175  			case 0:
  2176  				return &v.state
  2177  			case 1:
  2178  				return &v.sizeCache
  2179  			case 2:
  2180  				return &v.unknownFields
  2181  			default:
  2182  				return nil
  2183  			}
  2184  		}
  2185  		file_google_monitoring_v3_alert_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2186  			switch v := v.(*AlertPolicy_AlertStrategy); i {
  2187  			case 0:
  2188  				return &v.state
  2189  			case 1:
  2190  				return &v.sizeCache
  2191  			case 2:
  2192  				return &v.unknownFields
  2193  			default:
  2194  				return nil
  2195  			}
  2196  		}
  2197  		file_google_monitoring_v3_alert_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2198  			switch v := v.(*AlertPolicy_Condition_Trigger); i {
  2199  			case 0:
  2200  				return &v.state
  2201  			case 1:
  2202  				return &v.sizeCache
  2203  			case 2:
  2204  				return &v.unknownFields
  2205  			default:
  2206  				return nil
  2207  			}
  2208  		}
  2209  		file_google_monitoring_v3_alert_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2210  			switch v := v.(*AlertPolicy_Condition_MetricThreshold); i {
  2211  			case 0:
  2212  				return &v.state
  2213  			case 1:
  2214  				return &v.sizeCache
  2215  			case 2:
  2216  				return &v.unknownFields
  2217  			default:
  2218  				return nil
  2219  			}
  2220  		}
  2221  		file_google_monitoring_v3_alert_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2222  			switch v := v.(*AlertPolicy_Condition_MetricAbsence); i {
  2223  			case 0:
  2224  				return &v.state
  2225  			case 1:
  2226  				return &v.sizeCache
  2227  			case 2:
  2228  				return &v.unknownFields
  2229  			default:
  2230  				return nil
  2231  			}
  2232  		}
  2233  		file_google_monitoring_v3_alert_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2234  			switch v := v.(*AlertPolicy_Condition_LogMatch); i {
  2235  			case 0:
  2236  				return &v.state
  2237  			case 1:
  2238  				return &v.sizeCache
  2239  			case 2:
  2240  				return &v.unknownFields
  2241  			default:
  2242  				return nil
  2243  			}
  2244  		}
  2245  		file_google_monitoring_v3_alert_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2246  			switch v := v.(*AlertPolicy_Condition_MonitoringQueryLanguageCondition); i {
  2247  			case 0:
  2248  				return &v.state
  2249  			case 1:
  2250  				return &v.sizeCache
  2251  			case 2:
  2252  				return &v.unknownFields
  2253  			default:
  2254  				return nil
  2255  			}
  2256  		}
  2257  		file_google_monitoring_v3_alert_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2258  			switch v := v.(*AlertPolicy_Condition_PrometheusQueryLanguageCondition); i {
  2259  			case 0:
  2260  				return &v.state
  2261  			case 1:
  2262  				return &v.sizeCache
  2263  			case 2:
  2264  				return &v.unknownFields
  2265  			default:
  2266  				return nil
  2267  			}
  2268  		}
  2269  		file_google_monitoring_v3_alert_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2270  			switch v := v.(*AlertPolicy_Condition_MetricThreshold_ForecastOptions); i {
  2271  			case 0:
  2272  				return &v.state
  2273  			case 1:
  2274  				return &v.sizeCache
  2275  			case 2:
  2276  				return &v.unknownFields
  2277  			default:
  2278  				return nil
  2279  			}
  2280  		}
  2281  		file_google_monitoring_v3_alert_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2282  			switch v := v.(*AlertPolicy_AlertStrategy_NotificationRateLimit); i {
  2283  			case 0:
  2284  				return &v.state
  2285  			case 1:
  2286  				return &v.sizeCache
  2287  			case 2:
  2288  				return &v.unknownFields
  2289  			default:
  2290  				return nil
  2291  			}
  2292  		}
  2293  		file_google_monitoring_v3_alert_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2294  			switch v := v.(*AlertPolicy_AlertStrategy_NotificationChannelStrategy); i {
  2295  			case 0:
  2296  				return &v.state
  2297  			case 1:
  2298  				return &v.sizeCache
  2299  			case 2:
  2300  				return &v.unknownFields
  2301  			default:
  2302  				return nil
  2303  			}
  2304  		}
  2305  	}
  2306  	file_google_monitoring_v3_alert_proto_msgTypes[2].OneofWrappers = []interface{}{
  2307  		(*AlertPolicy_Condition_ConditionThreshold)(nil),
  2308  		(*AlertPolicy_Condition_ConditionAbsent)(nil),
  2309  		(*AlertPolicy_Condition_ConditionMatchedLog)(nil),
  2310  		(*AlertPolicy_Condition_ConditionMonitoringQueryLanguage)(nil),
  2311  		(*AlertPolicy_Condition_ConditionPrometheusQueryLanguage)(nil),
  2312  	}
  2313  	file_google_monitoring_v3_alert_proto_msgTypes[5].OneofWrappers = []interface{}{
  2314  		(*AlertPolicy_Condition_Trigger_Count)(nil),
  2315  		(*AlertPolicy_Condition_Trigger_Percent)(nil),
  2316  	}
  2317  	type x struct{}
  2318  	out := protoimpl.TypeBuilder{
  2319  		File: protoimpl.DescBuilder{
  2320  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2321  			RawDescriptor: file_google_monitoring_v3_alert_proto_rawDesc,
  2322  			NumEnums:      3,
  2323  			NumMessages:   16,
  2324  			NumExtensions: 0,
  2325  			NumServices:   0,
  2326  		},
  2327  		GoTypes:           file_google_monitoring_v3_alert_proto_goTypes,
  2328  		DependencyIndexes: file_google_monitoring_v3_alert_proto_depIdxs,
  2329  		EnumInfos:         file_google_monitoring_v3_alert_proto_enumTypes,
  2330  		MessageInfos:      file_google_monitoring_v3_alert_proto_msgTypes,
  2331  	}.Build()
  2332  	File_google_monitoring_v3_alert_proto = out.File
  2333  	file_google_monitoring_v3_alert_proto_rawDesc = nil
  2334  	file_google_monitoring_v3_alert_proto_goTypes = nil
  2335  	file_google_monitoring_v3_alert_proto_depIdxs = nil
  2336  }
  2337  

View as plain text