// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v4.25.1
// source: openmetrics_data_model.proto

// The OpenMetrics protobuf schema which defines the protobuf wire format.
// Ensure to interpret "required" as semantically required for a valid message.
// All string fields MUST be UTF-8 encoded strings.

package openmetrics

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// The type of a Metric.
type MetricType int32

const (
	// Unknown must use unknown MetricPoint values.
	MetricType_UNKNOWN MetricType = 0
	// Gauge must use gauge MetricPoint values.
	MetricType_GAUGE MetricType = 1
	// Counter must use counter MetricPoint values.
	MetricType_COUNTER MetricType = 2
	// State set must use state set MetricPoint values.
	MetricType_STATE_SET MetricType = 3
	// Info must use info MetricPoint values.
	MetricType_INFO MetricType = 4
	// Histogram must use histogram value MetricPoint values.
	MetricType_HISTOGRAM MetricType = 5
	// Gauge histogram must use histogram value MetricPoint values.
	MetricType_GAUGE_HISTOGRAM MetricType = 6
	// Summary quantiles must use summary value MetricPoint values.
	MetricType_SUMMARY MetricType = 7
)

// Enum value maps for MetricType.
var (
	MetricType_name = map[int32]string{
		0: "UNKNOWN",
		1: "GAUGE",
		2: "COUNTER",
		3: "STATE_SET",
		4: "INFO",
		5: "HISTOGRAM",
		6: "GAUGE_HISTOGRAM",
		7: "SUMMARY",
	}
	MetricType_value = map[string]int32{
		"UNKNOWN":         0,
		"GAUGE":           1,
		"COUNTER":         2,
		"STATE_SET":       3,
		"INFO":            4,
		"HISTOGRAM":       5,
		"GAUGE_HISTOGRAM": 6,
		"SUMMARY":         7,
	}
)

func (x MetricType) Enum() *MetricType {
	p := new(MetricType)
	*p = x
	return p
}

func (x MetricType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (MetricType) Descriptor() protoreflect.EnumDescriptor {
	return file_openmetrics_data_model_proto_enumTypes[0].Descriptor()
}

func (MetricType) Type() protoreflect.EnumType {
	return &file_openmetrics_data_model_proto_enumTypes[0]
}

func (x MetricType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use MetricType.Descriptor instead.
func (MetricType) EnumDescriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{0}
}

// The top-level container type that is encoded and sent over the wire.
type MetricSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Each MetricFamily has one or more MetricPoints for a single Metric.
	MetricFamilies []*MetricFamily `protobuf:"bytes,1,rep,name=metric_families,json=metricFamilies,proto3" json:"metric_families,omitempty"`
}

func (x *MetricSet) Reset() {
	*x = MetricSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MetricSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MetricSet) ProtoMessage() {}

func (x *MetricSet) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MetricSet.ProtoReflect.Descriptor instead.
func (*MetricSet) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{0}
}

func (x *MetricSet) GetMetricFamilies() []*MetricFamily {
	if x != nil {
		return x.MetricFamilies
	}
	return nil
}

// One or more Metrics for a single MetricFamily, where each Metric
// has one or more MetricPoints.
type MetricFamily struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional.
	Type MetricType `protobuf:"varint,2,opt,name=type,proto3,enum=openmetrics.MetricType" json:"type,omitempty"`
	// Optional.
	Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
	// Optional.
	Help string `protobuf:"bytes,4,opt,name=help,proto3" json:"help,omitempty"`
	// Optional.
	Metrics []*Metric `protobuf:"bytes,5,rep,name=metrics,proto3" json:"metrics,omitempty"`
}

func (x *MetricFamily) Reset() {
	*x = MetricFamily{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MetricFamily) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MetricFamily) ProtoMessage() {}

func (x *MetricFamily) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MetricFamily.ProtoReflect.Descriptor instead.
func (*MetricFamily) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{1}
}

func (x *MetricFamily) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *MetricFamily) GetType() MetricType {
	if x != nil {
		return x.Type
	}
	return MetricType_UNKNOWN
}

func (x *MetricFamily) GetUnit() string {
	if x != nil {
		return x.Unit
	}
	return ""
}

func (x *MetricFamily) GetHelp() string {
	if x != nil {
		return x.Help
	}
	return ""
}

func (x *MetricFamily) GetMetrics() []*Metric {
	if x != nil {
		return x.Metrics
	}
	return nil
}

// A single metric with a unique set of labels within a metric family.
type Metric struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional.
	Labels []*Label `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"`
	// Optional.
	MetricPoints []*MetricPoint `protobuf:"bytes,2,rep,name=metric_points,json=metricPoints,proto3" json:"metric_points,omitempty"`
}

func (x *Metric) Reset() {
	*x = Metric{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Metric) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Metric) ProtoMessage() {}

func (x *Metric) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
func (*Metric) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{2}
}

func (x *Metric) GetLabels() []*Label {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *Metric) GetMetricPoints() []*MetricPoint {
	if x != nil {
		return x.MetricPoints
	}
	return nil
}

// A name-value pair. These are used in multiple places: identifying
// timeseries, value of INFO metrics, and exemplars in Histograms.
type Label struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required.
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *Label) Reset() {
	*x = Label{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Label) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Label) ProtoMessage() {}

func (x *Label) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Label.ProtoReflect.Descriptor instead.
func (*Label) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{3}
}

func (x *Label) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Label) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// A MetricPoint in a Metric.
type MetricPoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	//
	// Types that are assignable to Value:
	//
	//	*MetricPoint_UnknownValue
	//	*MetricPoint_GaugeValue
	//	*MetricPoint_CounterValue
	//	*MetricPoint_HistogramValue
	//	*MetricPoint_StateSetValue
	//	*MetricPoint_InfoValue
	//	*MetricPoint_SummaryValue
	Value isMetricPoint_Value `protobuf_oneof:"value"`
	// Optional.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *MetricPoint) Reset() {
	*x = MetricPoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MetricPoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MetricPoint) ProtoMessage() {}

func (x *MetricPoint) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MetricPoint.ProtoReflect.Descriptor instead.
func (*MetricPoint) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{4}
}

func (m *MetricPoint) GetValue() isMetricPoint_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *MetricPoint) GetUnknownValue() *UnknownValue {
	if x, ok := x.GetValue().(*MetricPoint_UnknownValue); ok {
		return x.UnknownValue
	}
	return nil
}

func (x *MetricPoint) GetGaugeValue() *GaugeValue {
	if x, ok := x.GetValue().(*MetricPoint_GaugeValue); ok {
		return x.GaugeValue
	}
	return nil
}

func (x *MetricPoint) GetCounterValue() *CounterValue {
	if x, ok := x.GetValue().(*MetricPoint_CounterValue); ok {
		return x.CounterValue
	}
	return nil
}

func (x *MetricPoint) GetHistogramValue() *HistogramValue {
	if x, ok := x.GetValue().(*MetricPoint_HistogramValue); ok {
		return x.HistogramValue
	}
	return nil
}

func (x *MetricPoint) GetStateSetValue() *StateSetValue {
	if x, ok := x.GetValue().(*MetricPoint_StateSetValue); ok {
		return x.StateSetValue
	}
	return nil
}

func (x *MetricPoint) GetInfoValue() *InfoValue {
	if x, ok := x.GetValue().(*MetricPoint_InfoValue); ok {
		return x.InfoValue
	}
	return nil
}

func (x *MetricPoint) GetSummaryValue() *SummaryValue {
	if x, ok := x.GetValue().(*MetricPoint_SummaryValue); ok {
		return x.SummaryValue
	}
	return nil
}

func (x *MetricPoint) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

type isMetricPoint_Value interface {
	isMetricPoint_Value()
}

type MetricPoint_UnknownValue struct {
	UnknownValue *UnknownValue `protobuf:"bytes,1,opt,name=unknown_value,json=unknownValue,proto3,oneof"`
}

type MetricPoint_GaugeValue struct {
	GaugeValue *GaugeValue `protobuf:"bytes,2,opt,name=gauge_value,json=gaugeValue,proto3,oneof"`
}

type MetricPoint_CounterValue struct {
	CounterValue *CounterValue `protobuf:"bytes,3,opt,name=counter_value,json=counterValue,proto3,oneof"`
}

type MetricPoint_HistogramValue struct {
	HistogramValue *HistogramValue `protobuf:"bytes,4,opt,name=histogram_value,json=histogramValue,proto3,oneof"`
}

type MetricPoint_StateSetValue struct {
	StateSetValue *StateSetValue `protobuf:"bytes,5,opt,name=state_set_value,json=stateSetValue,proto3,oneof"`
}

type MetricPoint_InfoValue struct {
	InfoValue *InfoValue `protobuf:"bytes,6,opt,name=info_value,json=infoValue,proto3,oneof"`
}

type MetricPoint_SummaryValue struct {
	SummaryValue *SummaryValue `protobuf:"bytes,7,opt,name=summary_value,json=summaryValue,proto3,oneof"`
}

func (*MetricPoint_UnknownValue) isMetricPoint_Value() {}

func (*MetricPoint_GaugeValue) isMetricPoint_Value() {}

func (*MetricPoint_CounterValue) isMetricPoint_Value() {}

func (*MetricPoint_HistogramValue) isMetricPoint_Value() {}

func (*MetricPoint_StateSetValue) isMetricPoint_Value() {}

func (*MetricPoint_InfoValue) isMetricPoint_Value() {}

func (*MetricPoint_SummaryValue) isMetricPoint_Value() {}

// Value for UNKNOWN MetricPoint.
type UnknownValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	//
	// Types that are assignable to Value:
	//
	//	*UnknownValue_DoubleValue
	//	*UnknownValue_IntValue
	Value isUnknownValue_Value `protobuf_oneof:"value"`
}

func (x *UnknownValue) Reset() {
	*x = UnknownValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UnknownValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnknownValue) ProtoMessage() {}

func (x *UnknownValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UnknownValue.ProtoReflect.Descriptor instead.
func (*UnknownValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{5}
}

func (m *UnknownValue) GetValue() isUnknownValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *UnknownValue) GetDoubleValue() float64 {
	if x, ok := x.GetValue().(*UnknownValue_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *UnknownValue) GetIntValue() int64 {
	if x, ok := x.GetValue().(*UnknownValue_IntValue); ok {
		return x.IntValue
	}
	return 0
}

type isUnknownValue_Value interface {
	isUnknownValue_Value()
}

type UnknownValue_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,1,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type UnknownValue_IntValue struct {
	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

func (*UnknownValue_DoubleValue) isUnknownValue_Value() {}

func (*UnknownValue_IntValue) isUnknownValue_Value() {}

// Value for GAUGE MetricPoint.
type GaugeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	//
	// Types that are assignable to Value:
	//
	//	*GaugeValue_DoubleValue
	//	*GaugeValue_IntValue
	Value isGaugeValue_Value `protobuf_oneof:"value"`
}

func (x *GaugeValue) Reset() {
	*x = GaugeValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GaugeValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GaugeValue) ProtoMessage() {}

func (x *GaugeValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GaugeValue.ProtoReflect.Descriptor instead.
func (*GaugeValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{6}
}

func (m *GaugeValue) GetValue() isGaugeValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *GaugeValue) GetDoubleValue() float64 {
	if x, ok := x.GetValue().(*GaugeValue_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *GaugeValue) GetIntValue() int64 {
	if x, ok := x.GetValue().(*GaugeValue_IntValue); ok {
		return x.IntValue
	}
	return 0
}

type isGaugeValue_Value interface {
	isGaugeValue_Value()
}

type GaugeValue_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,1,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type GaugeValue_IntValue struct {
	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

func (*GaugeValue_DoubleValue) isGaugeValue_Value() {}

func (*GaugeValue_IntValue) isGaugeValue_Value() {}

// Value for COUNTER MetricPoint.
type CounterValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	//
	// Types that are assignable to Total:
	//
	//	*CounterValue_DoubleValue
	//	*CounterValue_IntValue
	Total isCounterValue_Total `protobuf_oneof:"total"`
	// The time values began being collected for this counter.
	// Optional.
	Created *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created,proto3" json:"created,omitempty"`
	// Optional.
	Exemplar *Exemplar `protobuf:"bytes,4,opt,name=exemplar,proto3" json:"exemplar,omitempty"`
}

func (x *CounterValue) Reset() {
	*x = CounterValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CounterValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CounterValue) ProtoMessage() {}

func (x *CounterValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CounterValue.ProtoReflect.Descriptor instead.
func (*CounterValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{7}
}

func (m *CounterValue) GetTotal() isCounterValue_Total {
	if m != nil {
		return m.Total
	}
	return nil
}

func (x *CounterValue) GetDoubleValue() float64 {
	if x, ok := x.GetTotal().(*CounterValue_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *CounterValue) GetIntValue() uint64 {
	if x, ok := x.GetTotal().(*CounterValue_IntValue); ok {
		return x.IntValue
	}
	return 0
}

func (x *CounterValue) GetCreated() *timestamppb.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *CounterValue) GetExemplar() *Exemplar {
	if x != nil {
		return x.Exemplar
	}
	return nil
}

type isCounterValue_Total interface {
	isCounterValue_Total()
}

type CounterValue_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,1,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type CounterValue_IntValue struct {
	IntValue uint64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

func (*CounterValue_DoubleValue) isCounterValue_Total() {}

func (*CounterValue_IntValue) isCounterValue_Total() {}

// Value for HISTOGRAM or GAUGE_HISTOGRAM MetricPoint.
type HistogramValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional.
	//
	// Types that are assignable to Sum:
	//
	//	*HistogramValue_DoubleValue
	//	*HistogramValue_IntValue
	Sum isHistogramValue_Sum `protobuf_oneof:"sum"`
	// Optional.
	Count uint64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	// The time values began being collected for this histogram.
	// Optional.
	Created *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"`
	// Optional.
	Buckets []*HistogramValue_Bucket `protobuf:"bytes,5,rep,name=buckets,proto3" json:"buckets,omitempty"`
}

func (x *HistogramValue) Reset() {
	*x = HistogramValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HistogramValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HistogramValue) ProtoMessage() {}

func (x *HistogramValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HistogramValue.ProtoReflect.Descriptor instead.
func (*HistogramValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{8}
}

func (m *HistogramValue) GetSum() isHistogramValue_Sum {
	if m != nil {
		return m.Sum
	}
	return nil
}

func (x *HistogramValue) GetDoubleValue() float64 {
	if x, ok := x.GetSum().(*HistogramValue_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *HistogramValue) GetIntValue() int64 {
	if x, ok := x.GetSum().(*HistogramValue_IntValue); ok {
		return x.IntValue
	}
	return 0
}

func (x *HistogramValue) GetCount() uint64 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *HistogramValue) GetCreated() *timestamppb.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *HistogramValue) GetBuckets() []*HistogramValue_Bucket {
	if x != nil {
		return x.Buckets
	}
	return nil
}

type isHistogramValue_Sum interface {
	isHistogramValue_Sum()
}

type HistogramValue_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,1,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type HistogramValue_IntValue struct {
	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

func (*HistogramValue_DoubleValue) isHistogramValue_Sum() {}

func (*HistogramValue_IntValue) isHistogramValue_Sum() {}

type Exemplar struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
	// Optional.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// Labels are additional information about the exemplar value (e.g. trace id).
	// Optional.
	Label []*Label `protobuf:"bytes,3,rep,name=label,proto3" json:"label,omitempty"`
}

func (x *Exemplar) Reset() {
	*x = Exemplar{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Exemplar) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Exemplar) ProtoMessage() {}

func (x *Exemplar) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Exemplar.ProtoReflect.Descriptor instead.
func (*Exemplar) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{9}
}

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

func (x *Exemplar) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *Exemplar) GetLabel() []*Label {
	if x != nil {
		return x.Label
	}
	return nil
}

// Value for STATE_SET MetricPoint.
type StateSetValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional.
	States []*StateSetValue_State `protobuf:"bytes,1,rep,name=states,proto3" json:"states,omitempty"`
}

func (x *StateSetValue) Reset() {
	*x = StateSetValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StateSetValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StateSetValue) ProtoMessage() {}

func (x *StateSetValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StateSetValue.ProtoReflect.Descriptor instead.
func (*StateSetValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{10}
}

func (x *StateSetValue) GetStates() []*StateSetValue_State {
	if x != nil {
		return x.States
	}
	return nil
}

// Value for INFO MetricPoint.
type InfoValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional.
	Info []*Label `protobuf:"bytes,1,rep,name=info,proto3" json:"info,omitempty"`
}

func (x *InfoValue) Reset() {
	*x = InfoValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InfoValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InfoValue) ProtoMessage() {}

func (x *InfoValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InfoValue.ProtoReflect.Descriptor instead.
func (*InfoValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{11}
}

func (x *InfoValue) GetInfo() []*Label {
	if x != nil {
		return x.Info
	}
	return nil
}

// Value for SUMMARY MetricPoint.
type SummaryValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional.
	//
	// Types that are assignable to Sum:
	//
	//	*SummaryValue_DoubleValue
	//	*SummaryValue_IntValue
	Sum isSummaryValue_Sum `protobuf_oneof:"sum"`
	// Optional.
	Count uint64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	// The time sum and count values began being collected for this summary.
	// Optional.
	Created *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"`
	// Optional.
	Quantile []*SummaryValue_Quantile `protobuf:"bytes,5,rep,name=quantile,proto3" json:"quantile,omitempty"`
}

func (x *SummaryValue) Reset() {
	*x = SummaryValue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SummaryValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SummaryValue) ProtoMessage() {}

func (x *SummaryValue) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SummaryValue.ProtoReflect.Descriptor instead.
func (*SummaryValue) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{12}
}

func (m *SummaryValue) GetSum() isSummaryValue_Sum {
	if m != nil {
		return m.Sum
	}
	return nil
}

func (x *SummaryValue) GetDoubleValue() float64 {
	if x, ok := x.GetSum().(*SummaryValue_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *SummaryValue) GetIntValue() int64 {
	if x, ok := x.GetSum().(*SummaryValue_IntValue); ok {
		return x.IntValue
	}
	return 0
}

func (x *SummaryValue) GetCount() uint64 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SummaryValue) GetCreated() *timestamppb.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *SummaryValue) GetQuantile() []*SummaryValue_Quantile {
	if x != nil {
		return x.Quantile
	}
	return nil
}

type isSummaryValue_Sum interface {
	isSummaryValue_Sum()
}

type SummaryValue_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,1,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type SummaryValue_IntValue struct {
	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

func (*SummaryValue_DoubleValue) isSummaryValue_Sum() {}

func (*SummaryValue_IntValue) isSummaryValue_Sum() {}

// Bucket is the number of values for a bucket in the histogram
// with an optional exemplar.
type HistogramValue_Bucket struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Count uint64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	// Optional.
	UpperBound float64 `protobuf:"fixed64,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"`
	// Optional.
	Exemplar *Exemplar `protobuf:"bytes,3,opt,name=exemplar,proto3" json:"exemplar,omitempty"`
}

func (x *HistogramValue_Bucket) Reset() {
	*x = HistogramValue_Bucket{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HistogramValue_Bucket) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HistogramValue_Bucket) ProtoMessage() {}

func (x *HistogramValue_Bucket) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HistogramValue_Bucket.ProtoReflect.Descriptor instead.
func (*HistogramValue_Bucket) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{8, 0}
}

func (x *HistogramValue_Bucket) GetCount() uint64 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *HistogramValue_Bucket) GetUpperBound() float64 {
	if x != nil {
		return x.UpperBound
	}
	return 0
}

func (x *HistogramValue_Bucket) GetExemplar() *Exemplar {
	if x != nil {
		return x.Exemplar
	}
	return nil
}

type StateSetValue_State struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// Required.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *StateSetValue_State) Reset() {
	*x = StateSetValue_State{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StateSetValue_State) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StateSetValue_State) ProtoMessage() {}

func (x *StateSetValue_State) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StateSetValue_State.ProtoReflect.Descriptor instead.
func (*StateSetValue_State) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{10, 0}
}

func (x *StateSetValue_State) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *StateSetValue_State) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type SummaryValue_Quantile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required.
	Quantile float64 `protobuf:"fixed64,1,opt,name=quantile,proto3" json:"quantile,omitempty"`
	// Required.
	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *SummaryValue_Quantile) Reset() {
	*x = SummaryValue_Quantile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_openmetrics_data_model_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SummaryValue_Quantile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SummaryValue_Quantile) ProtoMessage() {}

func (x *SummaryValue_Quantile) ProtoReflect() protoreflect.Message {
	mi := &file_openmetrics_data_model_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SummaryValue_Quantile.ProtoReflect.Descriptor instead.
func (*SummaryValue_Quantile) Descriptor() ([]byte, []int) {
	return file_openmetrics_data_model_proto_rawDescGZIP(), []int{12, 0}
}

func (x *SummaryValue_Quantile) GetQuantile() float64 {
	if x != nil {
		return x.Quantile
	}
	return 0
}

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

var File_openmetrics_data_model_proto protoreflect.FileDescriptor

var file_openmetrics_data_model_proto_rawDesc = []byte{
	0x0a, 0x1c, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x61,
	0x74, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b,
	0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x22, 0x4f, 0x0a, 0x09,
	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x6d, 0x65, 0x74,
	0x72, 0x69, 0x63, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x0e, 0x6d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x22, 0xa6, 0x01,
	0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75,
	0x6e, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69,
	0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x73, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
	0x12, 0x2a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4c,
	0x61, 0x62, 0x65, 0x6c, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0d,
	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
	0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0c, 0x6d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x31, 0x0a, 0x05, 0x4c,
	0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x99,
	0x04, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x40,
	0x0a, 0x0d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72,
	0x69, 0x63, 0x73, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x48, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x75, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72,
	0x69, 0x63, 0x73, 0x2e, 0x47, 0x61, 0x75, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00,
	0x52, 0x0a, 0x67, 0x61, 0x75, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0d,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
	0x73, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00,
	0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46,
	0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
	0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f,
	0x73, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x0a,
	0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x49,
	0x6e, 0x66, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f,
	0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61,
	0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61,
	0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5b, 0x0a, 0x0c, 0x55, 0x6e,
	0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f,
	0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01,
	0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x0a, 0x47, 0x61, 0x75, 0x67, 0x65,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e,
	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52,
	0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75,
	0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x69,
	0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a,
	0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72,
	0x42, 0x07, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd9, 0x02, 0x0a, 0x0e, 0x48, 0x69,
	0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c,
	0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x07,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
	0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x48, 0x69, 0x73, 0x74,
	0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65,
	0x74, 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x72, 0x0a, 0x06, 0x42, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70,
	0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x65,
	0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x42, 0x05,
	0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0x84, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x80, 0x01, 0x0a,
	0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0x33, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x04,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65,
	0x6e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x04,
	0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa3, 0x02, 0x0a, 0x0c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e,
	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52,
	0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c,
	0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x71, 0x75, 0x61,
	0x6e, 0x74, 0x69, 0x6c, 0x65, 0x1a, 0x3c, 0x0a, 0x08, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x01, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x2a, 0x7b, 0x0a, 0x0a, 0x4d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, 0x01,
	0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0d, 0x0a,
	0x09, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04,
	0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47,
	0x52, 0x41, 0x4d, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x48,
	0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55,
	0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x07, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_openmetrics_data_model_proto_rawDescOnce sync.Once
	file_openmetrics_data_model_proto_rawDescData = file_openmetrics_data_model_proto_rawDesc
)

func file_openmetrics_data_model_proto_rawDescGZIP() []byte {
	file_openmetrics_data_model_proto_rawDescOnce.Do(func() {
		file_openmetrics_data_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_openmetrics_data_model_proto_rawDescData)
	})
	return file_openmetrics_data_model_proto_rawDescData
}

var file_openmetrics_data_model_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_openmetrics_data_model_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_openmetrics_data_model_proto_goTypes = []interface{}{
	(MetricType)(0),               // 0: openmetrics.MetricType
	(*MetricSet)(nil),             // 1: openmetrics.MetricSet
	(*MetricFamily)(nil),          // 2: openmetrics.MetricFamily
	(*Metric)(nil),                // 3: openmetrics.Metric
	(*Label)(nil),                 // 4: openmetrics.Label
	(*MetricPoint)(nil),           // 5: openmetrics.MetricPoint
	(*UnknownValue)(nil),          // 6: openmetrics.UnknownValue
	(*GaugeValue)(nil),            // 7: openmetrics.GaugeValue
	(*CounterValue)(nil),          // 8: openmetrics.CounterValue
	(*HistogramValue)(nil),        // 9: openmetrics.HistogramValue
	(*Exemplar)(nil),              // 10: openmetrics.Exemplar
	(*StateSetValue)(nil),         // 11: openmetrics.StateSetValue
	(*InfoValue)(nil),             // 12: openmetrics.InfoValue
	(*SummaryValue)(nil),          // 13: openmetrics.SummaryValue
	(*HistogramValue_Bucket)(nil), // 14: openmetrics.HistogramValue.Bucket
	(*StateSetValue_State)(nil),   // 15: openmetrics.StateSetValue.State
	(*SummaryValue_Quantile)(nil), // 16: openmetrics.SummaryValue.Quantile
	(*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
}
var file_openmetrics_data_model_proto_depIdxs = []int32{
	2,  // 0: openmetrics.MetricSet.metric_families:type_name -> openmetrics.MetricFamily
	0,  // 1: openmetrics.MetricFamily.type:type_name -> openmetrics.MetricType
	3,  // 2: openmetrics.MetricFamily.metrics:type_name -> openmetrics.Metric
	4,  // 3: openmetrics.Metric.labels:type_name -> openmetrics.Label
	5,  // 4: openmetrics.Metric.metric_points:type_name -> openmetrics.MetricPoint
	6,  // 5: openmetrics.MetricPoint.unknown_value:type_name -> openmetrics.UnknownValue
	7,  // 6: openmetrics.MetricPoint.gauge_value:type_name -> openmetrics.GaugeValue
	8,  // 7: openmetrics.MetricPoint.counter_value:type_name -> openmetrics.CounterValue
	9,  // 8: openmetrics.MetricPoint.histogram_value:type_name -> openmetrics.HistogramValue
	11, // 9: openmetrics.MetricPoint.state_set_value:type_name -> openmetrics.StateSetValue
	12, // 10: openmetrics.MetricPoint.info_value:type_name -> openmetrics.InfoValue
	13, // 11: openmetrics.MetricPoint.summary_value:type_name -> openmetrics.SummaryValue
	17, // 12: openmetrics.MetricPoint.timestamp:type_name -> google.protobuf.Timestamp
	17, // 13: openmetrics.CounterValue.created:type_name -> google.protobuf.Timestamp
	10, // 14: openmetrics.CounterValue.exemplar:type_name -> openmetrics.Exemplar
	17, // 15: openmetrics.HistogramValue.created:type_name -> google.protobuf.Timestamp
	14, // 16: openmetrics.HistogramValue.buckets:type_name -> openmetrics.HistogramValue.Bucket
	17, // 17: openmetrics.Exemplar.timestamp:type_name -> google.protobuf.Timestamp
	4,  // 18: openmetrics.Exemplar.label:type_name -> openmetrics.Label
	15, // 19: openmetrics.StateSetValue.states:type_name -> openmetrics.StateSetValue.State
	4,  // 20: openmetrics.InfoValue.info:type_name -> openmetrics.Label
	17, // 21: openmetrics.SummaryValue.created:type_name -> google.protobuf.Timestamp
	16, // 22: openmetrics.SummaryValue.quantile:type_name -> openmetrics.SummaryValue.Quantile
	10, // 23: openmetrics.HistogramValue.Bucket.exemplar:type_name -> openmetrics.Exemplar
	24, // [24:24] is the sub-list for method output_type
	24, // [24:24] is the sub-list for method input_type
	24, // [24:24] is the sub-list for extension type_name
	24, // [24:24] is the sub-list for extension extendee
	0,  // [0:24] is the sub-list for field type_name
}

func init() { file_openmetrics_data_model_proto_init() }
func file_openmetrics_data_model_proto_init() {
	if File_openmetrics_data_model_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_openmetrics_data_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MetricSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MetricFamily); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Metric); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Label); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MetricPoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnknownValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GaugeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CounterValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistogramValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Exemplar); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StateSetValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InfoValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SummaryValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistogramValue_Bucket); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StateSetValue_State); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_openmetrics_data_model_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SummaryValue_Quantile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_openmetrics_data_model_proto_msgTypes[4].OneofWrappers = []interface{}{
		(*MetricPoint_UnknownValue)(nil),
		(*MetricPoint_GaugeValue)(nil),
		(*MetricPoint_CounterValue)(nil),
		(*MetricPoint_HistogramValue)(nil),
		(*MetricPoint_StateSetValue)(nil),
		(*MetricPoint_InfoValue)(nil),
		(*MetricPoint_SummaryValue)(nil),
	}
	file_openmetrics_data_model_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*UnknownValue_DoubleValue)(nil),
		(*UnknownValue_IntValue)(nil),
	}
	file_openmetrics_data_model_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*GaugeValue_DoubleValue)(nil),
		(*GaugeValue_IntValue)(nil),
	}
	file_openmetrics_data_model_proto_msgTypes[7].OneofWrappers = []interface{}{
		(*CounterValue_DoubleValue)(nil),
		(*CounterValue_IntValue)(nil),
	}
	file_openmetrics_data_model_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*HistogramValue_DoubleValue)(nil),
		(*HistogramValue_IntValue)(nil),
	}
	file_openmetrics_data_model_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*SummaryValue_DoubleValue)(nil),
		(*SummaryValue_IntValue)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_openmetrics_data_model_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_openmetrics_data_model_proto_goTypes,
		DependencyIndexes: file_openmetrics_data_model_proto_depIdxs,
		EnumInfos:         file_openmetrics_data_model_proto_enumTypes,
		MessageInfos:      file_openmetrics_data_model_proto_msgTypes,
	}.Build()
	File_openmetrics_data_model_proto = out.File
	file_openmetrics_data_model_proto_rawDesc = nil
	file_openmetrics_data_model_proto_goTypes = nil
	file_openmetrics_data_model_proto_depIdxs = nil
}
