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