...

Source file src/cloud.google.com/go/monitoring/apiv3/v2/monitoringpb/service.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/service.proto
    20  
    21  package monitoringpb
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	_ "google.golang.org/genproto/googleapis/api/annotations"
    28  	calendarperiod "google.golang.org/genproto/googleapis/type/calendarperiod"
    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  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  // `ServiceLevelObjective.View` determines what form of
    42  // `ServiceLevelObjective` is returned from `GetServiceLevelObjective`,
    43  // `ListServiceLevelObjectives`, and `ListServiceLevelObjectiveVersions` RPCs.
    44  type ServiceLevelObjective_View int32
    45  
    46  const (
    47  	// Same as FULL.
    48  	ServiceLevelObjective_VIEW_UNSPECIFIED ServiceLevelObjective_View = 0
    49  	// Return the embedded `ServiceLevelIndicator` in the form in which it was
    50  	// defined. If it was defined using a `BasicSli`, return that `BasicSli`.
    51  	ServiceLevelObjective_FULL ServiceLevelObjective_View = 2
    52  	// For `ServiceLevelIndicator`s using `BasicSli` articulation, instead
    53  	// return the `ServiceLevelIndicator` with its mode of computation fully
    54  	// spelled out as a `RequestBasedSli`. For `ServiceLevelIndicator`s using
    55  	// `RequestBasedSli` or `WindowsBasedSli`, return the
    56  	// `ServiceLevelIndicator` as it was provided.
    57  	ServiceLevelObjective_EXPLICIT ServiceLevelObjective_View = 1
    58  )
    59  
    60  // Enum value maps for ServiceLevelObjective_View.
    61  var (
    62  	ServiceLevelObjective_View_name = map[int32]string{
    63  		0: "VIEW_UNSPECIFIED",
    64  		2: "FULL",
    65  		1: "EXPLICIT",
    66  	}
    67  	ServiceLevelObjective_View_value = map[string]int32{
    68  		"VIEW_UNSPECIFIED": 0,
    69  		"FULL":             2,
    70  		"EXPLICIT":         1,
    71  	}
    72  )
    73  
    74  func (x ServiceLevelObjective_View) Enum() *ServiceLevelObjective_View {
    75  	p := new(ServiceLevelObjective_View)
    76  	*p = x
    77  	return p
    78  }
    79  
    80  func (x ServiceLevelObjective_View) String() string {
    81  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    82  }
    83  
    84  func (ServiceLevelObjective_View) Descriptor() protoreflect.EnumDescriptor {
    85  	return file_google_monitoring_v3_service_proto_enumTypes[0].Descriptor()
    86  }
    87  
    88  func (ServiceLevelObjective_View) Type() protoreflect.EnumType {
    89  	return &file_google_monitoring_v3_service_proto_enumTypes[0]
    90  }
    91  
    92  func (x ServiceLevelObjective_View) Number() protoreflect.EnumNumber {
    93  	return protoreflect.EnumNumber(x)
    94  }
    95  
    96  // Deprecated: Use ServiceLevelObjective_View.Descriptor instead.
    97  func (ServiceLevelObjective_View) EnumDescriptor() ([]byte, []int) {
    98  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{1, 0}
    99  }
   100  
   101  // A `Service` is a discrete, autonomous, and network-accessible unit, designed
   102  // to solve an individual concern
   103  // ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In
   104  // Cloud Monitoring, a `Service` acts as the root resource under which
   105  // operational aspects of the service are accessible.
   106  type Service struct {
   107  	state         protoimpl.MessageState
   108  	sizeCache     protoimpl.SizeCache
   109  	unknownFields protoimpl.UnknownFields
   110  
   111  	// Identifier. Resource name for this Service. The format is:
   112  	//
   113  	//	projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
   114  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   115  	// Name used for UI elements listing this Service.
   116  	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
   117  	// REQUIRED. Service-identifying atoms specifying the underlying service.
   118  	//
   119  	// Types that are assignable to Identifier:
   120  	//
   121  	//	*Service_Custom_
   122  	//	*Service_AppEngine_
   123  	//	*Service_CloudEndpoints_
   124  	//	*Service_ClusterIstio_
   125  	//	*Service_MeshIstio_
   126  	//	*Service_IstioCanonicalService_
   127  	//	*Service_CloudRun_
   128  	//	*Service_GkeNamespace_
   129  	//	*Service_GkeWorkload_
   130  	//	*Service_GkeService_
   131  	Identifier isService_Identifier `protobuf_oneof:"identifier"`
   132  	// Message that contains the service type and service labels of this service
   133  	// if it is a basic service.
   134  	// Documentation and examples
   135  	// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
   136  	BasicService *Service_BasicService `protobuf:"bytes,19,opt,name=basic_service,json=basicService,proto3" json:"basic_service,omitempty"`
   137  	// Configuration for how to query telemetry on a Service.
   138  	Telemetry *Service_Telemetry `protobuf:"bytes,13,opt,name=telemetry,proto3" json:"telemetry,omitempty"`
   139  	// Labels which have been used to annotate the service. Label keys must start
   140  	// with a letter. Label keys and values may contain lowercase letters,
   141  	// numbers, underscores, and dashes. Label keys and values have a maximum
   142  	// length of 63 characters, and must be less than 128 bytes in size. Up to 64
   143  	// label entries may be stored. For labels which do not have a semantic value,
   144  	// the empty string may be supplied for the label value.
   145  	UserLabels map[string]string `protobuf:"bytes,14,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"`
   146  }
   147  
   148  func (x *Service) Reset() {
   149  	*x = Service{}
   150  	if protoimpl.UnsafeEnabled {
   151  		mi := &file_google_monitoring_v3_service_proto_msgTypes[0]
   152  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   153  		ms.StoreMessageInfo(mi)
   154  	}
   155  }
   156  
   157  func (x *Service) String() string {
   158  	return protoimpl.X.MessageStringOf(x)
   159  }
   160  
   161  func (*Service) ProtoMessage() {}
   162  
   163  func (x *Service) ProtoReflect() protoreflect.Message {
   164  	mi := &file_google_monitoring_v3_service_proto_msgTypes[0]
   165  	if protoimpl.UnsafeEnabled && x != nil {
   166  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   167  		if ms.LoadMessageInfo() == nil {
   168  			ms.StoreMessageInfo(mi)
   169  		}
   170  		return ms
   171  	}
   172  	return mi.MessageOf(x)
   173  }
   174  
   175  // Deprecated: Use Service.ProtoReflect.Descriptor instead.
   176  func (*Service) Descriptor() ([]byte, []int) {
   177  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0}
   178  }
   179  
   180  func (x *Service) GetName() string {
   181  	if x != nil {
   182  		return x.Name
   183  	}
   184  	return ""
   185  }
   186  
   187  func (x *Service) GetDisplayName() string {
   188  	if x != nil {
   189  		return x.DisplayName
   190  	}
   191  	return ""
   192  }
   193  
   194  func (m *Service) GetIdentifier() isService_Identifier {
   195  	if m != nil {
   196  		return m.Identifier
   197  	}
   198  	return nil
   199  }
   200  
   201  func (x *Service) GetCustom() *Service_Custom {
   202  	if x, ok := x.GetIdentifier().(*Service_Custom_); ok {
   203  		return x.Custom
   204  	}
   205  	return nil
   206  }
   207  
   208  func (x *Service) GetAppEngine() *Service_AppEngine {
   209  	if x, ok := x.GetIdentifier().(*Service_AppEngine_); ok {
   210  		return x.AppEngine
   211  	}
   212  	return nil
   213  }
   214  
   215  func (x *Service) GetCloudEndpoints() *Service_CloudEndpoints {
   216  	if x, ok := x.GetIdentifier().(*Service_CloudEndpoints_); ok {
   217  		return x.CloudEndpoints
   218  	}
   219  	return nil
   220  }
   221  
   222  func (x *Service) GetClusterIstio() *Service_ClusterIstio {
   223  	if x, ok := x.GetIdentifier().(*Service_ClusterIstio_); ok {
   224  		return x.ClusterIstio
   225  	}
   226  	return nil
   227  }
   228  
   229  func (x *Service) GetMeshIstio() *Service_MeshIstio {
   230  	if x, ok := x.GetIdentifier().(*Service_MeshIstio_); ok {
   231  		return x.MeshIstio
   232  	}
   233  	return nil
   234  }
   235  
   236  func (x *Service) GetIstioCanonicalService() *Service_IstioCanonicalService {
   237  	if x, ok := x.GetIdentifier().(*Service_IstioCanonicalService_); ok {
   238  		return x.IstioCanonicalService
   239  	}
   240  	return nil
   241  }
   242  
   243  func (x *Service) GetCloudRun() *Service_CloudRun {
   244  	if x, ok := x.GetIdentifier().(*Service_CloudRun_); ok {
   245  		return x.CloudRun
   246  	}
   247  	return nil
   248  }
   249  
   250  func (x *Service) GetGkeNamespace() *Service_GkeNamespace {
   251  	if x, ok := x.GetIdentifier().(*Service_GkeNamespace_); ok {
   252  		return x.GkeNamespace
   253  	}
   254  	return nil
   255  }
   256  
   257  func (x *Service) GetGkeWorkload() *Service_GkeWorkload {
   258  	if x, ok := x.GetIdentifier().(*Service_GkeWorkload_); ok {
   259  		return x.GkeWorkload
   260  	}
   261  	return nil
   262  }
   263  
   264  func (x *Service) GetGkeService() *Service_GkeService {
   265  	if x, ok := x.GetIdentifier().(*Service_GkeService_); ok {
   266  		return x.GkeService
   267  	}
   268  	return nil
   269  }
   270  
   271  func (x *Service) GetBasicService() *Service_BasicService {
   272  	if x != nil {
   273  		return x.BasicService
   274  	}
   275  	return nil
   276  }
   277  
   278  func (x *Service) GetTelemetry() *Service_Telemetry {
   279  	if x != nil {
   280  		return x.Telemetry
   281  	}
   282  	return nil
   283  }
   284  
   285  func (x *Service) GetUserLabels() map[string]string {
   286  	if x != nil {
   287  		return x.UserLabels
   288  	}
   289  	return nil
   290  }
   291  
   292  type isService_Identifier interface {
   293  	isService_Identifier()
   294  }
   295  
   296  type Service_Custom_ struct {
   297  	// Custom service type.
   298  	Custom *Service_Custom `protobuf:"bytes,6,opt,name=custom,proto3,oneof"`
   299  }
   300  
   301  type Service_AppEngine_ struct {
   302  	// Type used for App Engine services.
   303  	AppEngine *Service_AppEngine `protobuf:"bytes,7,opt,name=app_engine,json=appEngine,proto3,oneof"`
   304  }
   305  
   306  type Service_CloudEndpoints_ struct {
   307  	// Type used for Cloud Endpoints services.
   308  	CloudEndpoints *Service_CloudEndpoints `protobuf:"bytes,8,opt,name=cloud_endpoints,json=cloudEndpoints,proto3,oneof"`
   309  }
   310  
   311  type Service_ClusterIstio_ struct {
   312  	// Type used for Istio services that live in a Kubernetes cluster.
   313  	ClusterIstio *Service_ClusterIstio `protobuf:"bytes,9,opt,name=cluster_istio,json=clusterIstio,proto3,oneof"`
   314  }
   315  
   316  type Service_MeshIstio_ struct {
   317  	// Type used for Istio services scoped to an Istio mesh.
   318  	MeshIstio *Service_MeshIstio `protobuf:"bytes,10,opt,name=mesh_istio,json=meshIstio,proto3,oneof"`
   319  }
   320  
   321  type Service_IstioCanonicalService_ struct {
   322  	// Type used for canonical services scoped to an Istio mesh.
   323  	// Metrics for Istio are
   324  	// [documented here](https://istio.io/latest/docs/reference/config/metrics/)
   325  	IstioCanonicalService *Service_IstioCanonicalService `protobuf:"bytes,11,opt,name=istio_canonical_service,json=istioCanonicalService,proto3,oneof"`
   326  }
   327  
   328  type Service_CloudRun_ struct {
   329  	// Type used for Cloud Run services.
   330  	CloudRun *Service_CloudRun `protobuf:"bytes,12,opt,name=cloud_run,json=cloudRun,proto3,oneof"`
   331  }
   332  
   333  type Service_GkeNamespace_ struct {
   334  	// Type used for GKE Namespaces.
   335  	GkeNamespace *Service_GkeNamespace `protobuf:"bytes,15,opt,name=gke_namespace,json=gkeNamespace,proto3,oneof"`
   336  }
   337  
   338  type Service_GkeWorkload_ struct {
   339  	// Type used for GKE Workloads.
   340  	GkeWorkload *Service_GkeWorkload `protobuf:"bytes,16,opt,name=gke_workload,json=gkeWorkload,proto3,oneof"`
   341  }
   342  
   343  type Service_GkeService_ struct {
   344  	// Type used for GKE Services (the Kubernetes concept of a service).
   345  	GkeService *Service_GkeService `protobuf:"bytes,17,opt,name=gke_service,json=gkeService,proto3,oneof"`
   346  }
   347  
   348  func (*Service_Custom_) isService_Identifier() {}
   349  
   350  func (*Service_AppEngine_) isService_Identifier() {}
   351  
   352  func (*Service_CloudEndpoints_) isService_Identifier() {}
   353  
   354  func (*Service_ClusterIstio_) isService_Identifier() {}
   355  
   356  func (*Service_MeshIstio_) isService_Identifier() {}
   357  
   358  func (*Service_IstioCanonicalService_) isService_Identifier() {}
   359  
   360  func (*Service_CloudRun_) isService_Identifier() {}
   361  
   362  func (*Service_GkeNamespace_) isService_Identifier() {}
   363  
   364  func (*Service_GkeWorkload_) isService_Identifier() {}
   365  
   366  func (*Service_GkeService_) isService_Identifier() {}
   367  
   368  // A Service-Level Objective (SLO) describes a level of desired good service. It
   369  // consists of a service-level indicator (SLI), a performance goal, and a period
   370  // over which the objective is to be evaluated against that goal. The SLO can
   371  // use SLIs defined in a number of different manners. Typical SLOs might include
   372  // "99% of requests in each rolling week have latency below 200 milliseconds" or
   373  // "99.5% of requests in each calendar month return successfully."
   374  type ServiceLevelObjective struct {
   375  	state         protoimpl.MessageState
   376  	sizeCache     protoimpl.SizeCache
   377  	unknownFields protoimpl.UnknownFields
   378  
   379  	// Identifier. Resource name for this `ServiceLevelObjective`. The format is:
   380  	//
   381  	//	projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
   382  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   383  	// Name used for UI elements listing this SLO.
   384  	DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
   385  	// The definition of good service, used to measure and calculate the quality
   386  	// of the `Service`'s performance with respect to a single aspect of service
   387  	// quality.
   388  	ServiceLevelIndicator *ServiceLevelIndicator `protobuf:"bytes,3,opt,name=service_level_indicator,json=serviceLevelIndicator,proto3" json:"service_level_indicator,omitempty"`
   389  	// The fraction of service that must be good in order for this objective to be
   390  	// met. `0 < goal <= 0.999`.
   391  	Goal float64 `protobuf:"fixed64,4,opt,name=goal,proto3" json:"goal,omitempty"`
   392  	// The time period over which the objective will be evaluated.
   393  	//
   394  	// Types that are assignable to Period:
   395  	//
   396  	//	*ServiceLevelObjective_RollingPeriod
   397  	//	*ServiceLevelObjective_CalendarPeriod
   398  	Period isServiceLevelObjective_Period `protobuf_oneof:"period"`
   399  	// Labels which have been used to annotate the service-level objective. Label
   400  	// keys must start with a letter. Label keys and values may contain lowercase
   401  	// letters, numbers, underscores, and dashes. Label keys and values have a
   402  	// maximum length of 63 characters, and must be less than 128 bytes in size.
   403  	// Up to 64 label entries may be stored. For labels which do not have a
   404  	// semantic value, the empty string may be supplied for the label value.
   405  	UserLabels map[string]string `protobuf:"bytes,12,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"`
   406  }
   407  
   408  func (x *ServiceLevelObjective) Reset() {
   409  	*x = ServiceLevelObjective{}
   410  	if protoimpl.UnsafeEnabled {
   411  		mi := &file_google_monitoring_v3_service_proto_msgTypes[1]
   412  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   413  		ms.StoreMessageInfo(mi)
   414  	}
   415  }
   416  
   417  func (x *ServiceLevelObjective) String() string {
   418  	return protoimpl.X.MessageStringOf(x)
   419  }
   420  
   421  func (*ServiceLevelObjective) ProtoMessage() {}
   422  
   423  func (x *ServiceLevelObjective) ProtoReflect() protoreflect.Message {
   424  	mi := &file_google_monitoring_v3_service_proto_msgTypes[1]
   425  	if protoimpl.UnsafeEnabled && x != nil {
   426  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   427  		if ms.LoadMessageInfo() == nil {
   428  			ms.StoreMessageInfo(mi)
   429  		}
   430  		return ms
   431  	}
   432  	return mi.MessageOf(x)
   433  }
   434  
   435  // Deprecated: Use ServiceLevelObjective.ProtoReflect.Descriptor instead.
   436  func (*ServiceLevelObjective) Descriptor() ([]byte, []int) {
   437  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{1}
   438  }
   439  
   440  func (x *ServiceLevelObjective) GetName() string {
   441  	if x != nil {
   442  		return x.Name
   443  	}
   444  	return ""
   445  }
   446  
   447  func (x *ServiceLevelObjective) GetDisplayName() string {
   448  	if x != nil {
   449  		return x.DisplayName
   450  	}
   451  	return ""
   452  }
   453  
   454  func (x *ServiceLevelObjective) GetServiceLevelIndicator() *ServiceLevelIndicator {
   455  	if x != nil {
   456  		return x.ServiceLevelIndicator
   457  	}
   458  	return nil
   459  }
   460  
   461  func (x *ServiceLevelObjective) GetGoal() float64 {
   462  	if x != nil {
   463  		return x.Goal
   464  	}
   465  	return 0
   466  }
   467  
   468  func (m *ServiceLevelObjective) GetPeriod() isServiceLevelObjective_Period {
   469  	if m != nil {
   470  		return m.Period
   471  	}
   472  	return nil
   473  }
   474  
   475  func (x *ServiceLevelObjective) GetRollingPeriod() *durationpb.Duration {
   476  	if x, ok := x.GetPeriod().(*ServiceLevelObjective_RollingPeriod); ok {
   477  		return x.RollingPeriod
   478  	}
   479  	return nil
   480  }
   481  
   482  func (x *ServiceLevelObjective) GetCalendarPeriod() calendarperiod.CalendarPeriod {
   483  	if x, ok := x.GetPeriod().(*ServiceLevelObjective_CalendarPeriod); ok {
   484  		return x.CalendarPeriod
   485  	}
   486  	return calendarperiod.CalendarPeriod(0)
   487  }
   488  
   489  func (x *ServiceLevelObjective) GetUserLabels() map[string]string {
   490  	if x != nil {
   491  		return x.UserLabels
   492  	}
   493  	return nil
   494  }
   495  
   496  type isServiceLevelObjective_Period interface {
   497  	isServiceLevelObjective_Period()
   498  }
   499  
   500  type ServiceLevelObjective_RollingPeriod struct {
   501  	// A rolling time period, semantically "in the past `<rolling_period>`".
   502  	// Must be an integer multiple of 1 day no larger than 30 days.
   503  	RollingPeriod *durationpb.Duration `protobuf:"bytes,5,opt,name=rolling_period,json=rollingPeriod,proto3,oneof"`
   504  }
   505  
   506  type ServiceLevelObjective_CalendarPeriod struct {
   507  	// A calendar period, semantically "since the start of the current
   508  	// `<calendar_period>`". At this time, only `DAY`, `WEEK`, `FORTNIGHT`, and
   509  	// `MONTH` are supported.
   510  	CalendarPeriod calendarperiod.CalendarPeriod `protobuf:"varint,6,opt,name=calendar_period,json=calendarPeriod,proto3,enum=google.type.CalendarPeriod,oneof"`
   511  }
   512  
   513  func (*ServiceLevelObjective_RollingPeriod) isServiceLevelObjective_Period() {}
   514  
   515  func (*ServiceLevelObjective_CalendarPeriod) isServiceLevelObjective_Period() {}
   516  
   517  // A Service-Level Indicator (SLI) describes the "performance" of a service. For
   518  // some services, the SLI is well-defined. In such cases, the SLI can be
   519  // described easily by referencing the well-known SLI and providing the needed
   520  // parameters. Alternatively, a "custom" SLI can be defined with a query to the
   521  // underlying metric store. An SLI is defined to be `good_service /
   522  // total_service` over any queried time interval. The value of performance
   523  // always falls into the range `0 <= performance <= 1`. A custom SLI describes
   524  // how to compute this ratio, whether this is by dividing values from a pair of
   525  // time series, cutting a `Distribution` into good and bad counts, or counting
   526  // time windows in which the service complies with a criterion. For separation
   527  // of concerns, a single Service-Level Indicator measures performance for only
   528  // one aspect of service quality, such as fraction of successful queries or
   529  // fast-enough queries.
   530  type ServiceLevelIndicator struct {
   531  	state         protoimpl.MessageState
   532  	sizeCache     protoimpl.SizeCache
   533  	unknownFields protoimpl.UnknownFields
   534  
   535  	// Service level indicators can be grouped by whether the "unit" of service
   536  	// being measured is based on counts of good requests or on counts of good
   537  	// time windows
   538  	//
   539  	// Types that are assignable to Type:
   540  	//
   541  	//	*ServiceLevelIndicator_BasicSli
   542  	//	*ServiceLevelIndicator_RequestBased
   543  	//	*ServiceLevelIndicator_WindowsBased
   544  	Type isServiceLevelIndicator_Type `protobuf_oneof:"type"`
   545  }
   546  
   547  func (x *ServiceLevelIndicator) Reset() {
   548  	*x = ServiceLevelIndicator{}
   549  	if protoimpl.UnsafeEnabled {
   550  		mi := &file_google_monitoring_v3_service_proto_msgTypes[2]
   551  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   552  		ms.StoreMessageInfo(mi)
   553  	}
   554  }
   555  
   556  func (x *ServiceLevelIndicator) String() string {
   557  	return protoimpl.X.MessageStringOf(x)
   558  }
   559  
   560  func (*ServiceLevelIndicator) ProtoMessage() {}
   561  
   562  func (x *ServiceLevelIndicator) ProtoReflect() protoreflect.Message {
   563  	mi := &file_google_monitoring_v3_service_proto_msgTypes[2]
   564  	if protoimpl.UnsafeEnabled && x != nil {
   565  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   566  		if ms.LoadMessageInfo() == nil {
   567  			ms.StoreMessageInfo(mi)
   568  		}
   569  		return ms
   570  	}
   571  	return mi.MessageOf(x)
   572  }
   573  
   574  // Deprecated: Use ServiceLevelIndicator.ProtoReflect.Descriptor instead.
   575  func (*ServiceLevelIndicator) Descriptor() ([]byte, []int) {
   576  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{2}
   577  }
   578  
   579  func (m *ServiceLevelIndicator) GetType() isServiceLevelIndicator_Type {
   580  	if m != nil {
   581  		return m.Type
   582  	}
   583  	return nil
   584  }
   585  
   586  func (x *ServiceLevelIndicator) GetBasicSli() *BasicSli {
   587  	if x, ok := x.GetType().(*ServiceLevelIndicator_BasicSli); ok {
   588  		return x.BasicSli
   589  	}
   590  	return nil
   591  }
   592  
   593  func (x *ServiceLevelIndicator) GetRequestBased() *RequestBasedSli {
   594  	if x, ok := x.GetType().(*ServiceLevelIndicator_RequestBased); ok {
   595  		return x.RequestBased
   596  	}
   597  	return nil
   598  }
   599  
   600  func (x *ServiceLevelIndicator) GetWindowsBased() *WindowsBasedSli {
   601  	if x, ok := x.GetType().(*ServiceLevelIndicator_WindowsBased); ok {
   602  		return x.WindowsBased
   603  	}
   604  	return nil
   605  }
   606  
   607  type isServiceLevelIndicator_Type interface {
   608  	isServiceLevelIndicator_Type()
   609  }
   610  
   611  type ServiceLevelIndicator_BasicSli struct {
   612  	// Basic SLI on a well-known service type.
   613  	BasicSli *BasicSli `protobuf:"bytes,4,opt,name=basic_sli,json=basicSli,proto3,oneof"`
   614  }
   615  
   616  type ServiceLevelIndicator_RequestBased struct {
   617  	// Request-based SLIs
   618  	RequestBased *RequestBasedSli `protobuf:"bytes,1,opt,name=request_based,json=requestBased,proto3,oneof"`
   619  }
   620  
   621  type ServiceLevelIndicator_WindowsBased struct {
   622  	// Windows-based SLIs
   623  	WindowsBased *WindowsBasedSli `protobuf:"bytes,2,opt,name=windows_based,json=windowsBased,proto3,oneof"`
   624  }
   625  
   626  func (*ServiceLevelIndicator_BasicSli) isServiceLevelIndicator_Type() {}
   627  
   628  func (*ServiceLevelIndicator_RequestBased) isServiceLevelIndicator_Type() {}
   629  
   630  func (*ServiceLevelIndicator_WindowsBased) isServiceLevelIndicator_Type() {}
   631  
   632  // An SLI measuring performance on a well-known service type. Performance will
   633  // be computed on the basis of pre-defined metrics. The type of the
   634  // `service_resource` determines the metrics to use and the
   635  // `service_resource.labels` and `metric_labels` are used to construct a
   636  // monitoring filter to filter that metric down to just the data relevant to
   637  // this service.
   638  type BasicSli struct {
   639  	state         protoimpl.MessageState
   640  	sizeCache     protoimpl.SizeCache
   641  	unknownFields protoimpl.UnknownFields
   642  
   643  	// OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from
   644  	// other methods will not be used to calculate performance for this SLI. If
   645  	// omitted, this SLI applies to all the Service's methods. For service types
   646  	// that don't support breaking down by method, setting this field will result
   647  	// in an error.
   648  	Method []string `protobuf:"bytes,7,rep,name=method,proto3" json:"method,omitempty"`
   649  	// OPTIONAL: The set of locations to which this SLI is relevant. Telemetry
   650  	// from other locations will not be used to calculate performance for this
   651  	// SLI. If omitted, this SLI applies to all locations in which the Service has
   652  	// activity. For service types that don't support breaking down by location,
   653  	// setting this field will result in an error.
   654  	Location []string `protobuf:"bytes,8,rep,name=location,proto3" json:"location,omitempty"`
   655  	// OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry
   656  	// from other API versions will not be used to calculate performance for this
   657  	// SLI. If omitted, this SLI applies to all API versions. For service types
   658  	// that don't support breaking down by version, setting this field will result
   659  	// in an error.
   660  	Version []string `protobuf:"bytes,9,rep,name=version,proto3" json:"version,omitempty"`
   661  	// This SLI can be evaluated on the basis of availability or latency.
   662  	//
   663  	// Types that are assignable to SliCriteria:
   664  	//
   665  	//	*BasicSli_Availability
   666  	//	*BasicSli_Latency
   667  	SliCriteria isBasicSli_SliCriteria `protobuf_oneof:"sli_criteria"`
   668  }
   669  
   670  func (x *BasicSli) Reset() {
   671  	*x = BasicSli{}
   672  	if protoimpl.UnsafeEnabled {
   673  		mi := &file_google_monitoring_v3_service_proto_msgTypes[3]
   674  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   675  		ms.StoreMessageInfo(mi)
   676  	}
   677  }
   678  
   679  func (x *BasicSli) String() string {
   680  	return protoimpl.X.MessageStringOf(x)
   681  }
   682  
   683  func (*BasicSli) ProtoMessage() {}
   684  
   685  func (x *BasicSli) ProtoReflect() protoreflect.Message {
   686  	mi := &file_google_monitoring_v3_service_proto_msgTypes[3]
   687  	if protoimpl.UnsafeEnabled && x != nil {
   688  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   689  		if ms.LoadMessageInfo() == nil {
   690  			ms.StoreMessageInfo(mi)
   691  		}
   692  		return ms
   693  	}
   694  	return mi.MessageOf(x)
   695  }
   696  
   697  // Deprecated: Use BasicSli.ProtoReflect.Descriptor instead.
   698  func (*BasicSli) Descriptor() ([]byte, []int) {
   699  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3}
   700  }
   701  
   702  func (x *BasicSli) GetMethod() []string {
   703  	if x != nil {
   704  		return x.Method
   705  	}
   706  	return nil
   707  }
   708  
   709  func (x *BasicSli) GetLocation() []string {
   710  	if x != nil {
   711  		return x.Location
   712  	}
   713  	return nil
   714  }
   715  
   716  func (x *BasicSli) GetVersion() []string {
   717  	if x != nil {
   718  		return x.Version
   719  	}
   720  	return nil
   721  }
   722  
   723  func (m *BasicSli) GetSliCriteria() isBasicSli_SliCriteria {
   724  	if m != nil {
   725  		return m.SliCriteria
   726  	}
   727  	return nil
   728  }
   729  
   730  func (x *BasicSli) GetAvailability() *BasicSli_AvailabilityCriteria {
   731  	if x, ok := x.GetSliCriteria().(*BasicSli_Availability); ok {
   732  		return x.Availability
   733  	}
   734  	return nil
   735  }
   736  
   737  func (x *BasicSli) GetLatency() *BasicSli_LatencyCriteria {
   738  	if x, ok := x.GetSliCriteria().(*BasicSli_Latency); ok {
   739  		return x.Latency
   740  	}
   741  	return nil
   742  }
   743  
   744  type isBasicSli_SliCriteria interface {
   745  	isBasicSli_SliCriteria()
   746  }
   747  
   748  type BasicSli_Availability struct {
   749  	// Good service is defined to be the count of requests made to this service
   750  	// that return successfully.
   751  	Availability *BasicSli_AvailabilityCriteria `protobuf:"bytes,2,opt,name=availability,proto3,oneof"`
   752  }
   753  
   754  type BasicSli_Latency struct {
   755  	// Good service is defined to be the count of requests made to this service
   756  	// that are fast enough with respect to `latency.threshold`.
   757  	Latency *BasicSli_LatencyCriteria `protobuf:"bytes,3,opt,name=latency,proto3,oneof"`
   758  }
   759  
   760  func (*BasicSli_Availability) isBasicSli_SliCriteria() {}
   761  
   762  func (*BasicSli_Latency) isBasicSli_SliCriteria() {}
   763  
   764  // Range of numerical values within `min` and `max`.
   765  type Range struct {
   766  	state         protoimpl.MessageState
   767  	sizeCache     protoimpl.SizeCache
   768  	unknownFields protoimpl.UnknownFields
   769  
   770  	// Range minimum.
   771  	Min float64 `protobuf:"fixed64,1,opt,name=min,proto3" json:"min,omitempty"`
   772  	// Range maximum.
   773  	Max float64 `protobuf:"fixed64,2,opt,name=max,proto3" json:"max,omitempty"`
   774  }
   775  
   776  func (x *Range) Reset() {
   777  	*x = Range{}
   778  	if protoimpl.UnsafeEnabled {
   779  		mi := &file_google_monitoring_v3_service_proto_msgTypes[4]
   780  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   781  		ms.StoreMessageInfo(mi)
   782  	}
   783  }
   784  
   785  func (x *Range) String() string {
   786  	return protoimpl.X.MessageStringOf(x)
   787  }
   788  
   789  func (*Range) ProtoMessage() {}
   790  
   791  func (x *Range) ProtoReflect() protoreflect.Message {
   792  	mi := &file_google_monitoring_v3_service_proto_msgTypes[4]
   793  	if protoimpl.UnsafeEnabled && x != nil {
   794  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   795  		if ms.LoadMessageInfo() == nil {
   796  			ms.StoreMessageInfo(mi)
   797  		}
   798  		return ms
   799  	}
   800  	return mi.MessageOf(x)
   801  }
   802  
   803  // Deprecated: Use Range.ProtoReflect.Descriptor instead.
   804  func (*Range) Descriptor() ([]byte, []int) {
   805  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{4}
   806  }
   807  
   808  func (x *Range) GetMin() float64 {
   809  	if x != nil {
   810  		return x.Min
   811  	}
   812  	return 0
   813  }
   814  
   815  func (x *Range) GetMax() float64 {
   816  	if x != nil {
   817  		return x.Max
   818  	}
   819  	return 0
   820  }
   821  
   822  // Service Level Indicators for which atomic units of service are counted
   823  // directly.
   824  type RequestBasedSli struct {
   825  	state         protoimpl.MessageState
   826  	sizeCache     protoimpl.SizeCache
   827  	unknownFields protoimpl.UnknownFields
   828  
   829  	// The means to compute a ratio of `good_service` to `total_service`.
   830  	//
   831  	// Types that are assignable to Method:
   832  	//
   833  	//	*RequestBasedSli_GoodTotalRatio
   834  	//	*RequestBasedSli_DistributionCut
   835  	Method isRequestBasedSli_Method `protobuf_oneof:"method"`
   836  }
   837  
   838  func (x *RequestBasedSli) Reset() {
   839  	*x = RequestBasedSli{}
   840  	if protoimpl.UnsafeEnabled {
   841  		mi := &file_google_monitoring_v3_service_proto_msgTypes[5]
   842  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   843  		ms.StoreMessageInfo(mi)
   844  	}
   845  }
   846  
   847  func (x *RequestBasedSli) String() string {
   848  	return protoimpl.X.MessageStringOf(x)
   849  }
   850  
   851  func (*RequestBasedSli) ProtoMessage() {}
   852  
   853  func (x *RequestBasedSli) ProtoReflect() protoreflect.Message {
   854  	mi := &file_google_monitoring_v3_service_proto_msgTypes[5]
   855  	if protoimpl.UnsafeEnabled && x != nil {
   856  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   857  		if ms.LoadMessageInfo() == nil {
   858  			ms.StoreMessageInfo(mi)
   859  		}
   860  		return ms
   861  	}
   862  	return mi.MessageOf(x)
   863  }
   864  
   865  // Deprecated: Use RequestBasedSli.ProtoReflect.Descriptor instead.
   866  func (*RequestBasedSli) Descriptor() ([]byte, []int) {
   867  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{5}
   868  }
   869  
   870  func (m *RequestBasedSli) GetMethod() isRequestBasedSli_Method {
   871  	if m != nil {
   872  		return m.Method
   873  	}
   874  	return nil
   875  }
   876  
   877  func (x *RequestBasedSli) GetGoodTotalRatio() *TimeSeriesRatio {
   878  	if x, ok := x.GetMethod().(*RequestBasedSli_GoodTotalRatio); ok {
   879  		return x.GoodTotalRatio
   880  	}
   881  	return nil
   882  }
   883  
   884  func (x *RequestBasedSli) GetDistributionCut() *DistributionCut {
   885  	if x, ok := x.GetMethod().(*RequestBasedSli_DistributionCut); ok {
   886  		return x.DistributionCut
   887  	}
   888  	return nil
   889  }
   890  
   891  type isRequestBasedSli_Method interface {
   892  	isRequestBasedSli_Method()
   893  }
   894  
   895  type RequestBasedSli_GoodTotalRatio struct {
   896  	// `good_total_ratio` is used when the ratio of `good_service` to
   897  	// `total_service` is computed from two `TimeSeries`.
   898  	GoodTotalRatio *TimeSeriesRatio `protobuf:"bytes,1,opt,name=good_total_ratio,json=goodTotalRatio,proto3,oneof"`
   899  }
   900  
   901  type RequestBasedSli_DistributionCut struct {
   902  	// `distribution_cut` is used when `good_service` is a count of values
   903  	// aggregated in a `Distribution` that fall into a good range. The
   904  	// `total_service` is the total count of all values aggregated in the
   905  	// `Distribution`.
   906  	DistributionCut *DistributionCut `protobuf:"bytes,3,opt,name=distribution_cut,json=distributionCut,proto3,oneof"`
   907  }
   908  
   909  func (*RequestBasedSli_GoodTotalRatio) isRequestBasedSli_Method() {}
   910  
   911  func (*RequestBasedSli_DistributionCut) isRequestBasedSli_Method() {}
   912  
   913  // A `TimeSeriesRatio` specifies two `TimeSeries` to use for computing the
   914  // `good_service / total_service` ratio. The specified `TimeSeries` must have
   915  // `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
   916  // DELTA` or `MetricKind = CUMULATIVE`. The `TimeSeriesRatio` must specify
   917  // exactly two of good, bad, and total, and the relationship `good_service +
   918  // bad_service = total_service` will be assumed.
   919  type TimeSeriesRatio struct {
   920  	state         protoimpl.MessageState
   921  	sizeCache     protoimpl.SizeCache
   922  	unknownFields protoimpl.UnknownFields
   923  
   924  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
   925  	// specifying a `TimeSeries` quantifying good service provided. Must have
   926  	// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
   927  	// DELTA` or `MetricKind = CUMULATIVE`.
   928  	GoodServiceFilter string `protobuf:"bytes,4,opt,name=good_service_filter,json=goodServiceFilter,proto3" json:"good_service_filter,omitempty"`
   929  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
   930  	// specifying a `TimeSeries` quantifying bad service, either demanded service
   931  	// that was not provided or demanded service that was of inadequate quality.
   932  	// Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have
   933  	// `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
   934  	BadServiceFilter string `protobuf:"bytes,5,opt,name=bad_service_filter,json=badServiceFilter,proto3" json:"bad_service_filter,omitempty"`
   935  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
   936  	// specifying a `TimeSeries` quantifying total demanded service. Must have
   937  	// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
   938  	// DELTA` or `MetricKind = CUMULATIVE`.
   939  	TotalServiceFilter string `protobuf:"bytes,6,opt,name=total_service_filter,json=totalServiceFilter,proto3" json:"total_service_filter,omitempty"`
   940  }
   941  
   942  func (x *TimeSeriesRatio) Reset() {
   943  	*x = TimeSeriesRatio{}
   944  	if protoimpl.UnsafeEnabled {
   945  		mi := &file_google_monitoring_v3_service_proto_msgTypes[6]
   946  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   947  		ms.StoreMessageInfo(mi)
   948  	}
   949  }
   950  
   951  func (x *TimeSeriesRatio) String() string {
   952  	return protoimpl.X.MessageStringOf(x)
   953  }
   954  
   955  func (*TimeSeriesRatio) ProtoMessage() {}
   956  
   957  func (x *TimeSeriesRatio) ProtoReflect() protoreflect.Message {
   958  	mi := &file_google_monitoring_v3_service_proto_msgTypes[6]
   959  	if protoimpl.UnsafeEnabled && x != nil {
   960  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   961  		if ms.LoadMessageInfo() == nil {
   962  			ms.StoreMessageInfo(mi)
   963  		}
   964  		return ms
   965  	}
   966  	return mi.MessageOf(x)
   967  }
   968  
   969  // Deprecated: Use TimeSeriesRatio.ProtoReflect.Descriptor instead.
   970  func (*TimeSeriesRatio) Descriptor() ([]byte, []int) {
   971  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{6}
   972  }
   973  
   974  func (x *TimeSeriesRatio) GetGoodServiceFilter() string {
   975  	if x != nil {
   976  		return x.GoodServiceFilter
   977  	}
   978  	return ""
   979  }
   980  
   981  func (x *TimeSeriesRatio) GetBadServiceFilter() string {
   982  	if x != nil {
   983  		return x.BadServiceFilter
   984  	}
   985  	return ""
   986  }
   987  
   988  func (x *TimeSeriesRatio) GetTotalServiceFilter() string {
   989  	if x != nil {
   990  		return x.TotalServiceFilter
   991  	}
   992  	return ""
   993  }
   994  
   995  // A `DistributionCut` defines a `TimeSeries` and thresholds used for measuring
   996  // good service and total service. The `TimeSeries` must have `ValueType =
   997  // DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The
   998  // computed `good_service` will be the estimated count of values in the
   999  // `Distribution` that fall within the specified `min` and `max`.
  1000  type DistributionCut struct {
  1001  	state         protoimpl.MessageState
  1002  	sizeCache     protoimpl.SizeCache
  1003  	unknownFields protoimpl.UnknownFields
  1004  
  1005  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
  1006  	// specifying a `TimeSeries` aggregating values. Must have `ValueType =
  1007  	// DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
  1008  	DistributionFilter string `protobuf:"bytes,4,opt,name=distribution_filter,json=distributionFilter,proto3" json:"distribution_filter,omitempty"`
  1009  	// Range of values considered "good." For a one-sided range, set one bound to
  1010  	// an infinite value.
  1011  	Range *Range `protobuf:"bytes,5,opt,name=range,proto3" json:"range,omitempty"`
  1012  }
  1013  
  1014  func (x *DistributionCut) Reset() {
  1015  	*x = DistributionCut{}
  1016  	if protoimpl.UnsafeEnabled {
  1017  		mi := &file_google_monitoring_v3_service_proto_msgTypes[7]
  1018  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1019  		ms.StoreMessageInfo(mi)
  1020  	}
  1021  }
  1022  
  1023  func (x *DistributionCut) String() string {
  1024  	return protoimpl.X.MessageStringOf(x)
  1025  }
  1026  
  1027  func (*DistributionCut) ProtoMessage() {}
  1028  
  1029  func (x *DistributionCut) ProtoReflect() protoreflect.Message {
  1030  	mi := &file_google_monitoring_v3_service_proto_msgTypes[7]
  1031  	if protoimpl.UnsafeEnabled && x != nil {
  1032  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1033  		if ms.LoadMessageInfo() == nil {
  1034  			ms.StoreMessageInfo(mi)
  1035  		}
  1036  		return ms
  1037  	}
  1038  	return mi.MessageOf(x)
  1039  }
  1040  
  1041  // Deprecated: Use DistributionCut.ProtoReflect.Descriptor instead.
  1042  func (*DistributionCut) Descriptor() ([]byte, []int) {
  1043  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{7}
  1044  }
  1045  
  1046  func (x *DistributionCut) GetDistributionFilter() string {
  1047  	if x != nil {
  1048  		return x.DistributionFilter
  1049  	}
  1050  	return ""
  1051  }
  1052  
  1053  func (x *DistributionCut) GetRange() *Range {
  1054  	if x != nil {
  1055  		return x.Range
  1056  	}
  1057  	return nil
  1058  }
  1059  
  1060  // A `WindowsBasedSli` defines `good_service` as the count of time windows for
  1061  // which the provided service was of good quality. Criteria for determining
  1062  // if service was good are embedded in the `window_criterion`.
  1063  type WindowsBasedSli struct {
  1064  	state         protoimpl.MessageState
  1065  	sizeCache     protoimpl.SizeCache
  1066  	unknownFields protoimpl.UnknownFields
  1067  
  1068  	// The criterion to use for evaluating window goodness.
  1069  	//
  1070  	// Types that are assignable to WindowCriterion:
  1071  	//
  1072  	//	*WindowsBasedSli_GoodBadMetricFilter
  1073  	//	*WindowsBasedSli_GoodTotalRatioThreshold
  1074  	//	*WindowsBasedSli_MetricMeanInRange
  1075  	//	*WindowsBasedSli_MetricSumInRange
  1076  	WindowCriterion isWindowsBasedSli_WindowCriterion `protobuf_oneof:"window_criterion"`
  1077  	// Duration over which window quality is evaluated. Must be an integer
  1078  	// fraction of a day and at least `60s`.
  1079  	WindowPeriod *durationpb.Duration `protobuf:"bytes,4,opt,name=window_period,json=windowPeriod,proto3" json:"window_period,omitempty"`
  1080  }
  1081  
  1082  func (x *WindowsBasedSli) Reset() {
  1083  	*x = WindowsBasedSli{}
  1084  	if protoimpl.UnsafeEnabled {
  1085  		mi := &file_google_monitoring_v3_service_proto_msgTypes[8]
  1086  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1087  		ms.StoreMessageInfo(mi)
  1088  	}
  1089  }
  1090  
  1091  func (x *WindowsBasedSli) String() string {
  1092  	return protoimpl.X.MessageStringOf(x)
  1093  }
  1094  
  1095  func (*WindowsBasedSli) ProtoMessage() {}
  1096  
  1097  func (x *WindowsBasedSli) ProtoReflect() protoreflect.Message {
  1098  	mi := &file_google_monitoring_v3_service_proto_msgTypes[8]
  1099  	if protoimpl.UnsafeEnabled && x != nil {
  1100  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1101  		if ms.LoadMessageInfo() == nil {
  1102  			ms.StoreMessageInfo(mi)
  1103  		}
  1104  		return ms
  1105  	}
  1106  	return mi.MessageOf(x)
  1107  }
  1108  
  1109  // Deprecated: Use WindowsBasedSli.ProtoReflect.Descriptor instead.
  1110  func (*WindowsBasedSli) Descriptor() ([]byte, []int) {
  1111  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8}
  1112  }
  1113  
  1114  func (m *WindowsBasedSli) GetWindowCriterion() isWindowsBasedSli_WindowCriterion {
  1115  	if m != nil {
  1116  		return m.WindowCriterion
  1117  	}
  1118  	return nil
  1119  }
  1120  
  1121  func (x *WindowsBasedSli) GetGoodBadMetricFilter() string {
  1122  	if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_GoodBadMetricFilter); ok {
  1123  		return x.GoodBadMetricFilter
  1124  	}
  1125  	return ""
  1126  }
  1127  
  1128  func (x *WindowsBasedSli) GetGoodTotalRatioThreshold() *WindowsBasedSli_PerformanceThreshold {
  1129  	if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_GoodTotalRatioThreshold); ok {
  1130  		return x.GoodTotalRatioThreshold
  1131  	}
  1132  	return nil
  1133  }
  1134  
  1135  func (x *WindowsBasedSli) GetMetricMeanInRange() *WindowsBasedSli_MetricRange {
  1136  	if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_MetricMeanInRange); ok {
  1137  		return x.MetricMeanInRange
  1138  	}
  1139  	return nil
  1140  }
  1141  
  1142  func (x *WindowsBasedSli) GetMetricSumInRange() *WindowsBasedSli_MetricRange {
  1143  	if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_MetricSumInRange); ok {
  1144  		return x.MetricSumInRange
  1145  	}
  1146  	return nil
  1147  }
  1148  
  1149  func (x *WindowsBasedSli) GetWindowPeriod() *durationpb.Duration {
  1150  	if x != nil {
  1151  		return x.WindowPeriod
  1152  	}
  1153  	return nil
  1154  }
  1155  
  1156  type isWindowsBasedSli_WindowCriterion interface {
  1157  	isWindowsBasedSli_WindowCriterion()
  1158  }
  1159  
  1160  type WindowsBasedSli_GoodBadMetricFilter struct {
  1161  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
  1162  	// specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if
  1163  	// any `true` values appear in the window.
  1164  	GoodBadMetricFilter string `protobuf:"bytes,5,opt,name=good_bad_metric_filter,json=goodBadMetricFilter,proto3,oneof"`
  1165  }
  1166  
  1167  type WindowsBasedSli_GoodTotalRatioThreshold struct {
  1168  	// A window is good if its `performance` is high enough.
  1169  	GoodTotalRatioThreshold *WindowsBasedSli_PerformanceThreshold `protobuf:"bytes,2,opt,name=good_total_ratio_threshold,json=goodTotalRatioThreshold,proto3,oneof"`
  1170  }
  1171  
  1172  type WindowsBasedSli_MetricMeanInRange struct {
  1173  	// A window is good if the metric's value is in a good range, averaged
  1174  	// across returned streams.
  1175  	MetricMeanInRange *WindowsBasedSli_MetricRange `protobuf:"bytes,6,opt,name=metric_mean_in_range,json=metricMeanInRange,proto3,oneof"`
  1176  }
  1177  
  1178  type WindowsBasedSli_MetricSumInRange struct {
  1179  	// A window is good if the metric's value is in a good range, summed across
  1180  	// returned streams.
  1181  	MetricSumInRange *WindowsBasedSli_MetricRange `protobuf:"bytes,7,opt,name=metric_sum_in_range,json=metricSumInRange,proto3,oneof"`
  1182  }
  1183  
  1184  func (*WindowsBasedSli_GoodBadMetricFilter) isWindowsBasedSli_WindowCriterion() {}
  1185  
  1186  func (*WindowsBasedSli_GoodTotalRatioThreshold) isWindowsBasedSli_WindowCriterion() {}
  1187  
  1188  func (*WindowsBasedSli_MetricMeanInRange) isWindowsBasedSli_WindowCriterion() {}
  1189  
  1190  func (*WindowsBasedSli_MetricSumInRange) isWindowsBasedSli_WindowCriterion() {}
  1191  
  1192  // Use a custom service to designate a service that you want to monitor
  1193  // when none of the other service types (like App Engine, Cloud Run, or
  1194  // a GKE type) matches your intended service.
  1195  type Service_Custom struct {
  1196  	state         protoimpl.MessageState
  1197  	sizeCache     protoimpl.SizeCache
  1198  	unknownFields protoimpl.UnknownFields
  1199  }
  1200  
  1201  func (x *Service_Custom) Reset() {
  1202  	*x = Service_Custom{}
  1203  	if protoimpl.UnsafeEnabled {
  1204  		mi := &file_google_monitoring_v3_service_proto_msgTypes[9]
  1205  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1206  		ms.StoreMessageInfo(mi)
  1207  	}
  1208  }
  1209  
  1210  func (x *Service_Custom) String() string {
  1211  	return protoimpl.X.MessageStringOf(x)
  1212  }
  1213  
  1214  func (*Service_Custom) ProtoMessage() {}
  1215  
  1216  func (x *Service_Custom) ProtoReflect() protoreflect.Message {
  1217  	mi := &file_google_monitoring_v3_service_proto_msgTypes[9]
  1218  	if protoimpl.UnsafeEnabled && x != nil {
  1219  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1220  		if ms.LoadMessageInfo() == nil {
  1221  			ms.StoreMessageInfo(mi)
  1222  		}
  1223  		return ms
  1224  	}
  1225  	return mi.MessageOf(x)
  1226  }
  1227  
  1228  // Deprecated: Use Service_Custom.ProtoReflect.Descriptor instead.
  1229  func (*Service_Custom) Descriptor() ([]byte, []int) {
  1230  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 0}
  1231  }
  1232  
  1233  // App Engine service. Learn more at https://cloud.google.com/appengine.
  1234  type Service_AppEngine struct {
  1235  	state         protoimpl.MessageState
  1236  	sizeCache     protoimpl.SizeCache
  1237  	unknownFields protoimpl.UnknownFields
  1238  
  1239  	// The ID of the App Engine module underlying this service. Corresponds to
  1240  	// the `module_id` resource label in the [`gae_app` monitored
  1241  	// resource](https://cloud.google.com/monitoring/api/resources#tag_gae_app).
  1242  	ModuleId string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"`
  1243  }
  1244  
  1245  func (x *Service_AppEngine) Reset() {
  1246  	*x = Service_AppEngine{}
  1247  	if protoimpl.UnsafeEnabled {
  1248  		mi := &file_google_monitoring_v3_service_proto_msgTypes[10]
  1249  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1250  		ms.StoreMessageInfo(mi)
  1251  	}
  1252  }
  1253  
  1254  func (x *Service_AppEngine) String() string {
  1255  	return protoimpl.X.MessageStringOf(x)
  1256  }
  1257  
  1258  func (*Service_AppEngine) ProtoMessage() {}
  1259  
  1260  func (x *Service_AppEngine) ProtoReflect() protoreflect.Message {
  1261  	mi := &file_google_monitoring_v3_service_proto_msgTypes[10]
  1262  	if protoimpl.UnsafeEnabled && x != nil {
  1263  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1264  		if ms.LoadMessageInfo() == nil {
  1265  			ms.StoreMessageInfo(mi)
  1266  		}
  1267  		return ms
  1268  	}
  1269  	return mi.MessageOf(x)
  1270  }
  1271  
  1272  // Deprecated: Use Service_AppEngine.ProtoReflect.Descriptor instead.
  1273  func (*Service_AppEngine) Descriptor() ([]byte, []int) {
  1274  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 1}
  1275  }
  1276  
  1277  func (x *Service_AppEngine) GetModuleId() string {
  1278  	if x != nil {
  1279  		return x.ModuleId
  1280  	}
  1281  	return ""
  1282  }
  1283  
  1284  // Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
  1285  type Service_CloudEndpoints struct {
  1286  	state         protoimpl.MessageState
  1287  	sizeCache     protoimpl.SizeCache
  1288  	unknownFields protoimpl.UnknownFields
  1289  
  1290  	// The name of the Cloud Endpoints service underlying this service.
  1291  	// Corresponds to the `service` resource label in the [`api` monitored
  1292  	// resource](https://cloud.google.com/monitoring/api/resources#tag_api).
  1293  	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
  1294  }
  1295  
  1296  func (x *Service_CloudEndpoints) Reset() {
  1297  	*x = Service_CloudEndpoints{}
  1298  	if protoimpl.UnsafeEnabled {
  1299  		mi := &file_google_monitoring_v3_service_proto_msgTypes[11]
  1300  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1301  		ms.StoreMessageInfo(mi)
  1302  	}
  1303  }
  1304  
  1305  func (x *Service_CloudEndpoints) String() string {
  1306  	return protoimpl.X.MessageStringOf(x)
  1307  }
  1308  
  1309  func (*Service_CloudEndpoints) ProtoMessage() {}
  1310  
  1311  func (x *Service_CloudEndpoints) ProtoReflect() protoreflect.Message {
  1312  	mi := &file_google_monitoring_v3_service_proto_msgTypes[11]
  1313  	if protoimpl.UnsafeEnabled && x != nil {
  1314  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1315  		if ms.LoadMessageInfo() == nil {
  1316  			ms.StoreMessageInfo(mi)
  1317  		}
  1318  		return ms
  1319  	}
  1320  	return mi.MessageOf(x)
  1321  }
  1322  
  1323  // Deprecated: Use Service_CloudEndpoints.ProtoReflect.Descriptor instead.
  1324  func (*Service_CloudEndpoints) Descriptor() ([]byte, []int) {
  1325  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 2}
  1326  }
  1327  
  1328  func (x *Service_CloudEndpoints) GetService() string {
  1329  	if x != nil {
  1330  		return x.Service
  1331  	}
  1332  	return ""
  1333  }
  1334  
  1335  // Istio service scoped to a single Kubernetes cluster. Learn more at
  1336  // https://istio.io. Clusters running OSS Istio will have their services
  1337  // ingested as this type.
  1338  type Service_ClusterIstio struct {
  1339  	state         protoimpl.MessageState
  1340  	sizeCache     protoimpl.SizeCache
  1341  	unknownFields protoimpl.UnknownFields
  1342  
  1343  	// The location of the Kubernetes cluster in which this Istio service is
  1344  	// defined. Corresponds to the `location` resource label in `k8s_cluster`
  1345  	// resources.
  1346  	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
  1347  	// The name of the Kubernetes cluster in which this Istio service is
  1348  	// defined. Corresponds to the `cluster_name` resource label in
  1349  	// `k8s_cluster` resources.
  1350  	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
  1351  	// The namespace of the Istio service underlying this service. Corresponds
  1352  	// to the `destination_service_namespace` metric label in Istio metrics.
  1353  	ServiceNamespace string `protobuf:"bytes,3,opt,name=service_namespace,json=serviceNamespace,proto3" json:"service_namespace,omitempty"`
  1354  	// The name of the Istio service underlying this service. Corresponds to the
  1355  	// `destination_service_name` metric label in Istio metrics.
  1356  	ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1357  }
  1358  
  1359  func (x *Service_ClusterIstio) Reset() {
  1360  	*x = Service_ClusterIstio{}
  1361  	if protoimpl.UnsafeEnabled {
  1362  		mi := &file_google_monitoring_v3_service_proto_msgTypes[12]
  1363  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1364  		ms.StoreMessageInfo(mi)
  1365  	}
  1366  }
  1367  
  1368  func (x *Service_ClusterIstio) String() string {
  1369  	return protoimpl.X.MessageStringOf(x)
  1370  }
  1371  
  1372  func (*Service_ClusterIstio) ProtoMessage() {}
  1373  
  1374  func (x *Service_ClusterIstio) ProtoReflect() protoreflect.Message {
  1375  	mi := &file_google_monitoring_v3_service_proto_msgTypes[12]
  1376  	if protoimpl.UnsafeEnabled && x != nil {
  1377  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1378  		if ms.LoadMessageInfo() == nil {
  1379  			ms.StoreMessageInfo(mi)
  1380  		}
  1381  		return ms
  1382  	}
  1383  	return mi.MessageOf(x)
  1384  }
  1385  
  1386  // Deprecated: Use Service_ClusterIstio.ProtoReflect.Descriptor instead.
  1387  func (*Service_ClusterIstio) Descriptor() ([]byte, []int) {
  1388  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 3}
  1389  }
  1390  
  1391  func (x *Service_ClusterIstio) GetLocation() string {
  1392  	if x != nil {
  1393  		return x.Location
  1394  	}
  1395  	return ""
  1396  }
  1397  
  1398  func (x *Service_ClusterIstio) GetClusterName() string {
  1399  	if x != nil {
  1400  		return x.ClusterName
  1401  	}
  1402  	return ""
  1403  }
  1404  
  1405  func (x *Service_ClusterIstio) GetServiceNamespace() string {
  1406  	if x != nil {
  1407  		return x.ServiceNamespace
  1408  	}
  1409  	return ""
  1410  }
  1411  
  1412  func (x *Service_ClusterIstio) GetServiceName() string {
  1413  	if x != nil {
  1414  		return x.ServiceName
  1415  	}
  1416  	return ""
  1417  }
  1418  
  1419  // Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8
  1420  // will have their services ingested as this type.
  1421  type Service_MeshIstio struct {
  1422  	state         protoimpl.MessageState
  1423  	sizeCache     protoimpl.SizeCache
  1424  	unknownFields protoimpl.UnknownFields
  1425  
  1426  	// Identifier for the mesh in which this Istio service is defined.
  1427  	// Corresponds to the `mesh_uid` metric label in Istio metrics.
  1428  	MeshUid string `protobuf:"bytes,1,opt,name=mesh_uid,json=meshUid,proto3" json:"mesh_uid,omitempty"`
  1429  	// The namespace of the Istio service underlying this service. Corresponds
  1430  	// to the `destination_service_namespace` metric label in Istio metrics.
  1431  	ServiceNamespace string `protobuf:"bytes,3,opt,name=service_namespace,json=serviceNamespace,proto3" json:"service_namespace,omitempty"`
  1432  	// The name of the Istio service underlying this service. Corresponds to the
  1433  	// `destination_service_name` metric label in Istio metrics.
  1434  	ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1435  }
  1436  
  1437  func (x *Service_MeshIstio) Reset() {
  1438  	*x = Service_MeshIstio{}
  1439  	if protoimpl.UnsafeEnabled {
  1440  		mi := &file_google_monitoring_v3_service_proto_msgTypes[13]
  1441  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1442  		ms.StoreMessageInfo(mi)
  1443  	}
  1444  }
  1445  
  1446  func (x *Service_MeshIstio) String() string {
  1447  	return protoimpl.X.MessageStringOf(x)
  1448  }
  1449  
  1450  func (*Service_MeshIstio) ProtoMessage() {}
  1451  
  1452  func (x *Service_MeshIstio) ProtoReflect() protoreflect.Message {
  1453  	mi := &file_google_monitoring_v3_service_proto_msgTypes[13]
  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 Service_MeshIstio.ProtoReflect.Descriptor instead.
  1465  func (*Service_MeshIstio) Descriptor() ([]byte, []int) {
  1466  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 4}
  1467  }
  1468  
  1469  func (x *Service_MeshIstio) GetMeshUid() string {
  1470  	if x != nil {
  1471  		return x.MeshUid
  1472  	}
  1473  	return ""
  1474  }
  1475  
  1476  func (x *Service_MeshIstio) GetServiceNamespace() string {
  1477  	if x != nil {
  1478  		return x.ServiceNamespace
  1479  	}
  1480  	return ""
  1481  }
  1482  
  1483  func (x *Service_MeshIstio) GetServiceName() string {
  1484  	if x != nil {
  1485  		return x.ServiceName
  1486  	}
  1487  	return ""
  1488  }
  1489  
  1490  // Canonical service scoped to an Istio mesh. Anthos clusters running ASM >=
  1491  // 1.6.8 will have their services ingested as this type.
  1492  type Service_IstioCanonicalService struct {
  1493  	state         protoimpl.MessageState
  1494  	sizeCache     protoimpl.SizeCache
  1495  	unknownFields protoimpl.UnknownFields
  1496  
  1497  	// Identifier for the Istio mesh in which this canonical service is defined.
  1498  	// Corresponds to the `mesh_uid` metric label in
  1499  	// [Istio metrics](https://cloud.google.com/monitoring/api/metrics_istio).
  1500  	MeshUid string `protobuf:"bytes,1,opt,name=mesh_uid,json=meshUid,proto3" json:"mesh_uid,omitempty"`
  1501  	// The namespace of the canonical service underlying this service.
  1502  	// Corresponds to the `destination_canonical_service_namespace` metric
  1503  	// label in [Istio
  1504  	// metrics](https://cloud.google.com/monitoring/api/metrics_istio).
  1505  	CanonicalServiceNamespace string `protobuf:"bytes,3,opt,name=canonical_service_namespace,json=canonicalServiceNamespace,proto3" json:"canonical_service_namespace,omitempty"`
  1506  	// The name of the canonical service underlying this service.
  1507  	// Corresponds to the `destination_canonical_service_name` metric label in
  1508  	// label in [Istio
  1509  	// metrics](https://cloud.google.com/monitoring/api/metrics_istio).
  1510  	CanonicalService string `protobuf:"bytes,4,opt,name=canonical_service,json=canonicalService,proto3" json:"canonical_service,omitempty"`
  1511  }
  1512  
  1513  func (x *Service_IstioCanonicalService) Reset() {
  1514  	*x = Service_IstioCanonicalService{}
  1515  	if protoimpl.UnsafeEnabled {
  1516  		mi := &file_google_monitoring_v3_service_proto_msgTypes[14]
  1517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1518  		ms.StoreMessageInfo(mi)
  1519  	}
  1520  }
  1521  
  1522  func (x *Service_IstioCanonicalService) String() string {
  1523  	return protoimpl.X.MessageStringOf(x)
  1524  }
  1525  
  1526  func (*Service_IstioCanonicalService) ProtoMessage() {}
  1527  
  1528  func (x *Service_IstioCanonicalService) ProtoReflect() protoreflect.Message {
  1529  	mi := &file_google_monitoring_v3_service_proto_msgTypes[14]
  1530  	if protoimpl.UnsafeEnabled && x != nil {
  1531  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1532  		if ms.LoadMessageInfo() == nil {
  1533  			ms.StoreMessageInfo(mi)
  1534  		}
  1535  		return ms
  1536  	}
  1537  	return mi.MessageOf(x)
  1538  }
  1539  
  1540  // Deprecated: Use Service_IstioCanonicalService.ProtoReflect.Descriptor instead.
  1541  func (*Service_IstioCanonicalService) Descriptor() ([]byte, []int) {
  1542  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 5}
  1543  }
  1544  
  1545  func (x *Service_IstioCanonicalService) GetMeshUid() string {
  1546  	if x != nil {
  1547  		return x.MeshUid
  1548  	}
  1549  	return ""
  1550  }
  1551  
  1552  func (x *Service_IstioCanonicalService) GetCanonicalServiceNamespace() string {
  1553  	if x != nil {
  1554  		return x.CanonicalServiceNamespace
  1555  	}
  1556  	return ""
  1557  }
  1558  
  1559  func (x *Service_IstioCanonicalService) GetCanonicalService() string {
  1560  	if x != nil {
  1561  		return x.CanonicalService
  1562  	}
  1563  	return ""
  1564  }
  1565  
  1566  // Cloud Run service. Learn more at https://cloud.google.com/run.
  1567  type Service_CloudRun struct {
  1568  	state         protoimpl.MessageState
  1569  	sizeCache     protoimpl.SizeCache
  1570  	unknownFields protoimpl.UnknownFields
  1571  
  1572  	// The name of the Cloud Run service. Corresponds to the `service_name`
  1573  	// resource label in the [`cloud_run_revision` monitored
  1574  	// resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).
  1575  	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1576  	// The location the service is run. Corresponds to the `location`
  1577  	// resource label in the [`cloud_run_revision` monitored
  1578  	// resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).
  1579  	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
  1580  }
  1581  
  1582  func (x *Service_CloudRun) Reset() {
  1583  	*x = Service_CloudRun{}
  1584  	if protoimpl.UnsafeEnabled {
  1585  		mi := &file_google_monitoring_v3_service_proto_msgTypes[15]
  1586  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1587  		ms.StoreMessageInfo(mi)
  1588  	}
  1589  }
  1590  
  1591  func (x *Service_CloudRun) String() string {
  1592  	return protoimpl.X.MessageStringOf(x)
  1593  }
  1594  
  1595  func (*Service_CloudRun) ProtoMessage() {}
  1596  
  1597  func (x *Service_CloudRun) ProtoReflect() protoreflect.Message {
  1598  	mi := &file_google_monitoring_v3_service_proto_msgTypes[15]
  1599  	if protoimpl.UnsafeEnabled && x != nil {
  1600  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1601  		if ms.LoadMessageInfo() == nil {
  1602  			ms.StoreMessageInfo(mi)
  1603  		}
  1604  		return ms
  1605  	}
  1606  	return mi.MessageOf(x)
  1607  }
  1608  
  1609  // Deprecated: Use Service_CloudRun.ProtoReflect.Descriptor instead.
  1610  func (*Service_CloudRun) Descriptor() ([]byte, []int) {
  1611  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 6}
  1612  }
  1613  
  1614  func (x *Service_CloudRun) GetServiceName() string {
  1615  	if x != nil {
  1616  		return x.ServiceName
  1617  	}
  1618  	return ""
  1619  }
  1620  
  1621  func (x *Service_CloudRun) GetLocation() string {
  1622  	if x != nil {
  1623  		return x.Location
  1624  	}
  1625  	return ""
  1626  }
  1627  
  1628  // GKE Namespace. The field names correspond to the resource metadata labels
  1629  // on monitored resources that fall under a namespace (for example,
  1630  // `k8s_container` or `k8s_pod`).
  1631  type Service_GkeNamespace struct {
  1632  	state         protoimpl.MessageState
  1633  	sizeCache     protoimpl.SizeCache
  1634  	unknownFields protoimpl.UnknownFields
  1635  
  1636  	// Output only. The project this resource lives in. For legacy services
  1637  	// migrated from the `Custom` type, this may be a distinct project from the
  1638  	// one parenting the service itself.
  1639  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  1640  	// The location of the parent cluster. This may be a zone or region.
  1641  	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
  1642  	// The name of the parent cluster.
  1643  	ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
  1644  	// The name of this namespace.
  1645  	NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"`
  1646  }
  1647  
  1648  func (x *Service_GkeNamespace) Reset() {
  1649  	*x = Service_GkeNamespace{}
  1650  	if protoimpl.UnsafeEnabled {
  1651  		mi := &file_google_monitoring_v3_service_proto_msgTypes[16]
  1652  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1653  		ms.StoreMessageInfo(mi)
  1654  	}
  1655  }
  1656  
  1657  func (x *Service_GkeNamespace) String() string {
  1658  	return protoimpl.X.MessageStringOf(x)
  1659  }
  1660  
  1661  func (*Service_GkeNamespace) ProtoMessage() {}
  1662  
  1663  func (x *Service_GkeNamespace) ProtoReflect() protoreflect.Message {
  1664  	mi := &file_google_monitoring_v3_service_proto_msgTypes[16]
  1665  	if protoimpl.UnsafeEnabled && x != nil {
  1666  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1667  		if ms.LoadMessageInfo() == nil {
  1668  			ms.StoreMessageInfo(mi)
  1669  		}
  1670  		return ms
  1671  	}
  1672  	return mi.MessageOf(x)
  1673  }
  1674  
  1675  // Deprecated: Use Service_GkeNamespace.ProtoReflect.Descriptor instead.
  1676  func (*Service_GkeNamespace) Descriptor() ([]byte, []int) {
  1677  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 7}
  1678  }
  1679  
  1680  func (x *Service_GkeNamespace) GetProjectId() string {
  1681  	if x != nil {
  1682  		return x.ProjectId
  1683  	}
  1684  	return ""
  1685  }
  1686  
  1687  func (x *Service_GkeNamespace) GetLocation() string {
  1688  	if x != nil {
  1689  		return x.Location
  1690  	}
  1691  	return ""
  1692  }
  1693  
  1694  func (x *Service_GkeNamespace) GetClusterName() string {
  1695  	if x != nil {
  1696  		return x.ClusterName
  1697  	}
  1698  	return ""
  1699  }
  1700  
  1701  func (x *Service_GkeNamespace) GetNamespaceName() string {
  1702  	if x != nil {
  1703  		return x.NamespaceName
  1704  	}
  1705  	return ""
  1706  }
  1707  
  1708  // A GKE Workload (Deployment, StatefulSet, etc). The field names correspond
  1709  // to the metadata labels on monitored resources that fall under a workload
  1710  // (for example, `k8s_container` or `k8s_pod`).
  1711  type Service_GkeWorkload struct {
  1712  	state         protoimpl.MessageState
  1713  	sizeCache     protoimpl.SizeCache
  1714  	unknownFields protoimpl.UnknownFields
  1715  
  1716  	// Output only. The project this resource lives in. For legacy services
  1717  	// migrated from the `Custom` type, this may be a distinct project from the
  1718  	// one parenting the service itself.
  1719  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  1720  	// The location of the parent cluster. This may be a zone or region.
  1721  	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
  1722  	// The name of the parent cluster.
  1723  	ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
  1724  	// The name of the parent namespace.
  1725  	NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"`
  1726  	// The type of this workload (for example, "Deployment" or "DaemonSet")
  1727  	TopLevelControllerType string `protobuf:"bytes,5,opt,name=top_level_controller_type,json=topLevelControllerType,proto3" json:"top_level_controller_type,omitempty"`
  1728  	// The name of this workload.
  1729  	TopLevelControllerName string `protobuf:"bytes,6,opt,name=top_level_controller_name,json=topLevelControllerName,proto3" json:"top_level_controller_name,omitempty"`
  1730  }
  1731  
  1732  func (x *Service_GkeWorkload) Reset() {
  1733  	*x = Service_GkeWorkload{}
  1734  	if protoimpl.UnsafeEnabled {
  1735  		mi := &file_google_monitoring_v3_service_proto_msgTypes[17]
  1736  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1737  		ms.StoreMessageInfo(mi)
  1738  	}
  1739  }
  1740  
  1741  func (x *Service_GkeWorkload) String() string {
  1742  	return protoimpl.X.MessageStringOf(x)
  1743  }
  1744  
  1745  func (*Service_GkeWorkload) ProtoMessage() {}
  1746  
  1747  func (x *Service_GkeWorkload) ProtoReflect() protoreflect.Message {
  1748  	mi := &file_google_monitoring_v3_service_proto_msgTypes[17]
  1749  	if protoimpl.UnsafeEnabled && x != nil {
  1750  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1751  		if ms.LoadMessageInfo() == nil {
  1752  			ms.StoreMessageInfo(mi)
  1753  		}
  1754  		return ms
  1755  	}
  1756  	return mi.MessageOf(x)
  1757  }
  1758  
  1759  // Deprecated: Use Service_GkeWorkload.ProtoReflect.Descriptor instead.
  1760  func (*Service_GkeWorkload) Descriptor() ([]byte, []int) {
  1761  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 8}
  1762  }
  1763  
  1764  func (x *Service_GkeWorkload) GetProjectId() string {
  1765  	if x != nil {
  1766  		return x.ProjectId
  1767  	}
  1768  	return ""
  1769  }
  1770  
  1771  func (x *Service_GkeWorkload) GetLocation() string {
  1772  	if x != nil {
  1773  		return x.Location
  1774  	}
  1775  	return ""
  1776  }
  1777  
  1778  func (x *Service_GkeWorkload) GetClusterName() string {
  1779  	if x != nil {
  1780  		return x.ClusterName
  1781  	}
  1782  	return ""
  1783  }
  1784  
  1785  func (x *Service_GkeWorkload) GetNamespaceName() string {
  1786  	if x != nil {
  1787  		return x.NamespaceName
  1788  	}
  1789  	return ""
  1790  }
  1791  
  1792  func (x *Service_GkeWorkload) GetTopLevelControllerType() string {
  1793  	if x != nil {
  1794  		return x.TopLevelControllerType
  1795  	}
  1796  	return ""
  1797  }
  1798  
  1799  func (x *Service_GkeWorkload) GetTopLevelControllerName() string {
  1800  	if x != nil {
  1801  		return x.TopLevelControllerName
  1802  	}
  1803  	return ""
  1804  }
  1805  
  1806  // GKE Service. The "service" here represents a
  1807  // [Kubernetes service
  1808  // object](https://kubernetes.io/docs/concepts/services-networking/service).
  1809  // The field names correspond to the resource labels on [`k8s_service`
  1810  // monitored
  1811  // resources](https://cloud.google.com/monitoring/api/resources#tag_k8s_service).
  1812  type Service_GkeService struct {
  1813  	state         protoimpl.MessageState
  1814  	sizeCache     protoimpl.SizeCache
  1815  	unknownFields protoimpl.UnknownFields
  1816  
  1817  	// Output only. The project this resource lives in. For legacy services
  1818  	// migrated from the `Custom` type, this may be a distinct project from the
  1819  	// one parenting the service itself.
  1820  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  1821  	// The location of the parent cluster. This may be a zone or region.
  1822  	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
  1823  	// The name of the parent cluster.
  1824  	ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
  1825  	// The name of the parent namespace.
  1826  	NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"`
  1827  	// The name of this service.
  1828  	ServiceName string `protobuf:"bytes,5,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
  1829  }
  1830  
  1831  func (x *Service_GkeService) Reset() {
  1832  	*x = Service_GkeService{}
  1833  	if protoimpl.UnsafeEnabled {
  1834  		mi := &file_google_monitoring_v3_service_proto_msgTypes[18]
  1835  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1836  		ms.StoreMessageInfo(mi)
  1837  	}
  1838  }
  1839  
  1840  func (x *Service_GkeService) String() string {
  1841  	return protoimpl.X.MessageStringOf(x)
  1842  }
  1843  
  1844  func (*Service_GkeService) ProtoMessage() {}
  1845  
  1846  func (x *Service_GkeService) ProtoReflect() protoreflect.Message {
  1847  	mi := &file_google_monitoring_v3_service_proto_msgTypes[18]
  1848  	if protoimpl.UnsafeEnabled && x != nil {
  1849  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1850  		if ms.LoadMessageInfo() == nil {
  1851  			ms.StoreMessageInfo(mi)
  1852  		}
  1853  		return ms
  1854  	}
  1855  	return mi.MessageOf(x)
  1856  }
  1857  
  1858  // Deprecated: Use Service_GkeService.ProtoReflect.Descriptor instead.
  1859  func (*Service_GkeService) Descriptor() ([]byte, []int) {
  1860  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 9}
  1861  }
  1862  
  1863  func (x *Service_GkeService) GetProjectId() string {
  1864  	if x != nil {
  1865  		return x.ProjectId
  1866  	}
  1867  	return ""
  1868  }
  1869  
  1870  func (x *Service_GkeService) GetLocation() string {
  1871  	if x != nil {
  1872  		return x.Location
  1873  	}
  1874  	return ""
  1875  }
  1876  
  1877  func (x *Service_GkeService) GetClusterName() string {
  1878  	if x != nil {
  1879  		return x.ClusterName
  1880  	}
  1881  	return ""
  1882  }
  1883  
  1884  func (x *Service_GkeService) GetNamespaceName() string {
  1885  	if x != nil {
  1886  		return x.NamespaceName
  1887  	}
  1888  	return ""
  1889  }
  1890  
  1891  func (x *Service_GkeService) GetServiceName() string {
  1892  	if x != nil {
  1893  		return x.ServiceName
  1894  	}
  1895  	return ""
  1896  }
  1897  
  1898  // A well-known service type, defined by its service type and service labels.
  1899  // Documentation and examples
  1900  // [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
  1901  type Service_BasicService struct {
  1902  	state         protoimpl.MessageState
  1903  	sizeCache     protoimpl.SizeCache
  1904  	unknownFields protoimpl.UnknownFields
  1905  
  1906  	// The type of service that this basic service defines, e.g.
  1907  	// APP_ENGINE service type.
  1908  	// Documentation and valid values
  1909  	// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
  1910  	ServiceType string `protobuf:"bytes,1,opt,name=service_type,json=serviceType,proto3" json:"service_type,omitempty"`
  1911  	// Labels that specify the resource that emits the monitoring data which
  1912  	// is used for SLO reporting of this `Service`.
  1913  	// Documentation and valid values for given service types
  1914  	// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
  1915  	ServiceLabels map[string]string `protobuf:"bytes,2,rep,name=service_labels,json=serviceLabels,proto3" json:"service_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1916  }
  1917  
  1918  func (x *Service_BasicService) Reset() {
  1919  	*x = Service_BasicService{}
  1920  	if protoimpl.UnsafeEnabled {
  1921  		mi := &file_google_monitoring_v3_service_proto_msgTypes[19]
  1922  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1923  		ms.StoreMessageInfo(mi)
  1924  	}
  1925  }
  1926  
  1927  func (x *Service_BasicService) String() string {
  1928  	return protoimpl.X.MessageStringOf(x)
  1929  }
  1930  
  1931  func (*Service_BasicService) ProtoMessage() {}
  1932  
  1933  func (x *Service_BasicService) ProtoReflect() protoreflect.Message {
  1934  	mi := &file_google_monitoring_v3_service_proto_msgTypes[19]
  1935  	if protoimpl.UnsafeEnabled && x != nil {
  1936  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1937  		if ms.LoadMessageInfo() == nil {
  1938  			ms.StoreMessageInfo(mi)
  1939  		}
  1940  		return ms
  1941  	}
  1942  	return mi.MessageOf(x)
  1943  }
  1944  
  1945  // Deprecated: Use Service_BasicService.ProtoReflect.Descriptor instead.
  1946  func (*Service_BasicService) Descriptor() ([]byte, []int) {
  1947  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 10}
  1948  }
  1949  
  1950  func (x *Service_BasicService) GetServiceType() string {
  1951  	if x != nil {
  1952  		return x.ServiceType
  1953  	}
  1954  	return ""
  1955  }
  1956  
  1957  func (x *Service_BasicService) GetServiceLabels() map[string]string {
  1958  	if x != nil {
  1959  		return x.ServiceLabels
  1960  	}
  1961  	return nil
  1962  }
  1963  
  1964  // Configuration for how to query telemetry on a Service.
  1965  type Service_Telemetry struct {
  1966  	state         protoimpl.MessageState
  1967  	sizeCache     protoimpl.SizeCache
  1968  	unknownFields protoimpl.UnknownFields
  1969  
  1970  	// The full name of the resource that defines this service. Formatted as
  1971  	// described in https://cloud.google.com/apis/design/resource_names.
  1972  	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
  1973  }
  1974  
  1975  func (x *Service_Telemetry) Reset() {
  1976  	*x = Service_Telemetry{}
  1977  	if protoimpl.UnsafeEnabled {
  1978  		mi := &file_google_monitoring_v3_service_proto_msgTypes[20]
  1979  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1980  		ms.StoreMessageInfo(mi)
  1981  	}
  1982  }
  1983  
  1984  func (x *Service_Telemetry) String() string {
  1985  	return protoimpl.X.MessageStringOf(x)
  1986  }
  1987  
  1988  func (*Service_Telemetry) ProtoMessage() {}
  1989  
  1990  func (x *Service_Telemetry) ProtoReflect() protoreflect.Message {
  1991  	mi := &file_google_monitoring_v3_service_proto_msgTypes[20]
  1992  	if protoimpl.UnsafeEnabled && x != nil {
  1993  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1994  		if ms.LoadMessageInfo() == nil {
  1995  			ms.StoreMessageInfo(mi)
  1996  		}
  1997  		return ms
  1998  	}
  1999  	return mi.MessageOf(x)
  2000  }
  2001  
  2002  // Deprecated: Use Service_Telemetry.ProtoReflect.Descriptor instead.
  2003  func (*Service_Telemetry) Descriptor() ([]byte, []int) {
  2004  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 11}
  2005  }
  2006  
  2007  func (x *Service_Telemetry) GetResourceName() string {
  2008  	if x != nil {
  2009  		return x.ResourceName
  2010  	}
  2011  	return ""
  2012  }
  2013  
  2014  // Future parameters for the availability SLI.
  2015  type BasicSli_AvailabilityCriteria struct {
  2016  	state         protoimpl.MessageState
  2017  	sizeCache     protoimpl.SizeCache
  2018  	unknownFields protoimpl.UnknownFields
  2019  }
  2020  
  2021  func (x *BasicSli_AvailabilityCriteria) Reset() {
  2022  	*x = BasicSli_AvailabilityCriteria{}
  2023  	if protoimpl.UnsafeEnabled {
  2024  		mi := &file_google_monitoring_v3_service_proto_msgTypes[24]
  2025  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2026  		ms.StoreMessageInfo(mi)
  2027  	}
  2028  }
  2029  
  2030  func (x *BasicSli_AvailabilityCriteria) String() string {
  2031  	return protoimpl.X.MessageStringOf(x)
  2032  }
  2033  
  2034  func (*BasicSli_AvailabilityCriteria) ProtoMessage() {}
  2035  
  2036  func (x *BasicSli_AvailabilityCriteria) ProtoReflect() protoreflect.Message {
  2037  	mi := &file_google_monitoring_v3_service_proto_msgTypes[24]
  2038  	if protoimpl.UnsafeEnabled && x != nil {
  2039  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2040  		if ms.LoadMessageInfo() == nil {
  2041  			ms.StoreMessageInfo(mi)
  2042  		}
  2043  		return ms
  2044  	}
  2045  	return mi.MessageOf(x)
  2046  }
  2047  
  2048  // Deprecated: Use BasicSli_AvailabilityCriteria.ProtoReflect.Descriptor instead.
  2049  func (*BasicSli_AvailabilityCriteria) Descriptor() ([]byte, []int) {
  2050  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3, 0}
  2051  }
  2052  
  2053  // Parameters for a latency threshold SLI.
  2054  type BasicSli_LatencyCriteria struct {
  2055  	state         protoimpl.MessageState
  2056  	sizeCache     protoimpl.SizeCache
  2057  	unknownFields protoimpl.UnknownFields
  2058  
  2059  	// Good service is defined to be the count of requests made to this service
  2060  	// that return in no more than `threshold`.
  2061  	Threshold *durationpb.Duration `protobuf:"bytes,3,opt,name=threshold,proto3" json:"threshold,omitempty"`
  2062  }
  2063  
  2064  func (x *BasicSli_LatencyCriteria) Reset() {
  2065  	*x = BasicSli_LatencyCriteria{}
  2066  	if protoimpl.UnsafeEnabled {
  2067  		mi := &file_google_monitoring_v3_service_proto_msgTypes[25]
  2068  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2069  		ms.StoreMessageInfo(mi)
  2070  	}
  2071  }
  2072  
  2073  func (x *BasicSli_LatencyCriteria) String() string {
  2074  	return protoimpl.X.MessageStringOf(x)
  2075  }
  2076  
  2077  func (*BasicSli_LatencyCriteria) ProtoMessage() {}
  2078  
  2079  func (x *BasicSli_LatencyCriteria) ProtoReflect() protoreflect.Message {
  2080  	mi := &file_google_monitoring_v3_service_proto_msgTypes[25]
  2081  	if protoimpl.UnsafeEnabled && x != nil {
  2082  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2083  		if ms.LoadMessageInfo() == nil {
  2084  			ms.StoreMessageInfo(mi)
  2085  		}
  2086  		return ms
  2087  	}
  2088  	return mi.MessageOf(x)
  2089  }
  2090  
  2091  // Deprecated: Use BasicSli_LatencyCriteria.ProtoReflect.Descriptor instead.
  2092  func (*BasicSli_LatencyCriteria) Descriptor() ([]byte, []int) {
  2093  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3, 1}
  2094  }
  2095  
  2096  func (x *BasicSli_LatencyCriteria) GetThreshold() *durationpb.Duration {
  2097  	if x != nil {
  2098  		return x.Threshold
  2099  	}
  2100  	return nil
  2101  }
  2102  
  2103  // A `PerformanceThreshold` is used when each window is good when that window
  2104  // has a sufficiently high `performance`.
  2105  type WindowsBasedSli_PerformanceThreshold struct {
  2106  	state         protoimpl.MessageState
  2107  	sizeCache     protoimpl.SizeCache
  2108  	unknownFields protoimpl.UnknownFields
  2109  
  2110  	// The means, either a request-based SLI or a basic SLI, by which to compute
  2111  	// performance over a window.
  2112  	//
  2113  	// Types that are assignable to Type:
  2114  	//
  2115  	//	*WindowsBasedSli_PerformanceThreshold_Performance
  2116  	//	*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance
  2117  	Type isWindowsBasedSli_PerformanceThreshold_Type `protobuf_oneof:"type"`
  2118  	// If window `performance >= threshold`, the window is counted as good.
  2119  	Threshold float64 `protobuf:"fixed64,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
  2120  }
  2121  
  2122  func (x *WindowsBasedSli_PerformanceThreshold) Reset() {
  2123  	*x = WindowsBasedSli_PerformanceThreshold{}
  2124  	if protoimpl.UnsafeEnabled {
  2125  		mi := &file_google_monitoring_v3_service_proto_msgTypes[26]
  2126  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2127  		ms.StoreMessageInfo(mi)
  2128  	}
  2129  }
  2130  
  2131  func (x *WindowsBasedSli_PerformanceThreshold) String() string {
  2132  	return protoimpl.X.MessageStringOf(x)
  2133  }
  2134  
  2135  func (*WindowsBasedSli_PerformanceThreshold) ProtoMessage() {}
  2136  
  2137  func (x *WindowsBasedSli_PerformanceThreshold) ProtoReflect() protoreflect.Message {
  2138  	mi := &file_google_monitoring_v3_service_proto_msgTypes[26]
  2139  	if protoimpl.UnsafeEnabled && x != nil {
  2140  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2141  		if ms.LoadMessageInfo() == nil {
  2142  			ms.StoreMessageInfo(mi)
  2143  		}
  2144  		return ms
  2145  	}
  2146  	return mi.MessageOf(x)
  2147  }
  2148  
  2149  // Deprecated: Use WindowsBasedSli_PerformanceThreshold.ProtoReflect.Descriptor instead.
  2150  func (*WindowsBasedSli_PerformanceThreshold) Descriptor() ([]byte, []int) {
  2151  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8, 0}
  2152  }
  2153  
  2154  func (m *WindowsBasedSli_PerformanceThreshold) GetType() isWindowsBasedSli_PerformanceThreshold_Type {
  2155  	if m != nil {
  2156  		return m.Type
  2157  	}
  2158  	return nil
  2159  }
  2160  
  2161  func (x *WindowsBasedSli_PerformanceThreshold) GetPerformance() *RequestBasedSli {
  2162  	if x, ok := x.GetType().(*WindowsBasedSli_PerformanceThreshold_Performance); ok {
  2163  		return x.Performance
  2164  	}
  2165  	return nil
  2166  }
  2167  
  2168  func (x *WindowsBasedSli_PerformanceThreshold) GetBasicSliPerformance() *BasicSli {
  2169  	if x, ok := x.GetType().(*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance); ok {
  2170  		return x.BasicSliPerformance
  2171  	}
  2172  	return nil
  2173  }
  2174  
  2175  func (x *WindowsBasedSli_PerformanceThreshold) GetThreshold() float64 {
  2176  	if x != nil {
  2177  		return x.Threshold
  2178  	}
  2179  	return 0
  2180  }
  2181  
  2182  type isWindowsBasedSli_PerformanceThreshold_Type interface {
  2183  	isWindowsBasedSli_PerformanceThreshold_Type()
  2184  }
  2185  
  2186  type WindowsBasedSli_PerformanceThreshold_Performance struct {
  2187  	// `RequestBasedSli` to evaluate to judge window quality.
  2188  	Performance *RequestBasedSli `protobuf:"bytes,1,opt,name=performance,proto3,oneof"`
  2189  }
  2190  
  2191  type WindowsBasedSli_PerformanceThreshold_BasicSliPerformance struct {
  2192  	// `BasicSli` to evaluate to judge window quality.
  2193  	BasicSliPerformance *BasicSli `protobuf:"bytes,3,opt,name=basic_sli_performance,json=basicSliPerformance,proto3,oneof"`
  2194  }
  2195  
  2196  func (*WindowsBasedSli_PerformanceThreshold_Performance) isWindowsBasedSli_PerformanceThreshold_Type() {
  2197  }
  2198  
  2199  func (*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance) isWindowsBasedSli_PerformanceThreshold_Type() {
  2200  }
  2201  
  2202  // A `MetricRange` is used when each window is good when the value x of a
  2203  // single `TimeSeries` satisfies `range.min <= x <= range.max`. The provided
  2204  // `TimeSeries` must have `ValueType = INT64` or `ValueType = DOUBLE` and
  2205  // `MetricKind = GAUGE`.
  2206  type WindowsBasedSli_MetricRange struct {
  2207  	state         protoimpl.MessageState
  2208  	sizeCache     protoimpl.SizeCache
  2209  	unknownFields protoimpl.UnknownFields
  2210  
  2211  	// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
  2212  	// specifying the `TimeSeries` to use for evaluating window quality.
  2213  	TimeSeries string `protobuf:"bytes,1,opt,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
  2214  	// Range of values considered "good." For a one-sided range, set one bound
  2215  	// to an infinite value.
  2216  	Range *Range `protobuf:"bytes,4,opt,name=range,proto3" json:"range,omitempty"`
  2217  }
  2218  
  2219  func (x *WindowsBasedSli_MetricRange) Reset() {
  2220  	*x = WindowsBasedSli_MetricRange{}
  2221  	if protoimpl.UnsafeEnabled {
  2222  		mi := &file_google_monitoring_v3_service_proto_msgTypes[27]
  2223  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2224  		ms.StoreMessageInfo(mi)
  2225  	}
  2226  }
  2227  
  2228  func (x *WindowsBasedSli_MetricRange) String() string {
  2229  	return protoimpl.X.MessageStringOf(x)
  2230  }
  2231  
  2232  func (*WindowsBasedSli_MetricRange) ProtoMessage() {}
  2233  
  2234  func (x *WindowsBasedSli_MetricRange) ProtoReflect() protoreflect.Message {
  2235  	mi := &file_google_monitoring_v3_service_proto_msgTypes[27]
  2236  	if protoimpl.UnsafeEnabled && x != nil {
  2237  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2238  		if ms.LoadMessageInfo() == nil {
  2239  			ms.StoreMessageInfo(mi)
  2240  		}
  2241  		return ms
  2242  	}
  2243  	return mi.MessageOf(x)
  2244  }
  2245  
  2246  // Deprecated: Use WindowsBasedSli_MetricRange.ProtoReflect.Descriptor instead.
  2247  func (*WindowsBasedSli_MetricRange) Descriptor() ([]byte, []int) {
  2248  	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8, 1}
  2249  }
  2250  
  2251  func (x *WindowsBasedSli_MetricRange) GetTimeSeries() string {
  2252  	if x != nil {
  2253  		return x.TimeSeries
  2254  	}
  2255  	return ""
  2256  }
  2257  
  2258  func (x *WindowsBasedSli_MetricRange) GetRange() *Range {
  2259  	if x != nil {
  2260  		return x.Range
  2261  	}
  2262  	return nil
  2263  }
  2264  
  2265  var File_google_monitoring_v3_service_proto protoreflect.FileDescriptor
  2266  
  2267  var file_google_monitoring_v3_service_proto_rawDesc = []byte{
  2268  	0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
  2269  	0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
  2270  	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2271  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
  2272  	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
  2273  	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
  2274  	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
  2275  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  2276  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  2277  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74,
  2278  	0x79, 0x70, 0x65, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x70, 0x65, 0x72,
  2279  	0x69, 0x6f, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x16, 0x0a, 0x07, 0x53, 0x65,
  2280  	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
  2281  	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21,
  2282  	0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
  2283  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
  2284  	0x65, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28,
  2285  	0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
  2286  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2287  	0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f,
  2288  	0x6d, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18,
  2289  	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
  2290  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72,
  2291  	0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x48, 0x00,
  2292  	0x52, 0x09, 0x61, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63,
  2293  	0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08,
  2294  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  2295  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76,
  2296  	0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
  2297  	0x74, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
  2298  	0x69, 0x6e, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
  2299  	0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
  2300  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e,
  2301  	0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
  2302  	0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74,
  2303  	0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x5f,
  2304  	0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f,
  2305  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e,
  2306  	0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x49,
  2307  	0x73, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69,
  2308  	0x6f, 0x12, 0x6d, 0x0a, 0x17, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x63, 0x61, 0x6e, 0x6f, 0x6e,
  2309  	0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
  2310  	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  2311  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
  2312  	0x65, 0x2e, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c,
  2313  	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x15, 0x69, 0x73, 0x74, 0x69, 0x6f,
  2314  	0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2315  	0x12, 0x45, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x0c, 0x20,
  2316  	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2317  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69,
  2318  	0x63, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x52, 0x75, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x63,
  2319  	0x6c, 0x6f, 0x75, 0x64, 0x52, 0x75, 0x6e, 0x12, 0x51, 0x0a, 0x0d, 0x67, 0x6b, 0x65, 0x5f, 0x6e,
  2320  	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
  2321  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  2322  	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x6b,
  2323  	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x6b,
  2324  	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x67, 0x6b,
  2325  	0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
  2326  	0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  2327  	0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
  2328  	0x47, 0x6b, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x67,
  2329  	0x6b, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x67, 0x6b,
  2330  	0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2331  	0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
  2332  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47,
  2333  	0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x6b, 0x65,
  2334  	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x69, 0x63,
  2335  	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
  2336  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  2337  	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x61,
  2338  	0x73, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x69,
  2339  	0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65,
  2340  	0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f,
  2341  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e,
  2342  	0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d,
  2343  	0x65, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12,
  2344  	0x4e, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e,
  2345  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  2346  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76,
  2347  	0x69, 0x63, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
  2348  	0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a,
  2349  	0x08, 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x28, 0x0a, 0x09, 0x41, 0x70, 0x70,
  2350  	0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
  2351  	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
  2352  	0x65, 0x49, 0x64, 0x1a, 0x2a, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70,
  2353  	0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2354  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a,
  2355  	0x9d, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f,
  2356  	0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
  2357  	0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c,
  2358  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
  2359  	0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
  2360  	0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73,
  2361  	0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76,
  2362  	0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c,
  2363  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
  2364  	0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a,
  2365  	0x76, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x19, 0x0a, 0x08,
  2366  	0x6d, 0x65, 0x73, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
  2367  	0x6d, 0x65, 0x73, 0x68, 0x55, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69,
  2368  	0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
  2369  	0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73,
  2370  	0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
  2371  	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76,
  2372  	0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x9f, 0x01, 0x0a, 0x15, 0x49, 0x73, 0x74, 0x69,
  2373  	0x6f, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
  2374  	0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
  2375  	0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x68, 0x55, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x1b,
  2376  	0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  2377  	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
  2378  	0x09, 0x52, 0x19, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76,
  2379  	0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11,
  2380  	0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  2381  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63,
  2382  	0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x49, 0x0a, 0x08, 0x43, 0x6c, 0x6f,
  2383  	0x75, 0x64, 0x52, 0x75, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2384  	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72,
  2385  	0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61,
  2386  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61,
  2387  	0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, 0x01, 0x0a, 0x0c, 0x47, 0x6b, 0x65, 0x4e, 0x61, 0x6d, 0x65,
  2388  	0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  2389  	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09,
  2390  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63,
  2391  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63,
  2392  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  2393  	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75,
  2394  	0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65,
  2395  	0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
  2396  	0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a,
  2397  	0x8d, 0x02, 0x0a, 0x0b, 0x47, 0x6b, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12,
  2398  	0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
  2399  	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
  2400  	0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
  2401  	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  2402  	0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  2403  	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61,
  2404  	0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
  2405  	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65,
  2406  	0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x74, 0x6f, 0x70,
  2407  	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65,
  2408  	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x74, 0x6f,
  2409  	0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72,
  2410  	0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x65, 0x76, 0x65,
  2411  	0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
  2412  	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x74, 0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65,
  2413  	0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x1a,
  2414  	0xb9, 0x01, 0x0a, 0x0a, 0x47, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22,
  2415  	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
  2416  	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  2417  	0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
  2418  	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21,
  2419  	0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
  2420  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d,
  2421  	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e,
  2422  	0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73,
  2423  	0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76,
  2424  	0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
  2425  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xd9, 0x01, 0x0a, 0x0c,
  2426  	0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c,
  2427  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
  2428  	0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
  2429  	0x64, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c,
  2430  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2431  	0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53,
  2432  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76,
  2433  	0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c,
  2434  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
  2435  	0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  2436  	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
  2437  	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
  2438  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
  2439  	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x30, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x65, 0x6d,
  2440  	0x65, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
  2441  	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73,
  2442  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65,
  2443  	0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  2444  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
  2445  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
  2446  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0xa7, 0x01, 0xea, 0x41, 0xa3, 0x01, 0x0a,
  2447  	0x21, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2448  	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69,
  2449  	0x63, 0x65, 0x12, 0x25, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72,
  2450  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f,
  2451  	0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e,
  2452  	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69,
  2453  	0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
  2454  	0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x23, 0x66, 0x6f, 0x6c, 0x64,
  2455  	0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x65, 0x72,
  2456  	0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12,
  2457  	0x01, 0x2a, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
  2458  	0x22, 0x82, 0x07, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65,
  2459  	0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61,
  2460  	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e,
  2461  	0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e,
  2462  	0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c,
  2463  	0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  2464  	0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f,
  2465  	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2466  	0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53,
  2467  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63,
  2468  	0x61, 0x74, 0x6f, 0x72, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76,
  2469  	0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67,
  2470  	0x6f, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12,
  2471  	0x42, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f,
  2472  	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2473  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  2474  	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72,
  2475  	0x69, 0x6f, 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f,
  2476  	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67,
  2477  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e,
  2478  	0x64, 0x61, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x6c,
  2479  	0x65, 0x6e, 0x64, 0x61, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x5c, 0x0a, 0x0b, 0x75,
  2480  	0x73, 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b,
  2481  	0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  2482  	0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
  2483  	0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x55, 0x73,
  2484  	0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75,
  2485  	0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65,
  2486  	0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  2487  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
  2488  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
  2489  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x34, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77,
  2490  	0x12, 0x14, 0x0a, 0x10, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
  2491  	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02,
  2492  	0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, 0x01, 0x3a, 0xca,
  2493  	0x02, 0xea, 0x41, 0xc6, 0x02, 0x0a, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
  2494  	0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
  2495  	0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a,
  2496  	0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x56, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
  2497  	0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69,
  2498  	0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65,
  2499  	0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
  2500  	0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65,
  2501  	0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x60,
  2502  	0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f,
  2503  	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72,
  2504  	0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f,
  2505  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65,
  2506  	0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
  2507  	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d,
  2508  	0x12, 0x54, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65,
  2509  	0x72, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72,
  2510  	0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76,
  2511  	0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65,
  2512  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65,
  2513  	0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x01, 0x2a, 0x20, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x70,
  2514  	0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
  2515  	0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12,
  2516  	0x3d, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x18, 0x04, 0x20, 0x01,
  2517  	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  2518  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53,
  2519  	0x6c, 0x69, 0x48, 0x00, 0x52, 0x08, 0x62, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12, 0x4c,
  2520  	0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18,
  2521  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
  2522  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71,
  2523  	0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c,
  2524  	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x0d,
  2525  	0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20,
  2526  	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2527  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f,
  2528  	0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x69,
  2529  	0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
  2530  	0x70, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12,
  2531  	0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
  2532  	0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  2533  	0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  2534  	0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09,
  2535  	0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a,
  2536  	0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20,
  2537  	0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2538  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63,
  2539  	0x53, 0x6c, 0x69, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
  2540  	0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69,
  2541  	0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65,
  2542  	0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2543  	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
  2544  	0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63,
  2545  	0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x74,
  2546  	0x65, 0x6e, 0x63, 0x79, 0x1a, 0x16, 0x0a, 0x14, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69,
  2547  	0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x1a, 0x4a, 0x0a, 0x0f,
  2548  	0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12,
  2549  	0x37, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01,
  2550  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2551  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x74,
  2552  	0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x6c, 0x69, 0x5f,
  2553  	0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, 0x2b, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67,
  2554  	0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03,
  2555  	0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01,
  2556  	0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
  2557  	0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x51, 0x0a, 0x10, 0x67, 0x6f, 0x6f,
  2558  	0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20,
  2559  	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2560  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53,
  2561  	0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x6f,
  2562  	0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x52, 0x0a, 0x10,
  2563  	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x75, 0x74,
  2564  	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2565  	0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x69,
  2566  	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74, 0x48, 0x00, 0x52,
  2567  	0x0f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74,
  2568  	0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x54,
  2569  	0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2e,
  2570  	0x0a, 0x13, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66,
  2571  	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x6f, 0x6f,
  2572  	0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c,
  2573  	0x0a, 0x12, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69,
  2574  	0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x64, 0x53,
  2575  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14,
  2576  	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69,
  2577  	0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61,
  2578  	0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x75,
  2579  	0x0a, 0x0f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75,
  2580  	0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
  2581  	0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
  2582  	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74,
  2583  	0x65, 0x72, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
  2584  	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
  2585  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05,
  2586  	0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa4, 0x06, 0x0a, 0x0f, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  2587  	0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x35, 0x0a, 0x16, 0x67, 0x6f, 0x6f,
  2588  	0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c,
  2589  	0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6f, 0x6f,
  2590  	0x64, 0x42, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
  2591  	0x12, 0x79, 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72,
  2592  	0x61, 0x74, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02,
  2593  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  2594  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64,
  2595  	0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x66,
  2596  	0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
  2597  	0x48, 0x00, 0x52, 0x17, 0x67, 0x6f, 0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74,
  2598  	0x69, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x64, 0x0a, 0x14, 0x6d,
  2599  	0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61,
  2600  	0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2601  	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
  2602  	0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69,
  2603  	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x11,
  2604  	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x61, 0x6e, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67,
  2605  	0x65, 0x12, 0x62, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x5f,
  2606  	0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31,
  2607  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  2608  	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73,
  2609  	0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67,
  2610  	0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x75, 0x6d, 0x49, 0x6e,
  2611  	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f,
  2612  	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  2613  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  2614  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x50,
  2615  	0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xdd, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72,
  2616  	0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x49,
  2617  	0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20,
  2618  	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
  2619  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
  2620  	0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65,
  2621  	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x54, 0x0a, 0x15, 0x62, 0x61, 0x73,
  2622  	0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e,
  2623  	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2624  	0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
  2625  	0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x73, 0x69,
  2626  	0x63, 0x53, 0x6c, 0x69, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12,
  2627  	0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01,
  2628  	0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x06, 0x0a,
  2629  	0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x61, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
  2630  	0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72,
  2631  	0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x53,
  2632  	0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04,
  2633  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
  2634  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67,
  2635  	0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x77, 0x69, 0x6e, 0x64,
  2636  	0x6f, 0x77, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x6e, 0x42, 0xd1, 0x01, 0x0a,
  2637  	0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
  2638  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x42, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69,
  2639  	0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74,
  2640  	0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2641  	0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
  2642  	0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x6d, 0x6f, 0x6e,
  2643  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  2644  	0x72, 0x69, 0x6e, 0x67, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2645  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  2646  	0x2e, 0x56, 0x33, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f,
  2647  	0x75, 0x64, 0x5c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x33,
  2648  	0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
  2649  	0x3a, 0x3a, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x33,
  2650  	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2651  }
  2652  
  2653  var (
  2654  	file_google_monitoring_v3_service_proto_rawDescOnce sync.Once
  2655  	file_google_monitoring_v3_service_proto_rawDescData = file_google_monitoring_v3_service_proto_rawDesc
  2656  )
  2657  
  2658  func file_google_monitoring_v3_service_proto_rawDescGZIP() []byte {
  2659  	file_google_monitoring_v3_service_proto_rawDescOnce.Do(func() {
  2660  		file_google_monitoring_v3_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_monitoring_v3_service_proto_rawDescData)
  2661  	})
  2662  	return file_google_monitoring_v3_service_proto_rawDescData
  2663  }
  2664  
  2665  var file_google_monitoring_v3_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  2666  var file_google_monitoring_v3_service_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
  2667  var file_google_monitoring_v3_service_proto_goTypes = []interface{}{
  2668  	(ServiceLevelObjective_View)(0),              // 0: google.monitoring.v3.ServiceLevelObjective.View
  2669  	(*Service)(nil),                              // 1: google.monitoring.v3.Service
  2670  	(*ServiceLevelObjective)(nil),                // 2: google.monitoring.v3.ServiceLevelObjective
  2671  	(*ServiceLevelIndicator)(nil),                // 3: google.monitoring.v3.ServiceLevelIndicator
  2672  	(*BasicSli)(nil),                             // 4: google.monitoring.v3.BasicSli
  2673  	(*Range)(nil),                                // 5: google.monitoring.v3.Range
  2674  	(*RequestBasedSli)(nil),                      // 6: google.monitoring.v3.RequestBasedSli
  2675  	(*TimeSeriesRatio)(nil),                      // 7: google.monitoring.v3.TimeSeriesRatio
  2676  	(*DistributionCut)(nil),                      // 8: google.monitoring.v3.DistributionCut
  2677  	(*WindowsBasedSli)(nil),                      // 9: google.monitoring.v3.WindowsBasedSli
  2678  	(*Service_Custom)(nil),                       // 10: google.monitoring.v3.Service.Custom
  2679  	(*Service_AppEngine)(nil),                    // 11: google.monitoring.v3.Service.AppEngine
  2680  	(*Service_CloudEndpoints)(nil),               // 12: google.monitoring.v3.Service.CloudEndpoints
  2681  	(*Service_ClusterIstio)(nil),                 // 13: google.monitoring.v3.Service.ClusterIstio
  2682  	(*Service_MeshIstio)(nil),                    // 14: google.monitoring.v3.Service.MeshIstio
  2683  	(*Service_IstioCanonicalService)(nil),        // 15: google.monitoring.v3.Service.IstioCanonicalService
  2684  	(*Service_CloudRun)(nil),                     // 16: google.monitoring.v3.Service.CloudRun
  2685  	(*Service_GkeNamespace)(nil),                 // 17: google.monitoring.v3.Service.GkeNamespace
  2686  	(*Service_GkeWorkload)(nil),                  // 18: google.monitoring.v3.Service.GkeWorkload
  2687  	(*Service_GkeService)(nil),                   // 19: google.monitoring.v3.Service.GkeService
  2688  	(*Service_BasicService)(nil),                 // 20: google.monitoring.v3.Service.BasicService
  2689  	(*Service_Telemetry)(nil),                    // 21: google.monitoring.v3.Service.Telemetry
  2690  	nil,                                          // 22: google.monitoring.v3.Service.UserLabelsEntry
  2691  	nil,                                          // 23: google.monitoring.v3.Service.BasicService.ServiceLabelsEntry
  2692  	nil,                                          // 24: google.monitoring.v3.ServiceLevelObjective.UserLabelsEntry
  2693  	(*BasicSli_AvailabilityCriteria)(nil),        // 25: google.monitoring.v3.BasicSli.AvailabilityCriteria
  2694  	(*BasicSli_LatencyCriteria)(nil),             // 26: google.monitoring.v3.BasicSli.LatencyCriteria
  2695  	(*WindowsBasedSli_PerformanceThreshold)(nil), // 27: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold
  2696  	(*WindowsBasedSli_MetricRange)(nil),          // 28: google.monitoring.v3.WindowsBasedSli.MetricRange
  2697  	(*durationpb.Duration)(nil),                  // 29: google.protobuf.Duration
  2698  	(calendarperiod.CalendarPeriod)(0),           // 30: google.type.CalendarPeriod
  2699  }
  2700  var file_google_monitoring_v3_service_proto_depIdxs = []int32{
  2701  	10, // 0: google.monitoring.v3.Service.custom:type_name -> google.monitoring.v3.Service.Custom
  2702  	11, // 1: google.monitoring.v3.Service.app_engine:type_name -> google.monitoring.v3.Service.AppEngine
  2703  	12, // 2: google.monitoring.v3.Service.cloud_endpoints:type_name -> google.monitoring.v3.Service.CloudEndpoints
  2704  	13, // 3: google.monitoring.v3.Service.cluster_istio:type_name -> google.monitoring.v3.Service.ClusterIstio
  2705  	14, // 4: google.monitoring.v3.Service.mesh_istio:type_name -> google.monitoring.v3.Service.MeshIstio
  2706  	15, // 5: google.monitoring.v3.Service.istio_canonical_service:type_name -> google.monitoring.v3.Service.IstioCanonicalService
  2707  	16, // 6: google.monitoring.v3.Service.cloud_run:type_name -> google.monitoring.v3.Service.CloudRun
  2708  	17, // 7: google.monitoring.v3.Service.gke_namespace:type_name -> google.monitoring.v3.Service.GkeNamespace
  2709  	18, // 8: google.monitoring.v3.Service.gke_workload:type_name -> google.monitoring.v3.Service.GkeWorkload
  2710  	19, // 9: google.monitoring.v3.Service.gke_service:type_name -> google.monitoring.v3.Service.GkeService
  2711  	20, // 10: google.monitoring.v3.Service.basic_service:type_name -> google.monitoring.v3.Service.BasicService
  2712  	21, // 11: google.monitoring.v3.Service.telemetry:type_name -> google.monitoring.v3.Service.Telemetry
  2713  	22, // 12: google.monitoring.v3.Service.user_labels:type_name -> google.monitoring.v3.Service.UserLabelsEntry
  2714  	3,  // 13: google.monitoring.v3.ServiceLevelObjective.service_level_indicator:type_name -> google.monitoring.v3.ServiceLevelIndicator
  2715  	29, // 14: google.monitoring.v3.ServiceLevelObjective.rolling_period:type_name -> google.protobuf.Duration
  2716  	30, // 15: google.monitoring.v3.ServiceLevelObjective.calendar_period:type_name -> google.type.CalendarPeriod
  2717  	24, // 16: google.monitoring.v3.ServiceLevelObjective.user_labels:type_name -> google.monitoring.v3.ServiceLevelObjective.UserLabelsEntry
  2718  	4,  // 17: google.monitoring.v3.ServiceLevelIndicator.basic_sli:type_name -> google.monitoring.v3.BasicSli
  2719  	6,  // 18: google.monitoring.v3.ServiceLevelIndicator.request_based:type_name -> google.monitoring.v3.RequestBasedSli
  2720  	9,  // 19: google.monitoring.v3.ServiceLevelIndicator.windows_based:type_name -> google.monitoring.v3.WindowsBasedSli
  2721  	25, // 20: google.monitoring.v3.BasicSli.availability:type_name -> google.monitoring.v3.BasicSli.AvailabilityCriteria
  2722  	26, // 21: google.monitoring.v3.BasicSli.latency:type_name -> google.monitoring.v3.BasicSli.LatencyCriteria
  2723  	7,  // 22: google.monitoring.v3.RequestBasedSli.good_total_ratio:type_name -> google.monitoring.v3.TimeSeriesRatio
  2724  	8,  // 23: google.monitoring.v3.RequestBasedSli.distribution_cut:type_name -> google.monitoring.v3.DistributionCut
  2725  	5,  // 24: google.monitoring.v3.DistributionCut.range:type_name -> google.monitoring.v3.Range
  2726  	27, // 25: google.monitoring.v3.WindowsBasedSli.good_total_ratio_threshold:type_name -> google.monitoring.v3.WindowsBasedSli.PerformanceThreshold
  2727  	28, // 26: google.monitoring.v3.WindowsBasedSli.metric_mean_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange
  2728  	28, // 27: google.monitoring.v3.WindowsBasedSli.metric_sum_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange
  2729  	29, // 28: google.monitoring.v3.WindowsBasedSli.window_period:type_name -> google.protobuf.Duration
  2730  	23, // 29: google.monitoring.v3.Service.BasicService.service_labels:type_name -> google.monitoring.v3.Service.BasicService.ServiceLabelsEntry
  2731  	29, // 30: google.monitoring.v3.BasicSli.LatencyCriteria.threshold:type_name -> google.protobuf.Duration
  2732  	6,  // 31: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.performance:type_name -> google.monitoring.v3.RequestBasedSli
  2733  	4,  // 32: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.basic_sli_performance:type_name -> google.monitoring.v3.BasicSli
  2734  	5,  // 33: google.monitoring.v3.WindowsBasedSli.MetricRange.range:type_name -> google.monitoring.v3.Range
  2735  	34, // [34:34] is the sub-list for method output_type
  2736  	34, // [34:34] is the sub-list for method input_type
  2737  	34, // [34:34] is the sub-list for extension type_name
  2738  	34, // [34:34] is the sub-list for extension extendee
  2739  	0,  // [0:34] is the sub-list for field type_name
  2740  }
  2741  
  2742  func init() { file_google_monitoring_v3_service_proto_init() }
  2743  func file_google_monitoring_v3_service_proto_init() {
  2744  	if File_google_monitoring_v3_service_proto != nil {
  2745  		return
  2746  	}
  2747  	if !protoimpl.UnsafeEnabled {
  2748  		file_google_monitoring_v3_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2749  			switch v := v.(*Service); i {
  2750  			case 0:
  2751  				return &v.state
  2752  			case 1:
  2753  				return &v.sizeCache
  2754  			case 2:
  2755  				return &v.unknownFields
  2756  			default:
  2757  				return nil
  2758  			}
  2759  		}
  2760  		file_google_monitoring_v3_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2761  			switch v := v.(*ServiceLevelObjective); i {
  2762  			case 0:
  2763  				return &v.state
  2764  			case 1:
  2765  				return &v.sizeCache
  2766  			case 2:
  2767  				return &v.unknownFields
  2768  			default:
  2769  				return nil
  2770  			}
  2771  		}
  2772  		file_google_monitoring_v3_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2773  			switch v := v.(*ServiceLevelIndicator); i {
  2774  			case 0:
  2775  				return &v.state
  2776  			case 1:
  2777  				return &v.sizeCache
  2778  			case 2:
  2779  				return &v.unknownFields
  2780  			default:
  2781  				return nil
  2782  			}
  2783  		}
  2784  		file_google_monitoring_v3_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2785  			switch v := v.(*BasicSli); i {
  2786  			case 0:
  2787  				return &v.state
  2788  			case 1:
  2789  				return &v.sizeCache
  2790  			case 2:
  2791  				return &v.unknownFields
  2792  			default:
  2793  				return nil
  2794  			}
  2795  		}
  2796  		file_google_monitoring_v3_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2797  			switch v := v.(*Range); i {
  2798  			case 0:
  2799  				return &v.state
  2800  			case 1:
  2801  				return &v.sizeCache
  2802  			case 2:
  2803  				return &v.unknownFields
  2804  			default:
  2805  				return nil
  2806  			}
  2807  		}
  2808  		file_google_monitoring_v3_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2809  			switch v := v.(*RequestBasedSli); i {
  2810  			case 0:
  2811  				return &v.state
  2812  			case 1:
  2813  				return &v.sizeCache
  2814  			case 2:
  2815  				return &v.unknownFields
  2816  			default:
  2817  				return nil
  2818  			}
  2819  		}
  2820  		file_google_monitoring_v3_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2821  			switch v := v.(*TimeSeriesRatio); i {
  2822  			case 0:
  2823  				return &v.state
  2824  			case 1:
  2825  				return &v.sizeCache
  2826  			case 2:
  2827  				return &v.unknownFields
  2828  			default:
  2829  				return nil
  2830  			}
  2831  		}
  2832  		file_google_monitoring_v3_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2833  			switch v := v.(*DistributionCut); i {
  2834  			case 0:
  2835  				return &v.state
  2836  			case 1:
  2837  				return &v.sizeCache
  2838  			case 2:
  2839  				return &v.unknownFields
  2840  			default:
  2841  				return nil
  2842  			}
  2843  		}
  2844  		file_google_monitoring_v3_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2845  			switch v := v.(*WindowsBasedSli); i {
  2846  			case 0:
  2847  				return &v.state
  2848  			case 1:
  2849  				return &v.sizeCache
  2850  			case 2:
  2851  				return &v.unknownFields
  2852  			default:
  2853  				return nil
  2854  			}
  2855  		}
  2856  		file_google_monitoring_v3_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2857  			switch v := v.(*Service_Custom); i {
  2858  			case 0:
  2859  				return &v.state
  2860  			case 1:
  2861  				return &v.sizeCache
  2862  			case 2:
  2863  				return &v.unknownFields
  2864  			default:
  2865  				return nil
  2866  			}
  2867  		}
  2868  		file_google_monitoring_v3_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2869  			switch v := v.(*Service_AppEngine); i {
  2870  			case 0:
  2871  				return &v.state
  2872  			case 1:
  2873  				return &v.sizeCache
  2874  			case 2:
  2875  				return &v.unknownFields
  2876  			default:
  2877  				return nil
  2878  			}
  2879  		}
  2880  		file_google_monitoring_v3_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2881  			switch v := v.(*Service_CloudEndpoints); i {
  2882  			case 0:
  2883  				return &v.state
  2884  			case 1:
  2885  				return &v.sizeCache
  2886  			case 2:
  2887  				return &v.unknownFields
  2888  			default:
  2889  				return nil
  2890  			}
  2891  		}
  2892  		file_google_monitoring_v3_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  2893  			switch v := v.(*Service_ClusterIstio); i {
  2894  			case 0:
  2895  				return &v.state
  2896  			case 1:
  2897  				return &v.sizeCache
  2898  			case 2:
  2899  				return &v.unknownFields
  2900  			default:
  2901  				return nil
  2902  			}
  2903  		}
  2904  		file_google_monitoring_v3_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  2905  			switch v := v.(*Service_MeshIstio); i {
  2906  			case 0:
  2907  				return &v.state
  2908  			case 1:
  2909  				return &v.sizeCache
  2910  			case 2:
  2911  				return &v.unknownFields
  2912  			default:
  2913  				return nil
  2914  			}
  2915  		}
  2916  		file_google_monitoring_v3_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2917  			switch v := v.(*Service_IstioCanonicalService); i {
  2918  			case 0:
  2919  				return &v.state
  2920  			case 1:
  2921  				return &v.sizeCache
  2922  			case 2:
  2923  				return &v.unknownFields
  2924  			default:
  2925  				return nil
  2926  			}
  2927  		}
  2928  		file_google_monitoring_v3_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2929  			switch v := v.(*Service_CloudRun); i {
  2930  			case 0:
  2931  				return &v.state
  2932  			case 1:
  2933  				return &v.sizeCache
  2934  			case 2:
  2935  				return &v.unknownFields
  2936  			default:
  2937  				return nil
  2938  			}
  2939  		}
  2940  		file_google_monitoring_v3_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  2941  			switch v := v.(*Service_GkeNamespace); i {
  2942  			case 0:
  2943  				return &v.state
  2944  			case 1:
  2945  				return &v.sizeCache
  2946  			case 2:
  2947  				return &v.unknownFields
  2948  			default:
  2949  				return nil
  2950  			}
  2951  		}
  2952  		file_google_monitoring_v3_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  2953  			switch v := v.(*Service_GkeWorkload); i {
  2954  			case 0:
  2955  				return &v.state
  2956  			case 1:
  2957  				return &v.sizeCache
  2958  			case 2:
  2959  				return &v.unknownFields
  2960  			default:
  2961  				return nil
  2962  			}
  2963  		}
  2964  		file_google_monitoring_v3_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  2965  			switch v := v.(*Service_GkeService); i {
  2966  			case 0:
  2967  				return &v.state
  2968  			case 1:
  2969  				return &v.sizeCache
  2970  			case 2:
  2971  				return &v.unknownFields
  2972  			default:
  2973  				return nil
  2974  			}
  2975  		}
  2976  		file_google_monitoring_v3_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  2977  			switch v := v.(*Service_BasicService); i {
  2978  			case 0:
  2979  				return &v.state
  2980  			case 1:
  2981  				return &v.sizeCache
  2982  			case 2:
  2983  				return &v.unknownFields
  2984  			default:
  2985  				return nil
  2986  			}
  2987  		}
  2988  		file_google_monitoring_v3_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  2989  			switch v := v.(*Service_Telemetry); i {
  2990  			case 0:
  2991  				return &v.state
  2992  			case 1:
  2993  				return &v.sizeCache
  2994  			case 2:
  2995  				return &v.unknownFields
  2996  			default:
  2997  				return nil
  2998  			}
  2999  		}
  3000  		file_google_monitoring_v3_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  3001  			switch v := v.(*BasicSli_AvailabilityCriteria); i {
  3002  			case 0:
  3003  				return &v.state
  3004  			case 1:
  3005  				return &v.sizeCache
  3006  			case 2:
  3007  				return &v.unknownFields
  3008  			default:
  3009  				return nil
  3010  			}
  3011  		}
  3012  		file_google_monitoring_v3_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
  3013  			switch v := v.(*BasicSli_LatencyCriteria); i {
  3014  			case 0:
  3015  				return &v.state
  3016  			case 1:
  3017  				return &v.sizeCache
  3018  			case 2:
  3019  				return &v.unknownFields
  3020  			default:
  3021  				return nil
  3022  			}
  3023  		}
  3024  		file_google_monitoring_v3_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
  3025  			switch v := v.(*WindowsBasedSli_PerformanceThreshold); i {
  3026  			case 0:
  3027  				return &v.state
  3028  			case 1:
  3029  				return &v.sizeCache
  3030  			case 2:
  3031  				return &v.unknownFields
  3032  			default:
  3033  				return nil
  3034  			}
  3035  		}
  3036  		file_google_monitoring_v3_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
  3037  			switch v := v.(*WindowsBasedSli_MetricRange); i {
  3038  			case 0:
  3039  				return &v.state
  3040  			case 1:
  3041  				return &v.sizeCache
  3042  			case 2:
  3043  				return &v.unknownFields
  3044  			default:
  3045  				return nil
  3046  			}
  3047  		}
  3048  	}
  3049  	file_google_monitoring_v3_service_proto_msgTypes[0].OneofWrappers = []interface{}{
  3050  		(*Service_Custom_)(nil),
  3051  		(*Service_AppEngine_)(nil),
  3052  		(*Service_CloudEndpoints_)(nil),
  3053  		(*Service_ClusterIstio_)(nil),
  3054  		(*Service_MeshIstio_)(nil),
  3055  		(*Service_IstioCanonicalService_)(nil),
  3056  		(*Service_CloudRun_)(nil),
  3057  		(*Service_GkeNamespace_)(nil),
  3058  		(*Service_GkeWorkload_)(nil),
  3059  		(*Service_GkeService_)(nil),
  3060  	}
  3061  	file_google_monitoring_v3_service_proto_msgTypes[1].OneofWrappers = []interface{}{
  3062  		(*ServiceLevelObjective_RollingPeriod)(nil),
  3063  		(*ServiceLevelObjective_CalendarPeriod)(nil),
  3064  	}
  3065  	file_google_monitoring_v3_service_proto_msgTypes[2].OneofWrappers = []interface{}{
  3066  		(*ServiceLevelIndicator_BasicSli)(nil),
  3067  		(*ServiceLevelIndicator_RequestBased)(nil),
  3068  		(*ServiceLevelIndicator_WindowsBased)(nil),
  3069  	}
  3070  	file_google_monitoring_v3_service_proto_msgTypes[3].OneofWrappers = []interface{}{
  3071  		(*BasicSli_Availability)(nil),
  3072  		(*BasicSli_Latency)(nil),
  3073  	}
  3074  	file_google_monitoring_v3_service_proto_msgTypes[5].OneofWrappers = []interface{}{
  3075  		(*RequestBasedSli_GoodTotalRatio)(nil),
  3076  		(*RequestBasedSli_DistributionCut)(nil),
  3077  	}
  3078  	file_google_monitoring_v3_service_proto_msgTypes[8].OneofWrappers = []interface{}{
  3079  		(*WindowsBasedSli_GoodBadMetricFilter)(nil),
  3080  		(*WindowsBasedSli_GoodTotalRatioThreshold)(nil),
  3081  		(*WindowsBasedSli_MetricMeanInRange)(nil),
  3082  		(*WindowsBasedSli_MetricSumInRange)(nil),
  3083  	}
  3084  	file_google_monitoring_v3_service_proto_msgTypes[26].OneofWrappers = []interface{}{
  3085  		(*WindowsBasedSli_PerformanceThreshold_Performance)(nil),
  3086  		(*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance)(nil),
  3087  	}
  3088  	type x struct{}
  3089  	out := protoimpl.TypeBuilder{
  3090  		File: protoimpl.DescBuilder{
  3091  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  3092  			RawDescriptor: file_google_monitoring_v3_service_proto_rawDesc,
  3093  			NumEnums:      1,
  3094  			NumMessages:   28,
  3095  			NumExtensions: 0,
  3096  			NumServices:   0,
  3097  		},
  3098  		GoTypes:           file_google_monitoring_v3_service_proto_goTypes,
  3099  		DependencyIndexes: file_google_monitoring_v3_service_proto_depIdxs,
  3100  		EnumInfos:         file_google_monitoring_v3_service_proto_enumTypes,
  3101  		MessageInfos:      file_google_monitoring_v3_service_proto_msgTypes,
  3102  	}.Build()
  3103  	File_google_monitoring_v3_service_proto = out.File
  3104  	file_google_monitoring_v3_service_proto_rawDesc = nil
  3105  	file_google_monitoring_v3_service_proto_goTypes = nil
  3106  	file_google_monitoring_v3_service_proto_depIdxs = nil
  3107  }
  3108  

View as plain text