// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/monitoring/dashboard/v1/metrics.proto

package dashboard

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Defines the possible types of spark chart supported by the `Scorecard`.
type SparkChartType int32

const (
	// Not allowed in well-formed requests.
	SparkChartType_SPARK_CHART_TYPE_UNSPECIFIED SparkChartType = 0
	// The sparkline will be rendered as a small line chart.
	SparkChartType_SPARK_LINE SparkChartType = 1
	// The sparkbar will be rendered as a small bar chart.
	SparkChartType_SPARK_BAR SparkChartType = 2
)

var SparkChartType_name = map[int32]string{
	0: "SPARK_CHART_TYPE_UNSPECIFIED",
	1: "SPARK_LINE",
	2: "SPARK_BAR",
}

var SparkChartType_value = map[string]int32{
	"SPARK_CHART_TYPE_UNSPECIFIED": 0,
	"SPARK_LINE":                   1,
	"SPARK_BAR":                    2,
}

func (x SparkChartType) String() string {
	return proto.EnumName(SparkChartType_name, int32(x))
}

func (SparkChartType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{0}
}

// The color suggests an interpretation to the viewer when actual values cross
// the threshold. Comments on each color provide UX guidance on how users can
// be expected to interpret a given state color.
type Threshold_Color int32

const (
	// Color is unspecified. Not allowed in well-formed requests.
	Threshold_COLOR_UNSPECIFIED Threshold_Color = 0
	// Crossing the threshold is "concerning" behavior.
	Threshold_YELLOW Threshold_Color = 4
	// Crossing the threshold is "emergency" behavior.
	Threshold_RED Threshold_Color = 6
)

var Threshold_Color_name = map[int32]string{
	0: "COLOR_UNSPECIFIED",
	4: "YELLOW",
	6: "RED",
}

var Threshold_Color_value = map[string]int32{
	"COLOR_UNSPECIFIED": 0,
	"YELLOW":            4,
	"RED":               6,
}

func (x Threshold_Color) String() string {
	return proto.EnumName(Threshold_Color_name, int32(x))
}

func (Threshold_Color) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{3, 0}
}

// Whether the threshold is considered crossed by an actual value above or
// below its threshold value.
type Threshold_Direction int32

const (
	// Not allowed in well-formed requests.
	Threshold_DIRECTION_UNSPECIFIED Threshold_Direction = 0
	// The threshold will be considered crossed if the actual value is above
	// the threshold value.
	Threshold_ABOVE Threshold_Direction = 1
	// The threshold will be considered crossed if the actual value is below
	// the threshold value.
	Threshold_BELOW Threshold_Direction = 2
)

var Threshold_Direction_name = map[int32]string{
	0: "DIRECTION_UNSPECIFIED",
	1: "ABOVE",
	2: "BELOW",
}

var Threshold_Direction_value = map[string]int32{
	"DIRECTION_UNSPECIFIED": 0,
	"ABOVE":                 1,
	"BELOW":                 2,
}

func (x Threshold_Direction) String() string {
	return proto.EnumName(Threshold_Direction_name, int32(x))
}

func (Threshold_Direction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{3, 1}
}

// TimeSeriesQuery collects the set of supported methods for querying time
// series data from the Stackdriver metrics API.
type TimeSeriesQuery struct {
	// Parameters needed to obtain data for the chart.
	//
	// Types that are valid to be assigned to Source:
	//	*TimeSeriesQuery_TimeSeriesFilter
	//	*TimeSeriesQuery_TimeSeriesFilterRatio
	Source isTimeSeriesQuery_Source `protobuf_oneof:"source"`
	// The unit of data contained in fetched time series. If non-empty, this
	// unit will override any unit that accompanies fetched data. The format is
	// the same as the
	// [`unit`](/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors)
	// field in `MetricDescriptor`.
	UnitOverride         string   `protobuf:"bytes,5,opt,name=unit_override,json=unitOverride,proto3" json:"unit_override,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TimeSeriesQuery) Reset()         { *m = TimeSeriesQuery{} }
func (m *TimeSeriesQuery) String() string { return proto.CompactTextString(m) }
func (*TimeSeriesQuery) ProtoMessage()    {}
func (*TimeSeriesQuery) Descriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{0}
}

func (m *TimeSeriesQuery) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TimeSeriesQuery.Unmarshal(m, b)
}
func (m *TimeSeriesQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TimeSeriesQuery.Marshal(b, m, deterministic)
}
func (m *TimeSeriesQuery) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimeSeriesQuery.Merge(m, src)
}
func (m *TimeSeriesQuery) XXX_Size() int {
	return xxx_messageInfo_TimeSeriesQuery.Size(m)
}
func (m *TimeSeriesQuery) XXX_DiscardUnknown() {
	xxx_messageInfo_TimeSeriesQuery.DiscardUnknown(m)
}

var xxx_messageInfo_TimeSeriesQuery proto.InternalMessageInfo

type isTimeSeriesQuery_Source interface {
	isTimeSeriesQuery_Source()
}

type TimeSeriesQuery_TimeSeriesFilter struct {
	TimeSeriesFilter *TimeSeriesFilter `protobuf:"bytes,1,opt,name=time_series_filter,json=timeSeriesFilter,proto3,oneof"`
}

type TimeSeriesQuery_TimeSeriesFilterRatio struct {
	TimeSeriesFilterRatio *TimeSeriesFilterRatio `protobuf:"bytes,2,opt,name=time_series_filter_ratio,json=timeSeriesFilterRatio,proto3,oneof"`
}

func (*TimeSeriesQuery_TimeSeriesFilter) isTimeSeriesQuery_Source() {}

func (*TimeSeriesQuery_TimeSeriesFilterRatio) isTimeSeriesQuery_Source() {}

func (m *TimeSeriesQuery) GetSource() isTimeSeriesQuery_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (m *TimeSeriesQuery) GetTimeSeriesFilter() *TimeSeriesFilter {
	if x, ok := m.GetSource().(*TimeSeriesQuery_TimeSeriesFilter); ok {
		return x.TimeSeriesFilter
	}
	return nil
}

func (m *TimeSeriesQuery) GetTimeSeriesFilterRatio() *TimeSeriesFilterRatio {
	if x, ok := m.GetSource().(*TimeSeriesQuery_TimeSeriesFilterRatio); ok {
		return x.TimeSeriesFilterRatio
	}
	return nil
}

func (m *TimeSeriesQuery) GetUnitOverride() string {
	if m != nil {
		return m.UnitOverride
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TimeSeriesQuery) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TimeSeriesQuery_TimeSeriesFilter)(nil),
		(*TimeSeriesQuery_TimeSeriesFilterRatio)(nil),
	}
}

// A filter that defines a subset of time series data that is displayed in a
// widget. Time series data is fetched using the
// [`ListTimeSeries`](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
// method.
type TimeSeriesFilter struct {
	// Required. The [monitoring filter](/monitoring/api/v3/filters) that identifies the
	// metric types, resources, and projects to query.
	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// By default, the raw time series data is returned.
	// Use this field to combine multiple time series for different views of the
	// data.
	Aggregation *Aggregation `protobuf:"bytes,2,opt,name=aggregation,proto3" json:"aggregation,omitempty"`
	// Selects an optional time series filter.
	//
	// Types that are valid to be assigned to OutputFilter:
	//	*TimeSeriesFilter_PickTimeSeriesFilter
	//	*TimeSeriesFilter_StatisticalTimeSeriesFilter
	OutputFilter         isTimeSeriesFilter_OutputFilter `protobuf_oneof:"output_filter"`
	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
	XXX_unrecognized     []byte                          `json:"-"`
	XXX_sizecache        int32                           `json:"-"`
}

func (m *TimeSeriesFilter) Reset()         { *m = TimeSeriesFilter{} }
func (m *TimeSeriesFilter) String() string { return proto.CompactTextString(m) }
func (*TimeSeriesFilter) ProtoMessage()    {}
func (*TimeSeriesFilter) Descriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{1}
}

func (m *TimeSeriesFilter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TimeSeriesFilter.Unmarshal(m, b)
}
func (m *TimeSeriesFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TimeSeriesFilter.Marshal(b, m, deterministic)
}
func (m *TimeSeriesFilter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimeSeriesFilter.Merge(m, src)
}
func (m *TimeSeriesFilter) XXX_Size() int {
	return xxx_messageInfo_TimeSeriesFilter.Size(m)
}
func (m *TimeSeriesFilter) XXX_DiscardUnknown() {
	xxx_messageInfo_TimeSeriesFilter.DiscardUnknown(m)
}

var xxx_messageInfo_TimeSeriesFilter proto.InternalMessageInfo

func (m *TimeSeriesFilter) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *TimeSeriesFilter) GetAggregation() *Aggregation {
	if m != nil {
		return m.Aggregation
	}
	return nil
}

type isTimeSeriesFilter_OutputFilter interface {
	isTimeSeriesFilter_OutputFilter()
}

type TimeSeriesFilter_PickTimeSeriesFilter struct {
	PickTimeSeriesFilter *PickTimeSeriesFilter `protobuf:"bytes,4,opt,name=pick_time_series_filter,json=pickTimeSeriesFilter,proto3,oneof"`
}

type TimeSeriesFilter_StatisticalTimeSeriesFilter struct {
	StatisticalTimeSeriesFilter *StatisticalTimeSeriesFilter `protobuf:"bytes,5,opt,name=statistical_time_series_filter,json=statisticalTimeSeriesFilter,proto3,oneof"`
}

func (*TimeSeriesFilter_PickTimeSeriesFilter) isTimeSeriesFilter_OutputFilter() {}

func (*TimeSeriesFilter_StatisticalTimeSeriesFilter) isTimeSeriesFilter_OutputFilter() {}

func (m *TimeSeriesFilter) GetOutputFilter() isTimeSeriesFilter_OutputFilter {
	if m != nil {
		return m.OutputFilter
	}
	return nil
}

func (m *TimeSeriesFilter) GetPickTimeSeriesFilter() *PickTimeSeriesFilter {
	if x, ok := m.GetOutputFilter().(*TimeSeriesFilter_PickTimeSeriesFilter); ok {
		return x.PickTimeSeriesFilter
	}
	return nil
}

func (m *TimeSeriesFilter) GetStatisticalTimeSeriesFilter() *StatisticalTimeSeriesFilter {
	if x, ok := m.GetOutputFilter().(*TimeSeriesFilter_StatisticalTimeSeriesFilter); ok {
		return x.StatisticalTimeSeriesFilter
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TimeSeriesFilter) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TimeSeriesFilter_PickTimeSeriesFilter)(nil),
		(*TimeSeriesFilter_StatisticalTimeSeriesFilter)(nil),
	}
}

// A pair of time series filters that define a ratio computation. The output
// time series is the pair-wise division of each aligned element from the
// numerator and denominator time series.
type TimeSeriesFilterRatio struct {
	// The numerator of the ratio.
	Numerator *TimeSeriesFilterRatio_RatioPart `protobuf:"bytes,1,opt,name=numerator,proto3" json:"numerator,omitempty"`
	// The denominator of the ratio.
	Denominator *TimeSeriesFilterRatio_RatioPart `protobuf:"bytes,2,opt,name=denominator,proto3" json:"denominator,omitempty"`
	// Apply a second aggregation after the ratio is computed.
	SecondaryAggregation *Aggregation `protobuf:"bytes,3,opt,name=secondary_aggregation,json=secondaryAggregation,proto3" json:"secondary_aggregation,omitempty"`
	// Selects an optional filter that is applied to the time series after
	// computing the ratio.
	//
	// Types that are valid to be assigned to OutputFilter:
	//	*TimeSeriesFilterRatio_PickTimeSeriesFilter
	//	*TimeSeriesFilterRatio_StatisticalTimeSeriesFilter
	OutputFilter         isTimeSeriesFilterRatio_OutputFilter `protobuf_oneof:"output_filter"`
	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
	XXX_unrecognized     []byte                               `json:"-"`
	XXX_sizecache        int32                                `json:"-"`
}

func (m *TimeSeriesFilterRatio) Reset()         { *m = TimeSeriesFilterRatio{} }
func (m *TimeSeriesFilterRatio) String() string { return proto.CompactTextString(m) }
func (*TimeSeriesFilterRatio) ProtoMessage()    {}
func (*TimeSeriesFilterRatio) Descriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{2}
}

func (m *TimeSeriesFilterRatio) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TimeSeriesFilterRatio.Unmarshal(m, b)
}
func (m *TimeSeriesFilterRatio) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TimeSeriesFilterRatio.Marshal(b, m, deterministic)
}
func (m *TimeSeriesFilterRatio) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimeSeriesFilterRatio.Merge(m, src)
}
func (m *TimeSeriesFilterRatio) XXX_Size() int {
	return xxx_messageInfo_TimeSeriesFilterRatio.Size(m)
}
func (m *TimeSeriesFilterRatio) XXX_DiscardUnknown() {
	xxx_messageInfo_TimeSeriesFilterRatio.DiscardUnknown(m)
}

var xxx_messageInfo_TimeSeriesFilterRatio proto.InternalMessageInfo

func (m *TimeSeriesFilterRatio) GetNumerator() *TimeSeriesFilterRatio_RatioPart {
	if m != nil {
		return m.Numerator
	}
	return nil
}

func (m *TimeSeriesFilterRatio) GetDenominator() *TimeSeriesFilterRatio_RatioPart {
	if m != nil {
		return m.Denominator
	}
	return nil
}

func (m *TimeSeriesFilterRatio) GetSecondaryAggregation() *Aggregation {
	if m != nil {
		return m.SecondaryAggregation
	}
	return nil
}

type isTimeSeriesFilterRatio_OutputFilter interface {
	isTimeSeriesFilterRatio_OutputFilter()
}

type TimeSeriesFilterRatio_PickTimeSeriesFilter struct {
	PickTimeSeriesFilter *PickTimeSeriesFilter `protobuf:"bytes,4,opt,name=pick_time_series_filter,json=pickTimeSeriesFilter,proto3,oneof"`
}

type TimeSeriesFilterRatio_StatisticalTimeSeriesFilter struct {
	StatisticalTimeSeriesFilter *StatisticalTimeSeriesFilter `protobuf:"bytes,5,opt,name=statistical_time_series_filter,json=statisticalTimeSeriesFilter,proto3,oneof"`
}

func (*TimeSeriesFilterRatio_PickTimeSeriesFilter) isTimeSeriesFilterRatio_OutputFilter() {}

func (*TimeSeriesFilterRatio_StatisticalTimeSeriesFilter) isTimeSeriesFilterRatio_OutputFilter() {}

func (m *TimeSeriesFilterRatio) GetOutputFilter() isTimeSeriesFilterRatio_OutputFilter {
	if m != nil {
		return m.OutputFilter
	}
	return nil
}

func (m *TimeSeriesFilterRatio) GetPickTimeSeriesFilter() *PickTimeSeriesFilter {
	if x, ok := m.GetOutputFilter().(*TimeSeriesFilterRatio_PickTimeSeriesFilter); ok {
		return x.PickTimeSeriesFilter
	}
	return nil
}

func (m *TimeSeriesFilterRatio) GetStatisticalTimeSeriesFilter() *StatisticalTimeSeriesFilter {
	if x, ok := m.GetOutputFilter().(*TimeSeriesFilterRatio_StatisticalTimeSeriesFilter); ok {
		return x.StatisticalTimeSeriesFilter
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TimeSeriesFilterRatio) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TimeSeriesFilterRatio_PickTimeSeriesFilter)(nil),
		(*TimeSeriesFilterRatio_StatisticalTimeSeriesFilter)(nil),
	}
}

// Describes a query to build the numerator or denominator of a
// TimeSeriesFilterRatio.
type TimeSeriesFilterRatio_RatioPart struct {
	// Required. The [monitoring filter](/monitoring/api/v3/filters) that identifies the
	// metric types, resources, and projects to query.
	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// By default, the raw time series data is returned.
	// Use this field to combine multiple time series for different views of the
	// data.
	Aggregation          *Aggregation `protobuf:"bytes,2,opt,name=aggregation,proto3" json:"aggregation,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *TimeSeriesFilterRatio_RatioPart) Reset()         { *m = TimeSeriesFilterRatio_RatioPart{} }
func (m *TimeSeriesFilterRatio_RatioPart) String() string { return proto.CompactTextString(m) }
func (*TimeSeriesFilterRatio_RatioPart) ProtoMessage()    {}
func (*TimeSeriesFilterRatio_RatioPart) Descriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{2, 0}
}

func (m *TimeSeriesFilterRatio_RatioPart) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TimeSeriesFilterRatio_RatioPart.Unmarshal(m, b)
}
func (m *TimeSeriesFilterRatio_RatioPart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TimeSeriesFilterRatio_RatioPart.Marshal(b, m, deterministic)
}
func (m *TimeSeriesFilterRatio_RatioPart) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimeSeriesFilterRatio_RatioPart.Merge(m, src)
}
func (m *TimeSeriesFilterRatio_RatioPart) XXX_Size() int {
	return xxx_messageInfo_TimeSeriesFilterRatio_RatioPart.Size(m)
}
func (m *TimeSeriesFilterRatio_RatioPart) XXX_DiscardUnknown() {
	xxx_messageInfo_TimeSeriesFilterRatio_RatioPart.DiscardUnknown(m)
}

var xxx_messageInfo_TimeSeriesFilterRatio_RatioPart proto.InternalMessageInfo

func (m *TimeSeriesFilterRatio_RatioPart) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *TimeSeriesFilterRatio_RatioPart) GetAggregation() *Aggregation {
	if m != nil {
		return m.Aggregation
	}
	return nil
}

// Defines a threshold for categorizing time series values.
type Threshold struct {
	// A label for the threshold.
	Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
	// The value of the threshold. The value should be defined in the native scale
	// of the metric.
	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
	// The state color for this threshold. Color is not allowed in a XyChart.
	Color Threshold_Color `protobuf:"varint,3,opt,name=color,proto3,enum=google.monitoring.dashboard.v1.Threshold_Color" json:"color,omitempty"`
	// The direction for the current threshold. Direction is not allowed in a
	// XyChart.
	Direction            Threshold_Direction `protobuf:"varint,4,opt,name=direction,proto3,enum=google.monitoring.dashboard.v1.Threshold_Direction" json:"direction,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *Threshold) Reset()         { *m = Threshold{} }
func (m *Threshold) String() string { return proto.CompactTextString(m) }
func (*Threshold) ProtoMessage()    {}
func (*Threshold) Descriptor() ([]byte, []int) {
	return fileDescriptor_6380832df6588178, []int{3}
}

func (m *Threshold) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Threshold.Unmarshal(m, b)
}
func (m *Threshold) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Threshold.Marshal(b, m, deterministic)
}
func (m *Threshold) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Threshold.Merge(m, src)
}
func (m *Threshold) XXX_Size() int {
	return xxx_messageInfo_Threshold.Size(m)
}
func (m *Threshold) XXX_DiscardUnknown() {
	xxx_messageInfo_Threshold.DiscardUnknown(m)
}

var xxx_messageInfo_Threshold proto.InternalMessageInfo

func (m *Threshold) GetLabel() string {
	if m != nil {
		return m.Label
	}
	return ""
}

func (m *Threshold) GetValue() float64 {
	if m != nil {
		return m.Value
	}
	return 0
}

func (m *Threshold) GetColor() Threshold_Color {
	if m != nil {
		return m.Color
	}
	return Threshold_COLOR_UNSPECIFIED
}

func (m *Threshold) GetDirection() Threshold_Direction {
	if m != nil {
		return m.Direction
	}
	return Threshold_DIRECTION_UNSPECIFIED
}

func init() {
	proto.RegisterEnum("google.monitoring.dashboard.v1.SparkChartType", SparkChartType_name, SparkChartType_value)
	proto.RegisterEnum("google.monitoring.dashboard.v1.Threshold_Color", Threshold_Color_name, Threshold_Color_value)
	proto.RegisterEnum("google.monitoring.dashboard.v1.Threshold_Direction", Threshold_Direction_name, Threshold_Direction_value)
	proto.RegisterType((*TimeSeriesQuery)(nil), "google.monitoring.dashboard.v1.TimeSeriesQuery")
	proto.RegisterType((*TimeSeriesFilter)(nil), "google.monitoring.dashboard.v1.TimeSeriesFilter")
	proto.RegisterType((*TimeSeriesFilterRatio)(nil), "google.monitoring.dashboard.v1.TimeSeriesFilterRatio")
	proto.RegisterType((*TimeSeriesFilterRatio_RatioPart)(nil), "google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart")
	proto.RegisterType((*Threshold)(nil), "google.monitoring.dashboard.v1.Threshold")
}

func init() {
	proto.RegisterFile("google/monitoring/dashboard/v1/metrics.proto", fileDescriptor_6380832df6588178)
}

var fileDescriptor_6380832df6588178 = []byte{
	// 740 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x95, 0xdf, 0x6e, 0xe3, 0x44,
	0x14, 0xc6, 0x6b, 0xa7, 0x09, 0xf8, 0x74, 0xdb, 0x0d, 0xa3, 0x46, 0x84, 0x2e, 0x5a, 0xaa, 0x70,
	0x53, 0xb1, 0xc8, 0xa6, 0x5b, 0xb8, 0xf1, 0x22, 0xa1, 0x38, 0xf1, 0xb6, 0x11, 0x69, 0x93, 0x4e,
	0x42, 0x51, 0x91, 0x90, 0x3b, 0xb1, 0xa7, 0xce, 0xa8, 0xb6, 0xc7, 0x1a, 0x8f, 0x83, 0x7a, 0x0b,
	0xaf, 0xc0, 0x43, 0xf0, 0x0a, 0xdc, 0xf3, 0x20, 0x5c, 0xf3, 0x14, 0xc8, 0x76, 0xfe, 0x29, 0x4d,
	0x09, 0x45, 0x88, 0x1b, 0x6e, 0xa2, 0xcc, 0x99, 0xf3, 0xfd, 0xbe, 0xf9, 0xf3, 0x59, 0x03, 0x9f,
	0xfa, 0x9c, 0xfb, 0x01, 0x35, 0x42, 0x1e, 0x31, 0xc9, 0x05, 0x8b, 0x7c, 0xc3, 0x23, 0xc9, 0x78,
	0xc4, 0x89, 0xf0, 0x8c, 0xc9, 0xb1, 0x11, 0x52, 0x29, 0x98, 0x9b, 0xe8, 0xb1, 0xe0, 0x92, 0xa3,
	0x97, 0x45, 0xb7, 0xbe, 0xe8, 0xd6, 0xe7, 0xdd, 0xfa, 0xe4, 0xf8, 0xe0, 0xa3, 0x29, 0x8d, 0xc4,
	0xcc, 0xb8, 0x65, 0x34, 0xf0, 0x9c, 0x11, 0x1d, 0x93, 0x09, 0xe3, 0xa2, 0x00, 0x1c, 0xbc, 0xda,
	0x60, 0xe7, 0xf2, 0x30, 0xe4, 0x51, 0xd1, 0xdc, 0xf8, 0x59, 0x85, 0xe7, 0x43, 0x16, 0xd2, 0x01,
	0x15, 0x8c, 0x26, 0x97, 0x29, 0x15, 0xf7, 0xe8, 0x06, 0x90, 0x64, 0x21, 0x75, 0x92, 0xbc, 0xe6,
	0xdc, 0xb2, 0x40, 0x52, 0x51, 0x57, 0x0e, 0x95, 0xa3, 0x9d, 0xd7, 0x9f, 0xe9, 0x7f, 0xbd, 0x3c,
	0x7d, 0x01, 0x7b, 0x9b, 0xeb, 0xce, 0xb6, 0x70, 0x55, 0xae, 0xd4, 0x50, 0x0c, 0xf5, 0x87, 0x0e,
	0x8e, 0x20, 0x92, 0xf1, 0xba, 0x9a, 0xfb, 0x7c, 0xf1, 0x54, 0x1f, 0x9c, 0x89, 0xcf, 0xb6, 0x70,
	0x4d, 0xae, 0x9b, 0x40, 0x1f, 0xc3, 0x6e, 0x1a, 0x31, 0xe9, 0xf0, 0x09, 0x15, 0x82, 0x79, 0xb4,
	0x5e, 0x3e, 0x54, 0x8e, 0x34, 0xfc, 0x2c, 0x2b, 0xf6, 0xa6, 0x35, 0xeb, 0x5d, 0xa8, 0x24, 0x3c,
	0x15, 0x2e, 0x6d, 0xfc, 0x54, 0x82, 0xea, 0xaa, 0x03, 0x7a, 0x01, 0x95, 0xa5, 0xb3, 0xd0, 0xac,
	0xd2, 0xef, 0x4d, 0x15, 0x4f, 0x4b, 0xe8, 0x1c, 0x76, 0x88, 0xef, 0x0b, 0xea, 0x67, 0x76, 0xd1,
	0x74, 0x17, 0xaf, 0x36, 0xed, 0xa2, 0xb9, 0x90, 0xe0, 0x65, 0x3d, 0x0a, 0xe1, 0xfd, 0x98, 0xb9,
	0x77, 0xce, 0x9a, 0x8b, 0xd8, 0xce, 0xd1, 0x9f, 0x6f, 0x42, 0xf7, 0x99, 0x7b, 0xb7, 0xe6, 0x32,
	0xf6, 0xe3, 0x35, 0x75, 0xf4, 0xa3, 0x02, 0x2f, 0x13, 0x49, 0x24, 0x4b, 0x24, 0x73, 0x49, 0xb0,
	0xce, 0xb6, 0x9c, 0xdb, 0xbe, 0xd9, 0x64, 0x3b, 0x58, 0x50, 0xd6, 0xb8, 0xbf, 0x48, 0x1e, 0x9f,
	0xb6, 0x9e, 0xc3, 0x2e, 0x4f, 0x65, 0x9c, 0xca, 0xa9, 0x65, 0xe3, 0xd7, 0x32, 0xd4, 0xd6, 0xde,
	0x33, 0xfa, 0x1e, 0xb4, 0x28, 0x0d, 0xa9, 0x20, 0x92, 0xcf, 0x92, 0xf9, 0xd5, 0x3f, 0x4a, 0x8c,
	0x9e, 0xff, 0xf6, 0x89, 0x90, 0x78, 0x41, 0x44, 0x04, 0x76, 0x3c, 0x1a, 0xf1, 0x90, 0x45, 0xb9,
	0x81, 0xfa, 0xef, 0x18, 0x2c, 0x33, 0xd1, 0x0d, 0xd4, 0x12, 0xea, 0xf2, 0xc8, 0x23, 0xe2, 0xde,
	0x59, 0x4e, 0x4e, 0xe9, 0xe9, 0xc9, 0xd9, 0x9f, 0x93, 0x9a, 0xff, 0xef, 0x08, 0x1d, 0xfc, 0x00,
	0xda, 0xfc, 0xbc, 0xff, 0xcb, 0xef, 0xf5, 0x61, 0x76, 0x7f, 0x53, 0x41, 0x1b, 0x8e, 0x05, 0x4d,
	0xc6, 0x3c, 0xf0, 0xd0, 0x3e, 0x94, 0x03, 0x32, 0xa2, 0x41, 0xb1, 0x12, 0x5c, 0x0c, 0xb2, 0xea,
	0x84, 0x04, 0x29, 0xcd, 0xdd, 0x15, 0x5c, 0x0c, 0x90, 0x0d, 0x65, 0x97, 0x07, 0x5c, 0xe4, 0x49,
	0xd8, 0x7b, 0x6d, 0x6c, 0x8c, 0xdd, 0xcc, 0x45, 0x6f, 0x65, 0x32, 0x5c, 0xa8, 0xd1, 0x25, 0x68,
	0x1e, 0x13, 0xd4, 0xcd, 0xb7, 0xb7, 0x9d, 0xa3, 0x4e, 0xfe, 0x3e, 0xaa, 0x3d, 0x93, 0xe2, 0x05,
	0xa5, 0x71, 0x02, 0xe5, 0xdc, 0x02, 0xd5, 0xe0, 0xbd, 0x56, 0xaf, 0xdb, 0xc3, 0xce, 0x37, 0x17,
	0x83, 0xbe, 0xdd, 0xea, 0xbc, 0xed, 0xd8, 0xed, 0xea, 0x16, 0x02, 0xa8, 0x5c, 0xdb, 0xdd, 0x6e,
	0xef, 0xdb, 0xea, 0x36, 0x7a, 0x07, 0x4a, 0xd8, 0x6e, 0x57, 0x2b, 0x8d, 0x2f, 0x41, 0x9b, 0xc3,
	0xd0, 0x07, 0x50, 0x6b, 0x77, 0xb0, 0xdd, 0x1a, 0x76, 0x7a, 0x17, 0x2b, 0x62, 0x0d, 0xca, 0x4d,
	0xab, 0x77, 0x65, 0x57, 0x95, 0xec, 0xaf, 0x65, 0x67, 0x18, 0xf5, 0x93, 0x4b, 0xd8, 0x1b, 0xc4,
	0x44, 0xdc, 0xb5, 0xc6, 0x44, 0xc8, 0xe1, 0x7d, 0x4c, 0xd1, 0x21, 0x7c, 0x38, 0xe8, 0x37, 0xf1,
	0xd7, 0x4e, 0xeb, 0xac, 0x89, 0x87, 0xce, 0xf0, 0xba, 0x6f, 0xaf, 0x90, 0xf6, 0x00, 0x8a, 0x8e,
	0x6e, 0xe7, 0x22, 0xc3, 0xed, 0x82, 0x56, 0x8c, 0xad, 0x26, 0xae, 0xaa, 0xd6, 0x2f, 0x0a, 0x34,
	0x5c, 0x1e, 0x6e, 0x38, 0x0b, 0xeb, 0xd9, 0x79, 0xf1, 0x2c, 0xf7, 0xb3, 0x77, 0xb2, 0xaf, 0x7c,
	0x77, 0x3a, 0xed, 0xf7, 0x79, 0x40, 0x22, 0x5f, 0xe7, 0xc2, 0x37, 0x7c, 0x1a, 0xe5, 0xaf, 0xa8,
	0x51, 0x4c, 0x91, 0x98, 0x25, 0x8f, 0xbd, 0xba, 0x6f, 0xe6, 0x83, 0x3f, 0xd4, 0xa3, 0xd3, 0xbc,
	0xdd, 0x34, 0x5b, 0x01, 0x4f, 0x3d, 0xd3, 0x3c, 0x9f, 0x4b, 0x4c, 0xb3, 0x3d, 0x6b, 0x33, 0xcd,
	0xab, 0xe3, 0x51, 0x25, 0xc7, 0x9f, 0xfc, 0x19, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x2e, 0xb1, 0xab,
	0x42, 0x08, 0x00, 0x00,
}
