Copyright 2020 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Code generated by protoc-gen-go. DO NOT EDIT. versions: protoc-gen-go v1.25.0 protoc v3.13.0 source: google/monitoring/v3/service.proto

package monitoring

import (
	reflect 
	sync 

	proto 
	_ 
	_ 
	calendarperiod 
	protoreflect 
	protoimpl 
	durationpb 
	_ 
)

Verify that this generated code is sufficiently up-to-date.
Verify that runtime/protoimpl is sufficiently up-to-date.
This is a compile-time assertion that a sufficiently up-to-date version of the legacy proto package is being used.
`ServiceLevelObjective.View` determines what form of `ServiceLevelObjective` is returned from `GetServiceLevelObjective`, `ListServiceLevelObjectives`, and `ListServiceLevelObjectiveVersions` RPCs.
Same as FULL.
Return the embedded `ServiceLevelIndicator` in the form in which it was defined. If it was defined using a `BasicSli`, return that `BasicSli`.
For `ServiceLevelIndicator`s using `BasicSli` articulation, instead return the `ServiceLevelIndicator` with its mode of computation fully spelled out as a `RequestBasedSli`. For `ServiceLevelIndicator`s using `RequestBasedSli` or `WindowsBasedSli`, return the `ServiceLevelIndicator` as it was provided.
Deprecated: Use ServiceLevelObjective_View.Descriptor instead.
A `Service` is a discrete, autonomous, and network-accessible unit, designed to solve an individual concern ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In Cloud Monitoring, a `Service` acts as the root resource under which operational aspects of the service are accessible.
Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
Name used for UI elements listing this Service.
REQUIRED. Service-identifying atoms specifying the underlying service. Types that are assignable to Identifier: *Service_Custom_ *Service_AppEngine_ *Service_CloudEndpoints_ *Service_ClusterIstio_ *Service_MeshIstio_
Configuration for how to query telemetry on a Service.
	Telemetry *Service_Telemetry `protobuf:"bytes,13,opt,name=telemetry,proto3" json:"telemetry,omitempty"`
}

func ( *Service) () {
	* = Service{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[0]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Service) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Service) () {}

func ( *Service) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Service.ProtoReflect.Descriptor instead.
func (*Service) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0}
}

func ( *Service) () string {
	if  != nil {
		return .Name
	}
	return ""
}

func ( *Service) () string {
	if  != nil {
		return .DisplayName
	}
	return ""
}

func ( *Service) () isService_Identifier {
	if  != nil {
		return .Identifier
	}
	return nil
}

func ( *Service) () *Service_Custom {
	if ,  := .GetIdentifier().(*Service_Custom_);  {
		return .Custom
	}
	return nil
}

func ( *Service) () *Service_AppEngine {
	if ,  := .GetIdentifier().(*Service_AppEngine_);  {
		return .AppEngine
	}
	return nil
}

func ( *Service) () *Service_CloudEndpoints {
	if ,  := .GetIdentifier().(*Service_CloudEndpoints_);  {
		return .CloudEndpoints
	}
	return nil
}
Deprecated: Do not use.
func ( *Service) () *Service_ClusterIstio {
	if ,  := .GetIdentifier().(*Service_ClusterIstio_);  {
		return .ClusterIstio
	}
	return nil
}

func ( *Service) () *Service_MeshIstio {
	if ,  := .GetIdentifier().(*Service_MeshIstio_);  {
		return .MeshIstio
	}
	return nil
}

func ( *Service) () *Service_Telemetry {
	if  != nil {
		return .Telemetry
	}
	return nil
}

type isService_Identifier interface {
	isService_Identifier()
}

Custom service type.
	Custom *Service_Custom `protobuf:"bytes,6,opt,name=custom,proto3,oneof"`
}

Type used for App Engine services.
	AppEngine *Service_AppEngine `protobuf:"bytes,7,opt,name=app_engine,json=appEngine,proto3,oneof"`
}

Type used for Cloud Endpoints services.
	CloudEndpoints *Service_CloudEndpoints `protobuf:"bytes,8,opt,name=cloud_endpoints,json=cloudEndpoints,proto3,oneof"`
}

Type used for Istio services that live in a Kubernetes cluster. Deprecated: Do not use.
	ClusterIstio *Service_ClusterIstio `protobuf:"bytes,9,opt,name=cluster_istio,json=clusterIstio,proto3,oneof"`
}

Type used for Istio services scoped to an Istio mesh.
	MeshIstio *Service_MeshIstio `protobuf:"bytes,10,opt,name=mesh_istio,json=meshIstio,proto3,oneof"`
}

func (*Service_Custom_) () {}

func (*Service_AppEngine_) () {}

func (*Service_CloudEndpoints_) () {}

func (*Service_ClusterIstio_) () {}

func (*Service_MeshIstio_) () {}
A Service-Level Objective (SLO) describes a level of desired good service. It consists of a service-level indicator (SLI), a performance goal, and a period over which the objective is to be evaluated against that goal. The SLO can use SLIs defined in a number of different manners. Typical SLOs might include "99% of requests in each rolling week have latency below 200 milliseconds" or "99.5% of requests in each calendar month return successfully."
Resource name for this `ServiceLevelObjective`. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
Name used for UI elements listing this SLO.
The definition of good service, used to measure and calculate the quality of the `Service`'s performance with respect to a single aspect of service quality.
The fraction of service that must be good in order for this objective to be met. `0 < goal <= 0.999`.
The time period over which the objective will be evaluated. Types that are assignable to Period: *ServiceLevelObjective_RollingPeriod *ServiceLevelObjective_CalendarPeriod
Deprecated: Use ServiceLevelObjective.ProtoReflect.Descriptor instead.
func (*ServiceLevelObjective) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{1}
}

func ( *ServiceLevelObjective) () string {
	if  != nil {
		return .Name
	}
	return ""
}

func ( *ServiceLevelObjective) () string {
	if  != nil {
		return .DisplayName
	}
	return ""
}

func ( *ServiceLevelObjective) () *ServiceLevelIndicator {
	if  != nil {
		return .ServiceLevelIndicator
	}
	return nil
}

func ( *ServiceLevelObjective) () float64 {
	if  != nil {
		return .Goal
	}
	return 0
}

func ( *ServiceLevelObjective) () isServiceLevelObjective_Period {
	if  != nil {
		return .Period
	}
	return nil
}

func ( *ServiceLevelObjective) () *durationpb.Duration {
	if ,  := .GetPeriod().(*ServiceLevelObjective_RollingPeriod);  {
		return .RollingPeriod
	}
	return nil
}

func ( *ServiceLevelObjective) () calendarperiod.CalendarPeriod {
	if ,  := .GetPeriod().(*ServiceLevelObjective_CalendarPeriod);  {
		return .CalendarPeriod
	}
	return calendarperiod.CalendarPeriod_CALENDAR_PERIOD_UNSPECIFIED
}

type isServiceLevelObjective_Period interface {
	isServiceLevelObjective_Period()
}

A rolling time period, semantically "in the past `<rolling_period>`". Must be an integer multiple of 1 day no larger than 30 days.
	RollingPeriod *durationpb.Duration `protobuf:"bytes,5,opt,name=rolling_period,json=rollingPeriod,proto3,oneof"`
}

A calendar period, semantically "since the start of the current `<calendar_period>`". At this time, only `DAY`, `WEEK`, `FORTNIGHT`, and `MONTH` are supported.
	CalendarPeriod calendarperiod.CalendarPeriod `protobuf:"varint,6,opt,name=calendar_period,json=calendarPeriod,proto3,enum=google.type.CalendarPeriod,oneof"`
}

func (*ServiceLevelObjective_RollingPeriod) () {}

func (*ServiceLevelObjective_CalendarPeriod) () {}
A Service-Level Indicator (SLI) describes the "performance" of a service. For some services, the SLI is well-defined. In such cases, the SLI can be described easily by referencing the well-known SLI and providing the needed parameters. Alternatively, a "custom" SLI can be defined with a query to the underlying metric store. An SLI is defined to be `good_service / total_service` over any queried time interval. The value of performance always falls into the range `0 <= performance <= 1`. A custom SLI describes how to compute this ratio, whether this is by dividing values from a pair of time series, cutting a `Distribution` into good and bad counts, or counting time windows in which the service complies with a criterion. For separation of concerns, a single Service-Level Indicator measures performance for only one aspect of service quality, such as fraction of successful queries or fast-enough queries.
Service level indicators can be grouped by whether the "unit" of service being measured is based on counts of good requests or on counts of good time windows Types that are assignable to Type: *ServiceLevelIndicator_BasicSli *ServiceLevelIndicator_RequestBased *ServiceLevelIndicator_WindowsBased
Deprecated: Use ServiceLevelIndicator.ProtoReflect.Descriptor instead.
func (*ServiceLevelIndicator) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{2}
}

func ( *ServiceLevelIndicator) () isServiceLevelIndicator_Type {
	if  != nil {
		return .Type
	}
	return nil
}

func ( *ServiceLevelIndicator) () *BasicSli {
	if ,  := .GetType().(*ServiceLevelIndicator_BasicSli);  {
		return .BasicSli
	}
	return nil
}

func ( *ServiceLevelIndicator) () *RequestBasedSli {
	if ,  := .GetType().(*ServiceLevelIndicator_RequestBased);  {
		return .RequestBased
	}
	return nil
}

func ( *ServiceLevelIndicator) () *WindowsBasedSli {
	if ,  := .GetType().(*ServiceLevelIndicator_WindowsBased);  {
		return .WindowsBased
	}
	return nil
}

type isServiceLevelIndicator_Type interface {
	isServiceLevelIndicator_Type()
}

Basic SLI on a well-known service type.
	BasicSli *BasicSli `protobuf:"bytes,4,opt,name=basic_sli,json=basicSli,proto3,oneof"`
}

Request-based SLIs
	RequestBased *RequestBasedSli `protobuf:"bytes,1,opt,name=request_based,json=requestBased,proto3,oneof"`
}

Windows-based SLIs
An SLI measuring performance on a well-known service type. Performance will be computed on the basis of pre-defined metrics. The type of the `service_resource` determines the metrics to use and the `service_resource.labels` and `metric_labels` are used to construct a monitoring filter to filter that metric down to just the data relevant to this service.
OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from other methods will not be used to calculate performance for this SLI. If omitted, this SLI applies to all the Service's methods. For service types that don't support breaking down by method, setting this field will result in an error.
OPTIONAL: The set of locations to which this SLI is relevant. Telemetry from other locations will not be used to calculate performance for this SLI. If omitted, this SLI applies to all locations in which the Service has activity. For service types that don't support breaking down by location, setting this field will result in an error.
OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry from other API versions will not be used to calculate performance for this SLI. If omitted, this SLI applies to all API versions. For service types that don't support breaking down by version, setting this field will result in an error.
This SLI can be evaluated on the basis of availability or latency. Types that are assignable to SliCriteria: *BasicSli_Availability *BasicSli_Latency
Deprecated: Use BasicSli.ProtoReflect.Descriptor instead.
func (*BasicSli) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3}
}

func ( *BasicSli) () []string {
	if  != nil {
		return .Method
	}
	return nil
}

func ( *BasicSli) () []string {
	if  != nil {
		return .Location
	}
	return nil
}

func ( *BasicSli) () []string {
	if  != nil {
		return .Version
	}
	return nil
}

func ( *BasicSli) () isBasicSli_SliCriteria {
	if  != nil {
		return .SliCriteria
	}
	return nil
}

func ( *BasicSli) () *BasicSli_AvailabilityCriteria {
	if ,  := .GetSliCriteria().(*BasicSli_Availability);  {
		return .Availability
	}
	return nil
}

func ( *BasicSli) () *BasicSli_LatencyCriteria {
	if ,  := .GetSliCriteria().(*BasicSli_Latency);  {
		return .Latency
	}
	return nil
}

type isBasicSli_SliCriteria interface {
	isBasicSli_SliCriteria()
}

Good service is defined to be the count of requests made to this service that return successfully.
	Availability *BasicSli_AvailabilityCriteria `protobuf:"bytes,2,opt,name=availability,proto3,oneof"`
}

Good service is defined to be the count of requests made to this service that are fast enough with respect to `latency.threshold`.
	Latency *BasicSli_LatencyCriteria `protobuf:"bytes,3,opt,name=latency,proto3,oneof"`
}

func (*BasicSli_Availability) () {}

func (*BasicSli_Latency) () {}
Range of numerical values, inclusive of `min` and exclusive of `max`. If the open range "< range.max" is desired, set `range.min = -infinity`. If the open range ">= range.min" is desired, set `range.max = infinity`.
Range minimum.
Range maximum.
	Max float64 `protobuf:"fixed64,2,opt,name=max,proto3" json:"max,omitempty"`
}

func ( *Range) () {
	* = Range{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[4]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Range) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Range) () {}

func ( *Range) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Range.ProtoReflect.Descriptor instead.
func (*Range) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{4}
}

func ( *Range) () float64 {
	if  != nil {
		return .Min
	}
	return 0
}

func ( *Range) () float64 {
	if  != nil {
		return .Max
	}
	return 0
}
Service Level Indicators for which atomic units of service are counted directly.
The means to compute a ratio of `good_service` to `total_service`. Types that are assignable to Method: *RequestBasedSli_GoodTotalRatio *RequestBasedSli_DistributionCut
Deprecated: Use RequestBasedSli.ProtoReflect.Descriptor instead.
func (*RequestBasedSli) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{5}
}

func ( *RequestBasedSli) () isRequestBasedSli_Method {
	if  != nil {
		return .Method
	}
	return nil
}

func ( *RequestBasedSli) () *TimeSeriesRatio {
	if ,  := .GetMethod().(*RequestBasedSli_GoodTotalRatio);  {
		return .GoodTotalRatio
	}
	return nil
}

func ( *RequestBasedSli) () *DistributionCut {
	if ,  := .GetMethod().(*RequestBasedSli_DistributionCut);  {
		return .DistributionCut
	}
	return nil
}

type isRequestBasedSli_Method interface {
	isRequestBasedSli_Method()
}

`good_total_ratio` is used when the ratio of `good_service` to `total_service` is computed from two `TimeSeries`.
	GoodTotalRatio *TimeSeriesRatio `protobuf:"bytes,1,opt,name=good_total_ratio,json=goodTotalRatio,proto3,oneof"`
}

`distribution_cut` is used when `good_service` is a count of values aggregated in a `Distribution` that fall into a good range. The `total_service` is the total count of all values aggregated in the `Distribution`.
	DistributionCut *DistributionCut `protobuf:"bytes,3,opt,name=distribution_cut,json=distributionCut,proto3,oneof"`
}

func (*RequestBasedSli_GoodTotalRatio) () {}

func (*RequestBasedSli_DistributionCut) () {}
A `TimeSeriesRatio` specifies two `TimeSeries` to use for computing the `good_service / total_service` ratio. The specified `TimeSeries` must have `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The `TimeSeriesRatio` must specify exactly two of good, bad, and total, and the relationship `good_service + bad_service = total_service` will be assumed.
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` quantifying good service provided. Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` quantifying bad service, either demanded service that was not provided or demanded service that was of inadequate quality. Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` quantifying total demanded service. Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
	TotalServiceFilter string `protobuf:"bytes,6,opt,name=total_service_filter,json=totalServiceFilter,proto3" json:"total_service_filter,omitempty"`
}

func ( *TimeSeriesRatio) () {
	* = TimeSeriesRatio{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[6]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *TimeSeriesRatio) () string {
	return protoimpl.X.MessageStringOf()
}

func (*TimeSeriesRatio) () {}

func ( *TimeSeriesRatio) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use TimeSeriesRatio.ProtoReflect.Descriptor instead.
func (*TimeSeriesRatio) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{6}
}

func ( *TimeSeriesRatio) () string {
	if  != nil {
		return .GoodServiceFilter
	}
	return ""
}

func ( *TimeSeriesRatio) () string {
	if  != nil {
		return .BadServiceFilter
	}
	return ""
}

func ( *TimeSeriesRatio) () string {
	if  != nil {
		return .TotalServiceFilter
	}
	return ""
}
A `DistributionCut` defines a `TimeSeries` and thresholds used for measuring good service and total service. The `TimeSeries` must have `ValueType = DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The computed `good_service` will be the count of values x in the `Distribution` such that `range.min <= x < range.max`.
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` aggregating values. Must have `ValueType = DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
Range of values considered "good." For a one-sided range, set one bound to an infinite value.
Deprecated: Use DistributionCut.ProtoReflect.Descriptor instead.
func (*DistributionCut) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{7}
}

func ( *DistributionCut) () string {
	if  != nil {
		return .DistributionFilter
	}
	return ""
}

func ( *DistributionCut) () *Range {
	if  != nil {
		return .Range
	}
	return nil
}
A `WindowsBasedSli` defines `good_service` as the count of time windows for which the provided service was of good quality. Criteria for determining if service was good are embedded in the `window_criterion`.
The criterion to use for evaluating window goodness. Types that are assignable to WindowCriterion: *WindowsBasedSli_GoodBadMetricFilter *WindowsBasedSli_GoodTotalRatioThreshold *WindowsBasedSli_MetricMeanInRange *WindowsBasedSli_MetricSumInRange
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
	WindowPeriod *durationpb.Duration `protobuf:"bytes,4,opt,name=window_period,json=windowPeriod,proto3" json:"window_period,omitempty"`
}

func ( *WindowsBasedSli) () {
	* = WindowsBasedSli{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[8]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *WindowsBasedSli) () string {
	return protoimpl.X.MessageStringOf()
}

func (*WindowsBasedSli) () {}

func ( *WindowsBasedSli) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
	GoodBadMetricFilter string `protobuf:"bytes,5,opt,name=good_bad_metric_filter,json=goodBadMetricFilter,proto3,oneof"`
}

A window is good if its `performance` is high enough.
	GoodTotalRatioThreshold *WindowsBasedSli_PerformanceThreshold `protobuf:"bytes,2,opt,name=good_total_ratio_threshold,json=goodTotalRatioThreshold,proto3,oneof"`
}

A window is good if the metric's value is in a good range, averaged across returned streams.
	MetricMeanInRange *WindowsBasedSli_MetricRange `protobuf:"bytes,6,opt,name=metric_mean_in_range,json=metricMeanInRange,proto3,oneof"`
}

A window is good if the metric's value is in a good range, summed across returned streams.
Deprecated: Use Service_Custom.ProtoReflect.Descriptor instead.
App Engine service. Learn more at https://cloud.google.com/appengine.
The ID of the App Engine module underlying this service. Corresponds to the `module_id` resource label in the `gae_app` monitored resource: https://cloud.google.com/monitoring/api/resources#tag_gae_app
	ModuleId string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"`
}

func ( *Service_AppEngine) () {
	* = Service_AppEngine{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[10]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Service_AppEngine) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Service_AppEngine) () {}

func ( *Service_AppEngine) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Service_AppEngine.ProtoReflect.Descriptor instead.
func (*Service_AppEngine) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 1}
}

func ( *Service_AppEngine) () string {
	if  != nil {
		return .ModuleId
	}
	return ""
}
Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
The name of the Cloud Endpoints service underlying this service. Corresponds to the `service` resource label in the `api` monitored resource: https://cloud.google.com/monitoring/api/resources#tag_api
Deprecated: Use Service_CloudEndpoints.ProtoReflect.Descriptor instead.
func (*Service_CloudEndpoints) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 2}
}

func ( *Service_CloudEndpoints) () string {
	if  != nil {
		return .Service
	}
	return ""
}
Istio service scoped to a single Kubernetes cluster. Learn more at http://istio.io. Deprecated: Do not use.
The location of the Kubernetes cluster in which this Istio service is defined. Corresponds to the `location` resource label in `k8s_cluster` resources.
The name of the Kubernetes cluster in which this Istio service is defined. Corresponds to the `cluster_name` resource label in `k8s_cluster` resources.
The namespace of the Istio service underlying this service. Corresponds to the `destination_service_namespace` metric label in Istio metrics.
The name of the Istio service underlying this service. Corresponds to the `destination_service_name` metric label in Istio metrics.
	ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
}

func ( *Service_ClusterIstio) () {
	* = Service_ClusterIstio{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[12]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Service_ClusterIstio) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Service_ClusterIstio) () {}

func ( *Service_ClusterIstio) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Service_ClusterIstio.ProtoReflect.Descriptor instead.
func (*Service_ClusterIstio) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 3}
}

func ( *Service_ClusterIstio) () string {
	if  != nil {
		return .Location
	}
	return ""
}

func ( *Service_ClusterIstio) () string {
	if  != nil {
		return .ClusterName
	}
	return ""
}

func ( *Service_ClusterIstio) () string {
	if  != nil {
		return .ServiceNamespace
	}
	return ""
}

func ( *Service_ClusterIstio) () string {
	if  != nil {
		return .ServiceName
	}
	return ""
}
Identifier for the mesh in which this Istio service is defined. Corresponds to the `mesh_uid` metric label in Istio metrics.
The namespace of the Istio service underlying this service. Corresponds to the `destination_service_namespace` metric label in Istio metrics.
The name of the Istio service underlying this service. Corresponds to the `destination_service_name` metric label in Istio metrics.
	ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
}

func ( *Service_MeshIstio) () {
	* = Service_MeshIstio{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[13]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Service_MeshIstio) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Service_MeshIstio) () {}

func ( *Service_MeshIstio) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Service_MeshIstio.ProtoReflect.Descriptor instead.
func (*Service_MeshIstio) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 4}
}

func ( *Service_MeshIstio) () string {
	if  != nil {
		return .MeshUid
	}
	return ""
}

func ( *Service_MeshIstio) () string {
	if  != nil {
		return .ServiceNamespace
	}
	return ""
}

func ( *Service_MeshIstio) () string {
	if  != nil {
		return .ServiceName
	}
	return ""
}
Configuration for how to query telemetry on a Service.
The full name of the resource that defines this service. Formatted as described in https://cloud.google.com/apis/design/resource_names.
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
}

func ( *Service_Telemetry) () {
	* = Service_Telemetry{}
	if protoimpl.UnsafeEnabled {
		 := &file_google_monitoring_v3_service_proto_msgTypes[14]
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		.StoreMessageInfo()
	}
}

func ( *Service_Telemetry) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Service_Telemetry) () {}

func ( *Service_Telemetry) () protoreflect.Message {
	 := &file_google_monitoring_v3_service_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled &&  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}
Deprecated: Use Service_Telemetry.ProtoReflect.Descriptor instead.
func (*Service_Telemetry) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 5}
}

func ( *Service_Telemetry) () string {
	if  != nil {
		return .ResourceName
	}
	return ""
}
Deprecated: Use BasicSli_AvailabilityCriteria.ProtoReflect.Descriptor instead.
Good service is defined to be the count of requests made to this service that return in no more than `threshold`.
Deprecated: Use BasicSli_LatencyCriteria.ProtoReflect.Descriptor instead.
A `PerformanceThreshold` is used when each window is good when that window has a sufficiently high `performance`.
The means, either a request-based SLI or a basic SLI, by which to compute performance over a window. Types that are assignable to Type: *WindowsBasedSli_PerformanceThreshold_Performance *WindowsBasedSli_PerformanceThreshold_BasicSliPerformance
If window `performance >= threshold`, the window is counted as good.
Deprecated: Use WindowsBasedSli_PerformanceThreshold.ProtoReflect.Descriptor instead.
`RequestBasedSli` to evaluate to judge window quality.
	Performance *RequestBasedSli `protobuf:"bytes,1,opt,name=performance,proto3,oneof"`
}

`BasicSli` to evaluate to judge window quality.
A `MetricRange` is used when each window is good when the value x of a single `TimeSeries` satisfies `range.min <= x < range.max`. The provided `TimeSeries` must have `ValueType = INT64` or `ValueType = DOUBLE` and `MetricKind = GAUGE`.
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying the `TimeSeries` to use for evaluating window quality.
Range of values considered "good." For a one-sided range, set one bound to an infinite value.
Deprecated: Use WindowsBasedSli_MetricRange.ProtoReflect.Descriptor instead.
func (*WindowsBasedSli_MetricRange) () ([]byte, []int) {
	return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8, 1}
}

func ( *WindowsBasedSli_MetricRange) () string {
	if  != nil {
		return .TimeSeries
	}
	return ""
}

func ( *WindowsBasedSli_MetricRange) () *Range {
	if  != nil {
		return .Range
	}
	return nil
}

var File_google_monitoring_v3_service_proto protoreflect.FileDescriptor

var file_google_monitoring_v3_service_proto_rawDesc = []byte{
	0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64,
	0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61,
	0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1,
	0x08, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21,
	0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f,
	0x6d, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x48, 0x00,
	0x52, 0x09, 0x61, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e,
	0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x48, 0x0a, 0x0a, 0x6d,
	0x65, 0x73, 0x68, 0x5f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d,
	0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x68,
	0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74,
	0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
	0x79, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x1a, 0x08, 0x0a, 0x06,
	0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x28, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67,
	0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64,
	0x1a, 0x2a, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0xa1, 0x01, 0x0a,
	0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a,
	0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x02, 0x18, 0x01,
	0x1a, 0x76, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x19, 0x0a,
	0x08, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x6d, 0x65, 0x73, 0x68, 0x55, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x30, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x65,
	0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0xa7, 0x01, 0xea, 0x41, 0xa3,
	0x01, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x12, 0x25, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x2f, 0x6f, 0x72, 0x67,
	0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61,
	0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x23, 0x66, 0x6f,
	0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x73,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x7d, 0x12, 0x01, 0x2a, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x22, 0xe0, 0x05, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f,
	0x72, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49,
	0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x0e,
	0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48,
	0x00, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
	0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x70, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72,
	0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64,
	0x61, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x34, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77,
	0x12, 0x14, 0x0a, 0x10, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02,
	0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, 0x01, 0x3a, 0xca,
	0x02, 0xea, 0x41, 0xc6, 0x02, 0x0a, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
	0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a,
	0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x56, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
	0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
	0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x60,
	0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f,
	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d,
	0x12, 0x54, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65,
	0x72, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76,
	0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x01, 0x2a, 0x20, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x70,
	0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12,
	0x3d, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53,
	0x6c, 0x69, 0x48, 0x00, 0x52, 0x08, 0x62, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12, 0x4c,
	0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x0d,
	0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f,
	0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12,
	0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a,
	0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63,
	0x53, 0x6c, 0x69, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69,
	0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65,
	0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
	0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63,
	0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x74,
	0x65, 0x6e, 0x63, 0x79, 0x1a, 0x16, 0x0a, 0x14, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x1a, 0x4a, 0x0a, 0x0f,
	0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12,
	0x37, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x74,
	0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x6c, 0x69, 0x5f,
	0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, 0x2b, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67,
	0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03,
	0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x51, 0x0a, 0x10, 0x67, 0x6f, 0x6f,
	0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53,
	0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x6f,
	0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x52, 0x0a, 0x10,
	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x75, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x69,
	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74, 0x48, 0x00, 0x52,
	0x0f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74,
	0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x54,
	0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2e,
	0x0a, 0x13, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x6f, 0x6f,
	0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c,
	0x0a, 0x12, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x64, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61,
	0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x75,
	0x0a, 0x0f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75,
	0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05,
	0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa4, 0x06, 0x0a, 0x0f, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
	0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x35, 0x0a, 0x16, 0x67, 0x6f, 0x6f,
	0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6f, 0x6f,
	0x64, 0x42, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x12, 0x79, 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64,
	0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x66,
	0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
	0x48, 0x00, 0x52, 0x17, 0x67, 0x6f, 0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74,
	0x69, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x64, 0x0a, 0x14, 0x6d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61,
	0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
	0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69,
	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x11,
	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x61, 0x6e, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67,
	0x65, 0x12, 0x62, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x5f,
	0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73,
	0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67,
	0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x75, 0x6d, 0x49, 0x6e,
	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f,
	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x50,
	0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xdd, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72,
	0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x49,
	0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e,
	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65,
	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x54, 0x0a, 0x15, 0x62, 0x61, 0x73,
	0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
	0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x73, 0x69,
	0x63, 0x53, 0x6c, 0x69, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x06, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x61, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
	0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72,
	0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x53,
	0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f,
	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67,
	0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x77, 0x69, 0x6e, 0x64,
	0x6f, 0x77, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x6e, 0x42, 0xce, 0x01, 0x0a,
	0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x42, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74,
	0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
	0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x3b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x33,
	0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c,
	0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x33, 0xea, 0x02, 0x1d,
	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4d,
	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_monitoring_v3_service_proto_rawDescOnce sync.Once
	file_google_monitoring_v3_service_proto_rawDescData = file_google_monitoring_v3_service_proto_rawDesc
)

func () []byte {
	file_google_monitoring_v3_service_proto_rawDescOnce.Do(func() {
		file_google_monitoring_v3_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_monitoring_v3_service_proto_rawDescData)
	})
	return file_google_monitoring_v3_service_proto_rawDescData
}

var file_google_monitoring_v3_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_monitoring_v3_service_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
var file_google_monitoring_v3_service_proto_goTypes = []interface{}{
	(ServiceLevelObjective_View)(0),              // 0: google.monitoring.v3.ServiceLevelObjective.View
	(*Service)(nil),                              // 1: google.monitoring.v3.Service
	(*ServiceLevelObjective)(nil),                // 2: google.monitoring.v3.ServiceLevelObjective
	(*ServiceLevelIndicator)(nil),                // 3: google.monitoring.v3.ServiceLevelIndicator
	(*BasicSli)(nil),                             // 4: google.monitoring.v3.BasicSli
	(*Range)(nil),                                // 5: google.monitoring.v3.Range
	(*RequestBasedSli)(nil),                      // 6: google.monitoring.v3.RequestBasedSli
	(*TimeSeriesRatio)(nil),                      // 7: google.monitoring.v3.TimeSeriesRatio
	(*DistributionCut)(nil),                      // 8: google.monitoring.v3.DistributionCut
	(*WindowsBasedSli)(nil),                      // 9: google.monitoring.v3.WindowsBasedSli
	(*Service_Custom)(nil),                       // 10: google.monitoring.v3.Service.Custom
	(*Service_AppEngine)(nil),                    // 11: google.monitoring.v3.Service.AppEngine
	(*Service_CloudEndpoints)(nil),               // 12: google.monitoring.v3.Service.CloudEndpoints
	(*Service_ClusterIstio)(nil),                 // 13: google.monitoring.v3.Service.ClusterIstio
	(*Service_MeshIstio)(nil),                    // 14: google.monitoring.v3.Service.MeshIstio
	(*Service_Telemetry)(nil),                    // 15: google.monitoring.v3.Service.Telemetry
	(*BasicSli_AvailabilityCriteria)(nil),        // 16: google.monitoring.v3.BasicSli.AvailabilityCriteria
	(*BasicSli_LatencyCriteria)(nil),             // 17: google.monitoring.v3.BasicSli.LatencyCriteria
	(*WindowsBasedSli_PerformanceThreshold)(nil), // 18: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold
	(*WindowsBasedSli_MetricRange)(nil),          // 19: google.monitoring.v3.WindowsBasedSli.MetricRange
	(*durationpb.Duration)(nil),                  // 20: google.protobuf.Duration
	(calendarperiod.CalendarPeriod)(0),           // 21: google.type.CalendarPeriod
}
var file_google_monitoring_v3_service_proto_depIdxs = []int32{
	10, // 0: google.monitoring.v3.Service.custom:type_name -> google.monitoring.v3.Service.Custom
	11, // 1: google.monitoring.v3.Service.app_engine:type_name -> google.monitoring.v3.Service.AppEngine
	12, // 2: google.monitoring.v3.Service.cloud_endpoints:type_name -> google.monitoring.v3.Service.CloudEndpoints
	13, // 3: google.monitoring.v3.Service.cluster_istio:type_name -> google.monitoring.v3.Service.ClusterIstio
	14, // 4: google.monitoring.v3.Service.mesh_istio:type_name -> google.monitoring.v3.Service.MeshIstio
	15, // 5: google.monitoring.v3.Service.telemetry:type_name -> google.monitoring.v3.Service.Telemetry
	3,  // 6: google.monitoring.v3.ServiceLevelObjective.service_level_indicator:type_name -> google.monitoring.v3.ServiceLevelIndicator
	20, // 7: google.monitoring.v3.ServiceLevelObjective.rolling_period:type_name -> google.protobuf.Duration
	21, // 8: google.monitoring.v3.ServiceLevelObjective.calendar_period:type_name -> google.type.CalendarPeriod
	4,  // 9: google.monitoring.v3.ServiceLevelIndicator.basic_sli:type_name -> google.monitoring.v3.BasicSli
	6,  // 10: google.monitoring.v3.ServiceLevelIndicator.request_based:type_name -> google.monitoring.v3.RequestBasedSli
	9,  // 11: google.monitoring.v3.ServiceLevelIndicator.windows_based:type_name -> google.monitoring.v3.WindowsBasedSli
	16, // 12: google.monitoring.v3.BasicSli.availability:type_name -> google.monitoring.v3.BasicSli.AvailabilityCriteria
	17, // 13: google.monitoring.v3.BasicSli.latency:type_name -> google.monitoring.v3.BasicSli.LatencyCriteria
	7,  // 14: google.monitoring.v3.RequestBasedSli.good_total_ratio:type_name -> google.monitoring.v3.TimeSeriesRatio
	8,  // 15: google.monitoring.v3.RequestBasedSli.distribution_cut:type_name -> google.monitoring.v3.DistributionCut
	5,  // 16: google.monitoring.v3.DistributionCut.range:type_name -> google.monitoring.v3.Range
	18, // 17: google.monitoring.v3.WindowsBasedSli.good_total_ratio_threshold:type_name -> google.monitoring.v3.WindowsBasedSli.PerformanceThreshold
	19, // 18: google.monitoring.v3.WindowsBasedSli.metric_mean_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange
	19, // 19: google.monitoring.v3.WindowsBasedSli.metric_sum_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange
	20, // 20: google.monitoring.v3.WindowsBasedSli.window_period:type_name -> google.protobuf.Duration
	20, // 21: google.monitoring.v3.BasicSli.LatencyCriteria.threshold:type_name -> google.protobuf.Duration
	6,  // 22: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.performance:type_name -> google.monitoring.v3.RequestBasedSli
	4,  // 23: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.basic_sli_performance:type_name -> google.monitoring.v3.BasicSli
	5,  // 24: google.monitoring.v3.WindowsBasedSli.MetricRange.range:type_name -> google.monitoring.v3.Range
	25, // [25:25] is the sub-list for method output_type
	25, // [25:25] is the sub-list for method input_type
	25, // [25:25] is the sub-list for extension type_name
	25, // [25:25] is the sub-list for extension extendee
	0,  // [0:25] is the sub-list for field type_name
}

func () { file_google_monitoring_v3_service_proto_init() }
func () {
	if File_google_monitoring_v3_service_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_google_monitoring_v3_service_proto_msgTypes[0].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[1].Exporter = func( interface{},  int) interface{} {
			switch  := .(*ServiceLevelObjective);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[2].Exporter = func( interface{},  int) interface{} {
			switch  := .(*ServiceLevelIndicator);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[3].Exporter = func( interface{},  int) interface{} {
			switch  := .(*BasicSli);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[4].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Range);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[5].Exporter = func( interface{},  int) interface{} {
			switch  := .(*RequestBasedSli);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[6].Exporter = func( interface{},  int) interface{} {
			switch  := .(*TimeSeriesRatio);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[7].Exporter = func( interface{},  int) interface{} {
			switch  := .(*DistributionCut);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[8].Exporter = func( interface{},  int) interface{} {
			switch  := .(*WindowsBasedSli);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[9].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_Custom);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[10].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_AppEngine);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[11].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_CloudEndpoints);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[12].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_ClusterIstio);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[13].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_MeshIstio);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[14].Exporter = func( interface{},  int) interface{} {
			switch  := .(*Service_Telemetry);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[15].Exporter = func( interface{},  int) interface{} {
			switch  := .(*BasicSli_AvailabilityCriteria);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[16].Exporter = func( interface{},  int) interface{} {
			switch  := .(*BasicSli_LatencyCriteria);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[17].Exporter = func( interface{},  int) interface{} {
			switch  := .(*WindowsBasedSli_PerformanceThreshold);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
		file_google_monitoring_v3_service_proto_msgTypes[18].Exporter = func( interface{},  int) interface{} {
			switch  := .(*WindowsBasedSli_MetricRange);  {
			case 0:
				return &.state
			case 1:
				return &.sizeCache
			case 2:
				return &.unknownFields
			default:
				return nil
			}
		}
	}
	file_google_monitoring_v3_service_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*Service_Custom_)(nil),
		(*Service_AppEngine_)(nil),
		(*Service_CloudEndpoints_)(nil),
		(*Service_ClusterIstio_)(nil),
		(*Service_MeshIstio_)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*ServiceLevelObjective_RollingPeriod)(nil),
		(*ServiceLevelObjective_CalendarPeriod)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*ServiceLevelIndicator_BasicSli)(nil),
		(*ServiceLevelIndicator_RequestBased)(nil),
		(*ServiceLevelIndicator_WindowsBased)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*BasicSli_Availability)(nil),
		(*BasicSli_Latency)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*RequestBasedSli_GoodTotalRatio)(nil),
		(*RequestBasedSli_DistributionCut)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*WindowsBasedSli_GoodBadMetricFilter)(nil),
		(*WindowsBasedSli_GoodTotalRatioThreshold)(nil),
		(*WindowsBasedSli_MetricMeanInRange)(nil),
		(*WindowsBasedSli_MetricSumInRange)(nil),
	}
	file_google_monitoring_v3_service_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*WindowsBasedSli_PerformanceThreshold_Performance)(nil),
		(*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance)(nil),
	}
	type  struct{}
	 := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf({}).PkgPath(),
			RawDescriptor: file_google_monitoring_v3_service_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   19,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_monitoring_v3_service_proto_goTypes,
		DependencyIndexes: file_google_monitoring_v3_service_proto_depIdxs,
		EnumInfos:         file_google_monitoring_v3_service_proto_enumTypes,
		MessageInfos:      file_google_monitoring_v3_service_proto_msgTypes,
	}.Build()
	File_google_monitoring_v3_service_proto = .File
	file_google_monitoring_v3_service_proto_rawDesc = nil
	file_google_monitoring_v3_service_proto_goTypes = nil
	file_google_monitoring_v3_service_proto_depIdxs = nil