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