...

Source file src/go.opentelemetry.io/proto/otlp/metrics/v1/metrics.pb.go

Documentation: go.opentelemetry.io/proto/otlp/metrics/v1

     1  // Copyright 2019, OpenTelemetry Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.26.0
    18  // 	protoc        v3.21.6
    19  // source: opentelemetry/proto/metrics/v1/metrics.proto
    20  
    21  package v1
    22  
    23  import (
    24  	v11 "go.opentelemetry.io/proto/otlp/common/v1"
    25  	v1 "go.opentelemetry.io/proto/otlp/resource/v1"
    26  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    27  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    28  	reflect "reflect"
    29  	sync "sync"
    30  )
    31  
    32  const (
    33  	// Verify that this generated code is sufficiently up-to-date.
    34  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    35  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    37  )
    38  
    39  // AggregationTemporality defines how a metric aggregator reports aggregated
    40  // values. It describes how those values relate to the time interval over
    41  // which they are aggregated.
    42  type AggregationTemporality int32
    43  
    44  const (
    45  	// UNSPECIFIED is the default AggregationTemporality, it MUST not be used.
    46  	AggregationTemporality_AGGREGATION_TEMPORALITY_UNSPECIFIED AggregationTemporality = 0
    47  	// DELTA is an AggregationTemporality for a metric aggregator which reports
    48  	// changes since last report time. Successive metrics contain aggregation of
    49  	// values from continuous and non-overlapping intervals.
    50  	//
    51  	// The values for a DELTA metric are based only on the time interval
    52  	// associated with one measurement cycle. There is no dependency on
    53  	// previous measurements like is the case for CUMULATIVE metrics.
    54  	//
    55  	// For example, consider a system measuring the number of requests that
    56  	// it receives and reports the sum of these requests every second as a
    57  	// DELTA metric:
    58  	//
    59  	//   1. The system starts receiving at time=t_0.
    60  	//   2. A request is received, the system measures 1 request.
    61  	//   3. A request is received, the system measures 1 request.
    62  	//   4. A request is received, the system measures 1 request.
    63  	//   5. The 1 second collection cycle ends. A metric is exported for the
    64  	//      number of requests received over the interval of time t_0 to
    65  	//      t_0+1 with a value of 3.
    66  	//   6. A request is received, the system measures 1 request.
    67  	//   7. A request is received, the system measures 1 request.
    68  	//   8. The 1 second collection cycle ends. A metric is exported for the
    69  	//      number of requests received over the interval of time t_0+1 to
    70  	//      t_0+2 with a value of 2.
    71  	AggregationTemporality_AGGREGATION_TEMPORALITY_DELTA AggregationTemporality = 1
    72  	// CUMULATIVE is an AggregationTemporality for a metric aggregator which
    73  	// reports changes since a fixed start time. This means that current values
    74  	// of a CUMULATIVE metric depend on all previous measurements since the
    75  	// start time. Because of this, the sender is required to retain this state
    76  	// in some form. If this state is lost or invalidated, the CUMULATIVE metric
    77  	// values MUST be reset and a new fixed start time following the last
    78  	// reported measurement time sent MUST be used.
    79  	//
    80  	// For example, consider a system measuring the number of requests that
    81  	// it receives and reports the sum of these requests every second as a
    82  	// CUMULATIVE metric:
    83  	//
    84  	//   1. The system starts receiving at time=t_0.
    85  	//   2. A request is received, the system measures 1 request.
    86  	//   3. A request is received, the system measures 1 request.
    87  	//   4. A request is received, the system measures 1 request.
    88  	//   5. The 1 second collection cycle ends. A metric is exported for the
    89  	//      number of requests received over the interval of time t_0 to
    90  	//      t_0+1 with a value of 3.
    91  	//   6. A request is received, the system measures 1 request.
    92  	//   7. A request is received, the system measures 1 request.
    93  	//   8. The 1 second collection cycle ends. A metric is exported for the
    94  	//      number of requests received over the interval of time t_0 to
    95  	//      t_0+2 with a value of 5.
    96  	//   9. The system experiences a fault and loses state.
    97  	//   10. The system recovers and resumes receiving at time=t_1.
    98  	//   11. A request is received, the system measures 1 request.
    99  	//   12. The 1 second collection cycle ends. A metric is exported for the
   100  	//      number of requests received over the interval of time t_1 to
   101  	//      t_0+1 with a value of 1.
   102  	//
   103  	// Note: Even though, when reporting changes since last report time, using
   104  	// CUMULATIVE is valid, it is not recommended. This may cause problems for
   105  	// systems that do not use start_time to determine when the aggregation
   106  	// value was reset (e.g. Prometheus).
   107  	AggregationTemporality_AGGREGATION_TEMPORALITY_CUMULATIVE AggregationTemporality = 2
   108  )
   109  
   110  // Enum value maps for AggregationTemporality.
   111  var (
   112  	AggregationTemporality_name = map[int32]string{
   113  		0: "AGGREGATION_TEMPORALITY_UNSPECIFIED",
   114  		1: "AGGREGATION_TEMPORALITY_DELTA",
   115  		2: "AGGREGATION_TEMPORALITY_CUMULATIVE",
   116  	}
   117  	AggregationTemporality_value = map[string]int32{
   118  		"AGGREGATION_TEMPORALITY_UNSPECIFIED": 0,
   119  		"AGGREGATION_TEMPORALITY_DELTA":       1,
   120  		"AGGREGATION_TEMPORALITY_CUMULATIVE":  2,
   121  	}
   122  )
   123  
   124  func (x AggregationTemporality) Enum() *AggregationTemporality {
   125  	p := new(AggregationTemporality)
   126  	*p = x
   127  	return p
   128  }
   129  
   130  func (x AggregationTemporality) String() string {
   131  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   132  }
   133  
   134  func (AggregationTemporality) Descriptor() protoreflect.EnumDescriptor {
   135  	return file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes[0].Descriptor()
   136  }
   137  
   138  func (AggregationTemporality) Type() protoreflect.EnumType {
   139  	return &file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes[0]
   140  }
   141  
   142  func (x AggregationTemporality) Number() protoreflect.EnumNumber {
   143  	return protoreflect.EnumNumber(x)
   144  }
   145  
   146  // Deprecated: Use AggregationTemporality.Descriptor instead.
   147  func (AggregationTemporality) EnumDescriptor() ([]byte, []int) {
   148  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{0}
   149  }
   150  
   151  // DataPointFlags is defined as a protobuf 'uint32' type and is to be used as a
   152  // bit-field representing 32 distinct boolean flags.  Each flag defined in this
   153  // enum is a bit-mask.  To test the presence of a single flag in the flags of
   154  // a data point, for example, use an expression like:
   155  //
   156  //   (point.flags & DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK) == DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK
   157  //
   158  type DataPointFlags int32
   159  
   160  const (
   161  	// The zero value for the enum. Should not be used for comparisons.
   162  	// Instead use bitwise "and" with the appropriate mask as shown above.
   163  	DataPointFlags_DATA_POINT_FLAGS_DO_NOT_USE DataPointFlags = 0
   164  	// This DataPoint is valid but has no recorded value.  This value
   165  	// SHOULD be used to reflect explicitly missing data in a series, as
   166  	// for an equivalent to the Prometheus "staleness marker".
   167  	DataPointFlags_DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK DataPointFlags = 1
   168  )
   169  
   170  // Enum value maps for DataPointFlags.
   171  var (
   172  	DataPointFlags_name = map[int32]string{
   173  		0: "DATA_POINT_FLAGS_DO_NOT_USE",
   174  		1: "DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK",
   175  	}
   176  	DataPointFlags_value = map[string]int32{
   177  		"DATA_POINT_FLAGS_DO_NOT_USE":             0,
   178  		"DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK": 1,
   179  	}
   180  )
   181  
   182  func (x DataPointFlags) Enum() *DataPointFlags {
   183  	p := new(DataPointFlags)
   184  	*p = x
   185  	return p
   186  }
   187  
   188  func (x DataPointFlags) String() string {
   189  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   190  }
   191  
   192  func (DataPointFlags) Descriptor() protoreflect.EnumDescriptor {
   193  	return file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes[1].Descriptor()
   194  }
   195  
   196  func (DataPointFlags) Type() protoreflect.EnumType {
   197  	return &file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes[1]
   198  }
   199  
   200  func (x DataPointFlags) Number() protoreflect.EnumNumber {
   201  	return protoreflect.EnumNumber(x)
   202  }
   203  
   204  // Deprecated: Use DataPointFlags.Descriptor instead.
   205  func (DataPointFlags) EnumDescriptor() ([]byte, []int) {
   206  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{1}
   207  }
   208  
   209  // MetricsData represents the metrics data that can be stored in a persistent
   210  // storage, OR can be embedded by other protocols that transfer OTLP metrics
   211  // data but do not implement the OTLP protocol.
   212  //
   213  // The main difference between this message and collector protocol is that
   214  // in this message there will not be any "control" or "metadata" specific to
   215  // OTLP protocol.
   216  //
   217  // When new fields are added into this message, the OTLP request MUST be updated
   218  // as well.
   219  type MetricsData struct {
   220  	state         protoimpl.MessageState
   221  	sizeCache     protoimpl.SizeCache
   222  	unknownFields protoimpl.UnknownFields
   223  
   224  	// An array of ResourceMetrics.
   225  	// For data coming from a single resource this array will typically contain
   226  	// one element. Intermediary nodes that receive data from multiple origins
   227  	// typically batch the data before forwarding further and in that case this
   228  	// array will contain multiple elements.
   229  	ResourceMetrics []*ResourceMetrics `protobuf:"bytes,1,rep,name=resource_metrics,json=resourceMetrics,proto3" json:"resource_metrics,omitempty"`
   230  }
   231  
   232  func (x *MetricsData) Reset() {
   233  	*x = MetricsData{}
   234  	if protoimpl.UnsafeEnabled {
   235  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[0]
   236  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   237  		ms.StoreMessageInfo(mi)
   238  	}
   239  }
   240  
   241  func (x *MetricsData) String() string {
   242  	return protoimpl.X.MessageStringOf(x)
   243  }
   244  
   245  func (*MetricsData) ProtoMessage() {}
   246  
   247  func (x *MetricsData) ProtoReflect() protoreflect.Message {
   248  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[0]
   249  	if protoimpl.UnsafeEnabled && x != nil {
   250  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   251  		if ms.LoadMessageInfo() == nil {
   252  			ms.StoreMessageInfo(mi)
   253  		}
   254  		return ms
   255  	}
   256  	return mi.MessageOf(x)
   257  }
   258  
   259  // Deprecated: Use MetricsData.ProtoReflect.Descriptor instead.
   260  func (*MetricsData) Descriptor() ([]byte, []int) {
   261  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{0}
   262  }
   263  
   264  func (x *MetricsData) GetResourceMetrics() []*ResourceMetrics {
   265  	if x != nil {
   266  		return x.ResourceMetrics
   267  	}
   268  	return nil
   269  }
   270  
   271  // A collection of ScopeMetrics from a Resource.
   272  type ResourceMetrics struct {
   273  	state         protoimpl.MessageState
   274  	sizeCache     protoimpl.SizeCache
   275  	unknownFields protoimpl.UnknownFields
   276  
   277  	// The resource for the metrics in this message.
   278  	// If this field is not set then no resource info is known.
   279  	Resource *v1.Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
   280  	// A list of metrics that originate from a resource.
   281  	ScopeMetrics []*ScopeMetrics `protobuf:"bytes,2,rep,name=scope_metrics,json=scopeMetrics,proto3" json:"scope_metrics,omitempty"`
   282  	// This schema_url applies to the data in the "resource" field. It does not apply
   283  	// to the data in the "scope_metrics" field which have their own schema_url field.
   284  	SchemaUrl string `protobuf:"bytes,3,opt,name=schema_url,json=schemaUrl,proto3" json:"schema_url,omitempty"`
   285  }
   286  
   287  func (x *ResourceMetrics) Reset() {
   288  	*x = ResourceMetrics{}
   289  	if protoimpl.UnsafeEnabled {
   290  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[1]
   291  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   292  		ms.StoreMessageInfo(mi)
   293  	}
   294  }
   295  
   296  func (x *ResourceMetrics) String() string {
   297  	return protoimpl.X.MessageStringOf(x)
   298  }
   299  
   300  func (*ResourceMetrics) ProtoMessage() {}
   301  
   302  func (x *ResourceMetrics) ProtoReflect() protoreflect.Message {
   303  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[1]
   304  	if protoimpl.UnsafeEnabled && x != nil {
   305  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   306  		if ms.LoadMessageInfo() == nil {
   307  			ms.StoreMessageInfo(mi)
   308  		}
   309  		return ms
   310  	}
   311  	return mi.MessageOf(x)
   312  }
   313  
   314  // Deprecated: Use ResourceMetrics.ProtoReflect.Descriptor instead.
   315  func (*ResourceMetrics) Descriptor() ([]byte, []int) {
   316  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{1}
   317  }
   318  
   319  func (x *ResourceMetrics) GetResource() *v1.Resource {
   320  	if x != nil {
   321  		return x.Resource
   322  	}
   323  	return nil
   324  }
   325  
   326  func (x *ResourceMetrics) GetScopeMetrics() []*ScopeMetrics {
   327  	if x != nil {
   328  		return x.ScopeMetrics
   329  	}
   330  	return nil
   331  }
   332  
   333  func (x *ResourceMetrics) GetSchemaUrl() string {
   334  	if x != nil {
   335  		return x.SchemaUrl
   336  	}
   337  	return ""
   338  }
   339  
   340  // A collection of Metrics produced by an Scope.
   341  type ScopeMetrics struct {
   342  	state         protoimpl.MessageState
   343  	sizeCache     protoimpl.SizeCache
   344  	unknownFields protoimpl.UnknownFields
   345  
   346  	// The instrumentation scope information for the metrics in this message.
   347  	// Semantically when InstrumentationScope isn't set, it is equivalent with
   348  	// an empty instrumentation scope name (unknown).
   349  	Scope *v11.InstrumentationScope `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"`
   350  	// A list of metrics that originate from an instrumentation library.
   351  	Metrics []*Metric `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
   352  	// This schema_url applies to all metrics in the "metrics" field.
   353  	SchemaUrl string `protobuf:"bytes,3,opt,name=schema_url,json=schemaUrl,proto3" json:"schema_url,omitempty"`
   354  }
   355  
   356  func (x *ScopeMetrics) Reset() {
   357  	*x = ScopeMetrics{}
   358  	if protoimpl.UnsafeEnabled {
   359  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[2]
   360  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   361  		ms.StoreMessageInfo(mi)
   362  	}
   363  }
   364  
   365  func (x *ScopeMetrics) String() string {
   366  	return protoimpl.X.MessageStringOf(x)
   367  }
   368  
   369  func (*ScopeMetrics) ProtoMessage() {}
   370  
   371  func (x *ScopeMetrics) ProtoReflect() protoreflect.Message {
   372  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[2]
   373  	if protoimpl.UnsafeEnabled && x != nil {
   374  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   375  		if ms.LoadMessageInfo() == nil {
   376  			ms.StoreMessageInfo(mi)
   377  		}
   378  		return ms
   379  	}
   380  	return mi.MessageOf(x)
   381  }
   382  
   383  // Deprecated: Use ScopeMetrics.ProtoReflect.Descriptor instead.
   384  func (*ScopeMetrics) Descriptor() ([]byte, []int) {
   385  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{2}
   386  }
   387  
   388  func (x *ScopeMetrics) GetScope() *v11.InstrumentationScope {
   389  	if x != nil {
   390  		return x.Scope
   391  	}
   392  	return nil
   393  }
   394  
   395  func (x *ScopeMetrics) GetMetrics() []*Metric {
   396  	if x != nil {
   397  		return x.Metrics
   398  	}
   399  	return nil
   400  }
   401  
   402  func (x *ScopeMetrics) GetSchemaUrl() string {
   403  	if x != nil {
   404  		return x.SchemaUrl
   405  	}
   406  	return ""
   407  }
   408  
   409  // Defines a Metric which has one or more timeseries.  The following is a
   410  // brief summary of the Metric data model.  For more details, see:
   411  //
   412  //   https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/data-model.md
   413  //
   414  //
   415  // The data model and relation between entities is shown in the
   416  // diagram below. Here, "DataPoint" is the term used to refer to any
   417  // one of the specific data point value types, and "points" is the term used
   418  // to refer to any one of the lists of points contained in the Metric.
   419  //
   420  // - Metric is composed of a metadata and data.
   421  // - Metadata part contains a name, description, unit.
   422  // - Data is one of the possible types (Sum, Gauge, Histogram, Summary).
   423  // - DataPoint contains timestamps, attributes, and one of the possible value type
   424  //   fields.
   425  //
   426  //     Metric
   427  //  +------------+
   428  //  |name        |
   429  //  |description |
   430  //  |unit        |     +------------------------------------+
   431  //  |data        |---> |Gauge, Sum, Histogram, Summary, ... |
   432  //  +------------+     +------------------------------------+
   433  //
   434  //    Data [One of Gauge, Sum, Histogram, Summary, ...]
   435  //  +-----------+
   436  //  |...        |  // Metadata about the Data.
   437  //  |points     |--+
   438  //  +-----------+  |
   439  //                 |      +---------------------------+
   440  //                 |      |DataPoint 1                |
   441  //                 v      |+------+------+   +------+ |
   442  //              +-----+   ||label |label |...|label | |
   443  //              |  1  |-->||value1|value2|...|valueN| |
   444  //              +-----+   |+------+------+   +------+ |
   445  //              |  .  |   |+-----+                    |
   446  //              |  .  |   ||value|                    |
   447  //              |  .  |   |+-----+                    |
   448  //              |  .  |   +---------------------------+
   449  //              |  .  |                   .
   450  //              |  .  |                   .
   451  //              |  .  |                   .
   452  //              |  .  |   +---------------------------+
   453  //              |  .  |   |DataPoint M                |
   454  //              +-----+   |+------+------+   +------+ |
   455  //              |  M  |-->||label |label |...|label | |
   456  //              +-----+   ||value1|value2|...|valueN| |
   457  //                        |+------+------+   +------+ |
   458  //                        |+-----+                    |
   459  //                        ||value|                    |
   460  //                        |+-----+                    |
   461  //                        +---------------------------+
   462  //
   463  // Each distinct type of DataPoint represents the output of a specific
   464  // aggregation function, the result of applying the DataPoint's
   465  // associated function of to one or more measurements.
   466  //
   467  // All DataPoint types have three common fields:
   468  // - Attributes includes key-value pairs associated with the data point
   469  // - TimeUnixNano is required, set to the end time of the aggregation
   470  // - StartTimeUnixNano is optional, but strongly encouraged for DataPoints
   471  //   having an AggregationTemporality field, as discussed below.
   472  //
   473  // Both TimeUnixNano and StartTimeUnixNano values are expressed as
   474  // UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
   475  //
   476  // # TimeUnixNano
   477  //
   478  // This field is required, having consistent interpretation across
   479  // DataPoint types.  TimeUnixNano is the moment corresponding to when
   480  // the data point's aggregate value was captured.
   481  //
   482  // Data points with the 0 value for TimeUnixNano SHOULD be rejected
   483  // by consumers.
   484  //
   485  // # StartTimeUnixNano
   486  //
   487  // StartTimeUnixNano in general allows detecting when a sequence of
   488  // observations is unbroken.  This field indicates to consumers the
   489  // start time for points with cumulative and delta
   490  // AggregationTemporality, and it should be included whenever possible
   491  // to support correct rate calculation.  Although it may be omitted
   492  // when the start time is truly unknown, setting StartTimeUnixNano is
   493  // strongly encouraged.
   494  type Metric struct {
   495  	state         protoimpl.MessageState
   496  	sizeCache     protoimpl.SizeCache
   497  	unknownFields protoimpl.UnknownFields
   498  
   499  	// name of the metric, including its DNS name prefix. It must be unique.
   500  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   501  	// description of the metric, which can be used in documentation.
   502  	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
   503  	// unit in which the metric value is reported. Follows the format
   504  	// described by http://unitsofmeasure.org/ucum.html.
   505  	Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
   506  	// Data determines the aggregation type (if any) of the metric, what is the
   507  	// reported value type for the data points, as well as the relatationship to
   508  	// the time interval over which they are reported.
   509  	//
   510  	// Types that are assignable to Data:
   511  	//	*Metric_Gauge
   512  	//	*Metric_Sum
   513  	//	*Metric_Histogram
   514  	//	*Metric_ExponentialHistogram
   515  	//	*Metric_Summary
   516  	Data isMetric_Data `protobuf_oneof:"data"`
   517  }
   518  
   519  func (x *Metric) Reset() {
   520  	*x = Metric{}
   521  	if protoimpl.UnsafeEnabled {
   522  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[3]
   523  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   524  		ms.StoreMessageInfo(mi)
   525  	}
   526  }
   527  
   528  func (x *Metric) String() string {
   529  	return protoimpl.X.MessageStringOf(x)
   530  }
   531  
   532  func (*Metric) ProtoMessage() {}
   533  
   534  func (x *Metric) ProtoReflect() protoreflect.Message {
   535  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[3]
   536  	if protoimpl.UnsafeEnabled && x != nil {
   537  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   538  		if ms.LoadMessageInfo() == nil {
   539  			ms.StoreMessageInfo(mi)
   540  		}
   541  		return ms
   542  	}
   543  	return mi.MessageOf(x)
   544  }
   545  
   546  // Deprecated: Use Metric.ProtoReflect.Descriptor instead.
   547  func (*Metric) Descriptor() ([]byte, []int) {
   548  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{3}
   549  }
   550  
   551  func (x *Metric) GetName() string {
   552  	if x != nil {
   553  		return x.Name
   554  	}
   555  	return ""
   556  }
   557  
   558  func (x *Metric) GetDescription() string {
   559  	if x != nil {
   560  		return x.Description
   561  	}
   562  	return ""
   563  }
   564  
   565  func (x *Metric) GetUnit() string {
   566  	if x != nil {
   567  		return x.Unit
   568  	}
   569  	return ""
   570  }
   571  
   572  func (m *Metric) GetData() isMetric_Data {
   573  	if m != nil {
   574  		return m.Data
   575  	}
   576  	return nil
   577  }
   578  
   579  func (x *Metric) GetGauge() *Gauge {
   580  	if x, ok := x.GetData().(*Metric_Gauge); ok {
   581  		return x.Gauge
   582  	}
   583  	return nil
   584  }
   585  
   586  func (x *Metric) GetSum() *Sum {
   587  	if x, ok := x.GetData().(*Metric_Sum); ok {
   588  		return x.Sum
   589  	}
   590  	return nil
   591  }
   592  
   593  func (x *Metric) GetHistogram() *Histogram {
   594  	if x, ok := x.GetData().(*Metric_Histogram); ok {
   595  		return x.Histogram
   596  	}
   597  	return nil
   598  }
   599  
   600  func (x *Metric) GetExponentialHistogram() *ExponentialHistogram {
   601  	if x, ok := x.GetData().(*Metric_ExponentialHistogram); ok {
   602  		return x.ExponentialHistogram
   603  	}
   604  	return nil
   605  }
   606  
   607  func (x *Metric) GetSummary() *Summary {
   608  	if x, ok := x.GetData().(*Metric_Summary); ok {
   609  		return x.Summary
   610  	}
   611  	return nil
   612  }
   613  
   614  type isMetric_Data interface {
   615  	isMetric_Data()
   616  }
   617  
   618  type Metric_Gauge struct {
   619  	Gauge *Gauge `protobuf:"bytes,5,opt,name=gauge,proto3,oneof"`
   620  }
   621  
   622  type Metric_Sum struct {
   623  	Sum *Sum `protobuf:"bytes,7,opt,name=sum,proto3,oneof"`
   624  }
   625  
   626  type Metric_Histogram struct {
   627  	Histogram *Histogram `protobuf:"bytes,9,opt,name=histogram,proto3,oneof"`
   628  }
   629  
   630  type Metric_ExponentialHistogram struct {
   631  	ExponentialHistogram *ExponentialHistogram `protobuf:"bytes,10,opt,name=exponential_histogram,json=exponentialHistogram,proto3,oneof"`
   632  }
   633  
   634  type Metric_Summary struct {
   635  	Summary *Summary `protobuf:"bytes,11,opt,name=summary,proto3,oneof"`
   636  }
   637  
   638  func (*Metric_Gauge) isMetric_Data() {}
   639  
   640  func (*Metric_Sum) isMetric_Data() {}
   641  
   642  func (*Metric_Histogram) isMetric_Data() {}
   643  
   644  func (*Metric_ExponentialHistogram) isMetric_Data() {}
   645  
   646  func (*Metric_Summary) isMetric_Data() {}
   647  
   648  // Gauge represents the type of a scalar metric that always exports the
   649  // "current value" for every data point. It should be used for an "unknown"
   650  // aggregation.
   651  //
   652  // A Gauge does not support different aggregation temporalities. Given the
   653  // aggregation is unknown, points cannot be combined using the same
   654  // aggregation, regardless of aggregation temporalities. Therefore,
   655  // AggregationTemporality is not included. Consequently, this also means
   656  // "StartTimeUnixNano" is ignored for all data points.
   657  type Gauge struct {
   658  	state         protoimpl.MessageState
   659  	sizeCache     protoimpl.SizeCache
   660  	unknownFields protoimpl.UnknownFields
   661  
   662  	DataPoints []*NumberDataPoint `protobuf:"bytes,1,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
   663  }
   664  
   665  func (x *Gauge) Reset() {
   666  	*x = Gauge{}
   667  	if protoimpl.UnsafeEnabled {
   668  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[4]
   669  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   670  		ms.StoreMessageInfo(mi)
   671  	}
   672  }
   673  
   674  func (x *Gauge) String() string {
   675  	return protoimpl.X.MessageStringOf(x)
   676  }
   677  
   678  func (*Gauge) ProtoMessage() {}
   679  
   680  func (x *Gauge) ProtoReflect() protoreflect.Message {
   681  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[4]
   682  	if protoimpl.UnsafeEnabled && x != nil {
   683  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   684  		if ms.LoadMessageInfo() == nil {
   685  			ms.StoreMessageInfo(mi)
   686  		}
   687  		return ms
   688  	}
   689  	return mi.MessageOf(x)
   690  }
   691  
   692  // Deprecated: Use Gauge.ProtoReflect.Descriptor instead.
   693  func (*Gauge) Descriptor() ([]byte, []int) {
   694  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{4}
   695  }
   696  
   697  func (x *Gauge) GetDataPoints() []*NumberDataPoint {
   698  	if x != nil {
   699  		return x.DataPoints
   700  	}
   701  	return nil
   702  }
   703  
   704  // Sum represents the type of a scalar metric that is calculated as a sum of all
   705  // reported measurements over a time interval.
   706  type Sum struct {
   707  	state         protoimpl.MessageState
   708  	sizeCache     protoimpl.SizeCache
   709  	unknownFields protoimpl.UnknownFields
   710  
   711  	DataPoints []*NumberDataPoint `protobuf:"bytes,1,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
   712  	// aggregation_temporality describes if the aggregator reports delta changes
   713  	// since last report time, or cumulative changes since a fixed start time.
   714  	AggregationTemporality AggregationTemporality `protobuf:"varint,2,opt,name=aggregation_temporality,json=aggregationTemporality,proto3,enum=opentelemetry.proto.metrics.v1.AggregationTemporality" json:"aggregation_temporality,omitempty"`
   715  	// If "true" means that the sum is monotonic.
   716  	IsMonotonic bool `protobuf:"varint,3,opt,name=is_monotonic,json=isMonotonic,proto3" json:"is_monotonic,omitempty"`
   717  }
   718  
   719  func (x *Sum) Reset() {
   720  	*x = Sum{}
   721  	if protoimpl.UnsafeEnabled {
   722  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[5]
   723  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   724  		ms.StoreMessageInfo(mi)
   725  	}
   726  }
   727  
   728  func (x *Sum) String() string {
   729  	return protoimpl.X.MessageStringOf(x)
   730  }
   731  
   732  func (*Sum) ProtoMessage() {}
   733  
   734  func (x *Sum) ProtoReflect() protoreflect.Message {
   735  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[5]
   736  	if protoimpl.UnsafeEnabled && x != nil {
   737  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   738  		if ms.LoadMessageInfo() == nil {
   739  			ms.StoreMessageInfo(mi)
   740  		}
   741  		return ms
   742  	}
   743  	return mi.MessageOf(x)
   744  }
   745  
   746  // Deprecated: Use Sum.ProtoReflect.Descriptor instead.
   747  func (*Sum) Descriptor() ([]byte, []int) {
   748  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{5}
   749  }
   750  
   751  func (x *Sum) GetDataPoints() []*NumberDataPoint {
   752  	if x != nil {
   753  		return x.DataPoints
   754  	}
   755  	return nil
   756  }
   757  
   758  func (x *Sum) GetAggregationTemporality() AggregationTemporality {
   759  	if x != nil {
   760  		return x.AggregationTemporality
   761  	}
   762  	return AggregationTemporality_AGGREGATION_TEMPORALITY_UNSPECIFIED
   763  }
   764  
   765  func (x *Sum) GetIsMonotonic() bool {
   766  	if x != nil {
   767  		return x.IsMonotonic
   768  	}
   769  	return false
   770  }
   771  
   772  // Histogram represents the type of a metric that is calculated by aggregating
   773  // as a Histogram of all reported measurements over a time interval.
   774  type Histogram struct {
   775  	state         protoimpl.MessageState
   776  	sizeCache     protoimpl.SizeCache
   777  	unknownFields protoimpl.UnknownFields
   778  
   779  	DataPoints []*HistogramDataPoint `protobuf:"bytes,1,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
   780  	// aggregation_temporality describes if the aggregator reports delta changes
   781  	// since last report time, or cumulative changes since a fixed start time.
   782  	AggregationTemporality AggregationTemporality `protobuf:"varint,2,opt,name=aggregation_temporality,json=aggregationTemporality,proto3,enum=opentelemetry.proto.metrics.v1.AggregationTemporality" json:"aggregation_temporality,omitempty"`
   783  }
   784  
   785  func (x *Histogram) Reset() {
   786  	*x = Histogram{}
   787  	if protoimpl.UnsafeEnabled {
   788  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[6]
   789  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   790  		ms.StoreMessageInfo(mi)
   791  	}
   792  }
   793  
   794  func (x *Histogram) String() string {
   795  	return protoimpl.X.MessageStringOf(x)
   796  }
   797  
   798  func (*Histogram) ProtoMessage() {}
   799  
   800  func (x *Histogram) ProtoReflect() protoreflect.Message {
   801  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[6]
   802  	if protoimpl.UnsafeEnabled && x != nil {
   803  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   804  		if ms.LoadMessageInfo() == nil {
   805  			ms.StoreMessageInfo(mi)
   806  		}
   807  		return ms
   808  	}
   809  	return mi.MessageOf(x)
   810  }
   811  
   812  // Deprecated: Use Histogram.ProtoReflect.Descriptor instead.
   813  func (*Histogram) Descriptor() ([]byte, []int) {
   814  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6}
   815  }
   816  
   817  func (x *Histogram) GetDataPoints() []*HistogramDataPoint {
   818  	if x != nil {
   819  		return x.DataPoints
   820  	}
   821  	return nil
   822  }
   823  
   824  func (x *Histogram) GetAggregationTemporality() AggregationTemporality {
   825  	if x != nil {
   826  		return x.AggregationTemporality
   827  	}
   828  	return AggregationTemporality_AGGREGATION_TEMPORALITY_UNSPECIFIED
   829  }
   830  
   831  // ExponentialHistogram represents the type of a metric that is calculated by aggregating
   832  // as a ExponentialHistogram of all reported double measurements over a time interval.
   833  type ExponentialHistogram struct {
   834  	state         protoimpl.MessageState
   835  	sizeCache     protoimpl.SizeCache
   836  	unknownFields protoimpl.UnknownFields
   837  
   838  	DataPoints []*ExponentialHistogramDataPoint `protobuf:"bytes,1,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
   839  	// aggregation_temporality describes if the aggregator reports delta changes
   840  	// since last report time, or cumulative changes since a fixed start time.
   841  	AggregationTemporality AggregationTemporality `protobuf:"varint,2,opt,name=aggregation_temporality,json=aggregationTemporality,proto3,enum=opentelemetry.proto.metrics.v1.AggregationTemporality" json:"aggregation_temporality,omitempty"`
   842  }
   843  
   844  func (x *ExponentialHistogram) Reset() {
   845  	*x = ExponentialHistogram{}
   846  	if protoimpl.UnsafeEnabled {
   847  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[7]
   848  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   849  		ms.StoreMessageInfo(mi)
   850  	}
   851  }
   852  
   853  func (x *ExponentialHistogram) String() string {
   854  	return protoimpl.X.MessageStringOf(x)
   855  }
   856  
   857  func (*ExponentialHistogram) ProtoMessage() {}
   858  
   859  func (x *ExponentialHistogram) ProtoReflect() protoreflect.Message {
   860  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[7]
   861  	if protoimpl.UnsafeEnabled && x != nil {
   862  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   863  		if ms.LoadMessageInfo() == nil {
   864  			ms.StoreMessageInfo(mi)
   865  		}
   866  		return ms
   867  	}
   868  	return mi.MessageOf(x)
   869  }
   870  
   871  // Deprecated: Use ExponentialHistogram.ProtoReflect.Descriptor instead.
   872  func (*ExponentialHistogram) Descriptor() ([]byte, []int) {
   873  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{7}
   874  }
   875  
   876  func (x *ExponentialHistogram) GetDataPoints() []*ExponentialHistogramDataPoint {
   877  	if x != nil {
   878  		return x.DataPoints
   879  	}
   880  	return nil
   881  }
   882  
   883  func (x *ExponentialHistogram) GetAggregationTemporality() AggregationTemporality {
   884  	if x != nil {
   885  		return x.AggregationTemporality
   886  	}
   887  	return AggregationTemporality_AGGREGATION_TEMPORALITY_UNSPECIFIED
   888  }
   889  
   890  // Summary metric data are used to convey quantile summaries,
   891  // a Prometheus (see: https://prometheus.io/docs/concepts/metric_types/#summary)
   892  // and OpenMetrics (see: https://github.com/OpenObservability/OpenMetrics/blob/4dbf6075567ab43296eed941037c12951faafb92/protos/prometheus.proto#L45)
   893  // data type. These data points cannot always be merged in a meaningful way.
   894  // While they can be useful in some applications, histogram data points are
   895  // recommended for new applications.
   896  type Summary struct {
   897  	state         protoimpl.MessageState
   898  	sizeCache     protoimpl.SizeCache
   899  	unknownFields protoimpl.UnknownFields
   900  
   901  	DataPoints []*SummaryDataPoint `protobuf:"bytes,1,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
   902  }
   903  
   904  func (x *Summary) Reset() {
   905  	*x = Summary{}
   906  	if protoimpl.UnsafeEnabled {
   907  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[8]
   908  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   909  		ms.StoreMessageInfo(mi)
   910  	}
   911  }
   912  
   913  func (x *Summary) String() string {
   914  	return protoimpl.X.MessageStringOf(x)
   915  }
   916  
   917  func (*Summary) ProtoMessage() {}
   918  
   919  func (x *Summary) ProtoReflect() protoreflect.Message {
   920  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[8]
   921  	if protoimpl.UnsafeEnabled && x != nil {
   922  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   923  		if ms.LoadMessageInfo() == nil {
   924  			ms.StoreMessageInfo(mi)
   925  		}
   926  		return ms
   927  	}
   928  	return mi.MessageOf(x)
   929  }
   930  
   931  // Deprecated: Use Summary.ProtoReflect.Descriptor instead.
   932  func (*Summary) Descriptor() ([]byte, []int) {
   933  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{8}
   934  }
   935  
   936  func (x *Summary) GetDataPoints() []*SummaryDataPoint {
   937  	if x != nil {
   938  		return x.DataPoints
   939  	}
   940  	return nil
   941  }
   942  
   943  // NumberDataPoint is a single data point in a timeseries that describes the
   944  // time-varying scalar value of a metric.
   945  type NumberDataPoint struct {
   946  	state         protoimpl.MessageState
   947  	sizeCache     protoimpl.SizeCache
   948  	unknownFields protoimpl.UnknownFields
   949  
   950  	// The set of key/value pairs that uniquely identify the timeseries from
   951  	// where this point belongs. The list may be empty (may contain 0 elements).
   952  	// Attribute keys MUST be unique (it is not allowed to have more than one
   953  	// attribute with the same key).
   954  	Attributes []*v11.KeyValue `protobuf:"bytes,7,rep,name=attributes,proto3" json:"attributes,omitempty"`
   955  	// StartTimeUnixNano is optional but strongly encouraged, see the
   956  	// the detailed comments above Metric.
   957  	//
   958  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
   959  	// 1970.
   960  	StartTimeUnixNano uint64 `protobuf:"fixed64,2,opt,name=start_time_unix_nano,json=startTimeUnixNano,proto3" json:"start_time_unix_nano,omitempty"`
   961  	// TimeUnixNano is required, see the detailed comments above Metric.
   962  	//
   963  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
   964  	// 1970.
   965  	TimeUnixNano uint64 `protobuf:"fixed64,3,opt,name=time_unix_nano,json=timeUnixNano,proto3" json:"time_unix_nano,omitempty"`
   966  	// The value itself.  A point is considered invalid when one of the recognized
   967  	// value fields is not present inside this oneof.
   968  	//
   969  	// Types that are assignable to Value:
   970  	//	*NumberDataPoint_AsDouble
   971  	//	*NumberDataPoint_AsInt
   972  	Value isNumberDataPoint_Value `protobuf_oneof:"value"`
   973  	// (Optional) List of exemplars collected from
   974  	// measurements that were used to form the data point
   975  	Exemplars []*Exemplar `protobuf:"bytes,5,rep,name=exemplars,proto3" json:"exemplars,omitempty"`
   976  	// Flags that apply to this specific data point.  See DataPointFlags
   977  	// for the available flags and their meaning.
   978  	Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"`
   979  }
   980  
   981  func (x *NumberDataPoint) Reset() {
   982  	*x = NumberDataPoint{}
   983  	if protoimpl.UnsafeEnabled {
   984  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[9]
   985  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   986  		ms.StoreMessageInfo(mi)
   987  	}
   988  }
   989  
   990  func (x *NumberDataPoint) String() string {
   991  	return protoimpl.X.MessageStringOf(x)
   992  }
   993  
   994  func (*NumberDataPoint) ProtoMessage() {}
   995  
   996  func (x *NumberDataPoint) ProtoReflect() protoreflect.Message {
   997  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[9]
   998  	if protoimpl.UnsafeEnabled && x != nil {
   999  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1000  		if ms.LoadMessageInfo() == nil {
  1001  			ms.StoreMessageInfo(mi)
  1002  		}
  1003  		return ms
  1004  	}
  1005  	return mi.MessageOf(x)
  1006  }
  1007  
  1008  // Deprecated: Use NumberDataPoint.ProtoReflect.Descriptor instead.
  1009  func (*NumberDataPoint) Descriptor() ([]byte, []int) {
  1010  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{9}
  1011  }
  1012  
  1013  func (x *NumberDataPoint) GetAttributes() []*v11.KeyValue {
  1014  	if x != nil {
  1015  		return x.Attributes
  1016  	}
  1017  	return nil
  1018  }
  1019  
  1020  func (x *NumberDataPoint) GetStartTimeUnixNano() uint64 {
  1021  	if x != nil {
  1022  		return x.StartTimeUnixNano
  1023  	}
  1024  	return 0
  1025  }
  1026  
  1027  func (x *NumberDataPoint) GetTimeUnixNano() uint64 {
  1028  	if x != nil {
  1029  		return x.TimeUnixNano
  1030  	}
  1031  	return 0
  1032  }
  1033  
  1034  func (m *NumberDataPoint) GetValue() isNumberDataPoint_Value {
  1035  	if m != nil {
  1036  		return m.Value
  1037  	}
  1038  	return nil
  1039  }
  1040  
  1041  func (x *NumberDataPoint) GetAsDouble() float64 {
  1042  	if x, ok := x.GetValue().(*NumberDataPoint_AsDouble); ok {
  1043  		return x.AsDouble
  1044  	}
  1045  	return 0
  1046  }
  1047  
  1048  func (x *NumberDataPoint) GetAsInt() int64 {
  1049  	if x, ok := x.GetValue().(*NumberDataPoint_AsInt); ok {
  1050  		return x.AsInt
  1051  	}
  1052  	return 0
  1053  }
  1054  
  1055  func (x *NumberDataPoint) GetExemplars() []*Exemplar {
  1056  	if x != nil {
  1057  		return x.Exemplars
  1058  	}
  1059  	return nil
  1060  }
  1061  
  1062  func (x *NumberDataPoint) GetFlags() uint32 {
  1063  	if x != nil {
  1064  		return x.Flags
  1065  	}
  1066  	return 0
  1067  }
  1068  
  1069  type isNumberDataPoint_Value interface {
  1070  	isNumberDataPoint_Value()
  1071  }
  1072  
  1073  type NumberDataPoint_AsDouble struct {
  1074  	AsDouble float64 `protobuf:"fixed64,4,opt,name=as_double,json=asDouble,proto3,oneof"`
  1075  }
  1076  
  1077  type NumberDataPoint_AsInt struct {
  1078  	AsInt int64 `protobuf:"fixed64,6,opt,name=as_int,json=asInt,proto3,oneof"`
  1079  }
  1080  
  1081  func (*NumberDataPoint_AsDouble) isNumberDataPoint_Value() {}
  1082  
  1083  func (*NumberDataPoint_AsInt) isNumberDataPoint_Value() {}
  1084  
  1085  // HistogramDataPoint is a single data point in a timeseries that describes the
  1086  // time-varying values of a Histogram. A Histogram contains summary statistics
  1087  // for a population of values, it may optionally contain the distribution of
  1088  // those values across a set of buckets.
  1089  //
  1090  // If the histogram contains the distribution of values, then both
  1091  // "explicit_bounds" and "bucket counts" fields must be defined.
  1092  // If the histogram does not contain the distribution of values, then both
  1093  // "explicit_bounds" and "bucket_counts" must be omitted and only "count" and
  1094  // "sum" are known.
  1095  type HistogramDataPoint struct {
  1096  	state         protoimpl.MessageState
  1097  	sizeCache     protoimpl.SizeCache
  1098  	unknownFields protoimpl.UnknownFields
  1099  
  1100  	// The set of key/value pairs that uniquely identify the timeseries from
  1101  	// where this point belongs. The list may be empty (may contain 0 elements).
  1102  	// Attribute keys MUST be unique (it is not allowed to have more than one
  1103  	// attribute with the same key).
  1104  	Attributes []*v11.KeyValue `protobuf:"bytes,9,rep,name=attributes,proto3" json:"attributes,omitempty"`
  1105  	// StartTimeUnixNano is optional but strongly encouraged, see the
  1106  	// the detailed comments above Metric.
  1107  	//
  1108  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1109  	// 1970.
  1110  	StartTimeUnixNano uint64 `protobuf:"fixed64,2,opt,name=start_time_unix_nano,json=startTimeUnixNano,proto3" json:"start_time_unix_nano,omitempty"`
  1111  	// TimeUnixNano is required, see the detailed comments above Metric.
  1112  	//
  1113  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1114  	// 1970.
  1115  	TimeUnixNano uint64 `protobuf:"fixed64,3,opt,name=time_unix_nano,json=timeUnixNano,proto3" json:"time_unix_nano,omitempty"`
  1116  	// count is the number of values in the population. Must be non-negative. This
  1117  	// value must be equal to the sum of the "count" fields in buckets if a
  1118  	// histogram is provided.
  1119  	Count uint64 `protobuf:"fixed64,4,opt,name=count,proto3" json:"count,omitempty"`
  1120  	// sum of the values in the population. If count is zero then this field
  1121  	// must be zero.
  1122  	//
  1123  	// Note: Sum should only be filled out when measuring non-negative discrete
  1124  	// events, and is assumed to be monotonic over the values of these events.
  1125  	// Negative events *can* be recorded, but sum should not be filled out when
  1126  	// doing so.  This is specifically to enforce compatibility w/ OpenMetrics,
  1127  	// see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#histogram
  1128  	Sum *float64 `protobuf:"fixed64,5,opt,name=sum,proto3,oneof" json:"sum,omitempty"`
  1129  	// bucket_counts is an optional field contains the count values of histogram
  1130  	// for each bucket.
  1131  	//
  1132  	// The sum of the bucket_counts must equal the value in the count field.
  1133  	//
  1134  	// The number of elements in bucket_counts array must be by one greater than
  1135  	// the number of elements in explicit_bounds array.
  1136  	BucketCounts []uint64 `protobuf:"fixed64,6,rep,packed,name=bucket_counts,json=bucketCounts,proto3" json:"bucket_counts,omitempty"`
  1137  	// explicit_bounds specifies buckets with explicitly defined bounds for values.
  1138  	//
  1139  	// The boundaries for bucket at index i are:
  1140  	//
  1141  	// (-infinity, explicit_bounds[i]] for i == 0
  1142  	// (explicit_bounds[i-1], explicit_bounds[i]] for 0 < i < size(explicit_bounds)
  1143  	// (explicit_bounds[i-1], +infinity) for i == size(explicit_bounds)
  1144  	//
  1145  	// The values in the explicit_bounds array must be strictly increasing.
  1146  	//
  1147  	// Histogram buckets are inclusive of their upper boundary, except the last
  1148  	// bucket where the boundary is at infinity. This format is intentionally
  1149  	// compatible with the OpenMetrics histogram definition.
  1150  	ExplicitBounds []float64 `protobuf:"fixed64,7,rep,packed,name=explicit_bounds,json=explicitBounds,proto3" json:"explicit_bounds,omitempty"`
  1151  	// (Optional) List of exemplars collected from
  1152  	// measurements that were used to form the data point
  1153  	Exemplars []*Exemplar `protobuf:"bytes,8,rep,name=exemplars,proto3" json:"exemplars,omitempty"`
  1154  	// Flags that apply to this specific data point.  See DataPointFlags
  1155  	// for the available flags and their meaning.
  1156  	Flags uint32 `protobuf:"varint,10,opt,name=flags,proto3" json:"flags,omitempty"`
  1157  	// min is the minimum value over (start_time, end_time].
  1158  	Min *float64 `protobuf:"fixed64,11,opt,name=min,proto3,oneof" json:"min,omitempty"`
  1159  	// max is the maximum value over (start_time, end_time].
  1160  	Max *float64 `protobuf:"fixed64,12,opt,name=max,proto3,oneof" json:"max,omitempty"`
  1161  }
  1162  
  1163  func (x *HistogramDataPoint) Reset() {
  1164  	*x = HistogramDataPoint{}
  1165  	if protoimpl.UnsafeEnabled {
  1166  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[10]
  1167  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1168  		ms.StoreMessageInfo(mi)
  1169  	}
  1170  }
  1171  
  1172  func (x *HistogramDataPoint) String() string {
  1173  	return protoimpl.X.MessageStringOf(x)
  1174  }
  1175  
  1176  func (*HistogramDataPoint) ProtoMessage() {}
  1177  
  1178  func (x *HistogramDataPoint) ProtoReflect() protoreflect.Message {
  1179  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[10]
  1180  	if protoimpl.UnsafeEnabled && x != nil {
  1181  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1182  		if ms.LoadMessageInfo() == nil {
  1183  			ms.StoreMessageInfo(mi)
  1184  		}
  1185  		return ms
  1186  	}
  1187  	return mi.MessageOf(x)
  1188  }
  1189  
  1190  // Deprecated: Use HistogramDataPoint.ProtoReflect.Descriptor instead.
  1191  func (*HistogramDataPoint) Descriptor() ([]byte, []int) {
  1192  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{10}
  1193  }
  1194  
  1195  func (x *HistogramDataPoint) GetAttributes() []*v11.KeyValue {
  1196  	if x != nil {
  1197  		return x.Attributes
  1198  	}
  1199  	return nil
  1200  }
  1201  
  1202  func (x *HistogramDataPoint) GetStartTimeUnixNano() uint64 {
  1203  	if x != nil {
  1204  		return x.StartTimeUnixNano
  1205  	}
  1206  	return 0
  1207  }
  1208  
  1209  func (x *HistogramDataPoint) GetTimeUnixNano() uint64 {
  1210  	if x != nil {
  1211  		return x.TimeUnixNano
  1212  	}
  1213  	return 0
  1214  }
  1215  
  1216  func (x *HistogramDataPoint) GetCount() uint64 {
  1217  	if x != nil {
  1218  		return x.Count
  1219  	}
  1220  	return 0
  1221  }
  1222  
  1223  func (x *HistogramDataPoint) GetSum() float64 {
  1224  	if x != nil && x.Sum != nil {
  1225  		return *x.Sum
  1226  	}
  1227  	return 0
  1228  }
  1229  
  1230  func (x *HistogramDataPoint) GetBucketCounts() []uint64 {
  1231  	if x != nil {
  1232  		return x.BucketCounts
  1233  	}
  1234  	return nil
  1235  }
  1236  
  1237  func (x *HistogramDataPoint) GetExplicitBounds() []float64 {
  1238  	if x != nil {
  1239  		return x.ExplicitBounds
  1240  	}
  1241  	return nil
  1242  }
  1243  
  1244  func (x *HistogramDataPoint) GetExemplars() []*Exemplar {
  1245  	if x != nil {
  1246  		return x.Exemplars
  1247  	}
  1248  	return nil
  1249  }
  1250  
  1251  func (x *HistogramDataPoint) GetFlags() uint32 {
  1252  	if x != nil {
  1253  		return x.Flags
  1254  	}
  1255  	return 0
  1256  }
  1257  
  1258  func (x *HistogramDataPoint) GetMin() float64 {
  1259  	if x != nil && x.Min != nil {
  1260  		return *x.Min
  1261  	}
  1262  	return 0
  1263  }
  1264  
  1265  func (x *HistogramDataPoint) GetMax() float64 {
  1266  	if x != nil && x.Max != nil {
  1267  		return *x.Max
  1268  	}
  1269  	return 0
  1270  }
  1271  
  1272  // ExponentialHistogramDataPoint is a single data point in a timeseries that describes the
  1273  // time-varying values of a ExponentialHistogram of double values. A ExponentialHistogram contains
  1274  // summary statistics for a population of values, it may optionally contain the
  1275  // distribution of those values across a set of buckets.
  1276  //
  1277  type ExponentialHistogramDataPoint struct {
  1278  	state         protoimpl.MessageState
  1279  	sizeCache     protoimpl.SizeCache
  1280  	unknownFields protoimpl.UnknownFields
  1281  
  1282  	// The set of key/value pairs that uniquely identify the timeseries from
  1283  	// where this point belongs. The list may be empty (may contain 0 elements).
  1284  	// Attribute keys MUST be unique (it is not allowed to have more than one
  1285  	// attribute with the same key).
  1286  	Attributes []*v11.KeyValue `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
  1287  	// StartTimeUnixNano is optional but strongly encouraged, see the
  1288  	// the detailed comments above Metric.
  1289  	//
  1290  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1291  	// 1970.
  1292  	StartTimeUnixNano uint64 `protobuf:"fixed64,2,opt,name=start_time_unix_nano,json=startTimeUnixNano,proto3" json:"start_time_unix_nano,omitempty"`
  1293  	// TimeUnixNano is required, see the detailed comments above Metric.
  1294  	//
  1295  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1296  	// 1970.
  1297  	TimeUnixNano uint64 `protobuf:"fixed64,3,opt,name=time_unix_nano,json=timeUnixNano,proto3" json:"time_unix_nano,omitempty"`
  1298  	// count is the number of values in the population. Must be
  1299  	// non-negative. This value must be equal to the sum of the "bucket_counts"
  1300  	// values in the positive and negative Buckets plus the "zero_count" field.
  1301  	Count uint64 `protobuf:"fixed64,4,opt,name=count,proto3" json:"count,omitempty"`
  1302  	// sum of the values in the population. If count is zero then this field
  1303  	// must be zero.
  1304  	//
  1305  	// Note: Sum should only be filled out when measuring non-negative discrete
  1306  	// events, and is assumed to be monotonic over the values of these events.
  1307  	// Negative events *can* be recorded, but sum should not be filled out when
  1308  	// doing so.  This is specifically to enforce compatibility w/ OpenMetrics,
  1309  	// see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#histogram
  1310  	Sum *float64 `protobuf:"fixed64,5,opt,name=sum,proto3,oneof" json:"sum,omitempty"`
  1311  	// scale describes the resolution of the histogram.  Boundaries are
  1312  	// located at powers of the base, where:
  1313  	//
  1314  	//   base = (2^(2^-scale))
  1315  	//
  1316  	// The histogram bucket identified by `index`, a signed integer,
  1317  	// contains values that are greater than (base^index) and
  1318  	// less than or equal to (base^(index+1)).
  1319  	//
  1320  	// The positive and negative ranges of the histogram are expressed
  1321  	// separately.  Negative values are mapped by their absolute value
  1322  	// into the negative range using the same scale as the positive range.
  1323  	//
  1324  	// scale is not restricted by the protocol, as the permissible
  1325  	// values depend on the range of the data.
  1326  	Scale int32 `protobuf:"zigzag32,6,opt,name=scale,proto3" json:"scale,omitempty"`
  1327  	// zero_count is the count of values that are either exactly zero or
  1328  	// within the region considered zero by the instrumentation at the
  1329  	// tolerated degree of precision.  This bucket stores values that
  1330  	// cannot be expressed using the standard exponential formula as
  1331  	// well as values that have been rounded to zero.
  1332  	//
  1333  	// Implementations MAY consider the zero bucket to have probability
  1334  	// mass equal to (zero_count / count).
  1335  	ZeroCount uint64 `protobuf:"fixed64,7,opt,name=zero_count,json=zeroCount,proto3" json:"zero_count,omitempty"`
  1336  	// positive carries the positive range of exponential bucket counts.
  1337  	Positive *ExponentialHistogramDataPoint_Buckets `protobuf:"bytes,8,opt,name=positive,proto3" json:"positive,omitempty"`
  1338  	// negative carries the negative range of exponential bucket counts.
  1339  	Negative *ExponentialHistogramDataPoint_Buckets `protobuf:"bytes,9,opt,name=negative,proto3" json:"negative,omitempty"`
  1340  	// Flags that apply to this specific data point.  See DataPointFlags
  1341  	// for the available flags and their meaning.
  1342  	Flags uint32 `protobuf:"varint,10,opt,name=flags,proto3" json:"flags,omitempty"`
  1343  	// (Optional) List of exemplars collected from
  1344  	// measurements that were used to form the data point
  1345  	Exemplars []*Exemplar `protobuf:"bytes,11,rep,name=exemplars,proto3" json:"exemplars,omitempty"`
  1346  	// min is the minimum value over (start_time, end_time].
  1347  	Min *float64 `protobuf:"fixed64,12,opt,name=min,proto3,oneof" json:"min,omitempty"`
  1348  	// max is the maximum value over (start_time, end_time].
  1349  	Max *float64 `protobuf:"fixed64,13,opt,name=max,proto3,oneof" json:"max,omitempty"`
  1350  	// ZeroThreshold may be optionally set to convey the width of the zero
  1351  	// region. Where the zero region is defined as the closed interval
  1352  	// [-ZeroThreshold, ZeroThreshold].
  1353  	// When ZeroThreshold is 0, zero count bucket stores values that cannot be
  1354  	// expressed using the standard exponential formula as well as values that
  1355  	// have been rounded to zero.
  1356  	ZeroThreshold float64 `protobuf:"fixed64,14,opt,name=zero_threshold,json=zeroThreshold,proto3" json:"zero_threshold,omitempty"`
  1357  }
  1358  
  1359  func (x *ExponentialHistogramDataPoint) Reset() {
  1360  	*x = ExponentialHistogramDataPoint{}
  1361  	if protoimpl.UnsafeEnabled {
  1362  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[11]
  1363  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1364  		ms.StoreMessageInfo(mi)
  1365  	}
  1366  }
  1367  
  1368  func (x *ExponentialHistogramDataPoint) String() string {
  1369  	return protoimpl.X.MessageStringOf(x)
  1370  }
  1371  
  1372  func (*ExponentialHistogramDataPoint) ProtoMessage() {}
  1373  
  1374  func (x *ExponentialHistogramDataPoint) ProtoReflect() protoreflect.Message {
  1375  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[11]
  1376  	if protoimpl.UnsafeEnabled && x != nil {
  1377  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1378  		if ms.LoadMessageInfo() == nil {
  1379  			ms.StoreMessageInfo(mi)
  1380  		}
  1381  		return ms
  1382  	}
  1383  	return mi.MessageOf(x)
  1384  }
  1385  
  1386  // Deprecated: Use ExponentialHistogramDataPoint.ProtoReflect.Descriptor instead.
  1387  func (*ExponentialHistogramDataPoint) Descriptor() ([]byte, []int) {
  1388  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{11}
  1389  }
  1390  
  1391  func (x *ExponentialHistogramDataPoint) GetAttributes() []*v11.KeyValue {
  1392  	if x != nil {
  1393  		return x.Attributes
  1394  	}
  1395  	return nil
  1396  }
  1397  
  1398  func (x *ExponentialHistogramDataPoint) GetStartTimeUnixNano() uint64 {
  1399  	if x != nil {
  1400  		return x.StartTimeUnixNano
  1401  	}
  1402  	return 0
  1403  }
  1404  
  1405  func (x *ExponentialHistogramDataPoint) GetTimeUnixNano() uint64 {
  1406  	if x != nil {
  1407  		return x.TimeUnixNano
  1408  	}
  1409  	return 0
  1410  }
  1411  
  1412  func (x *ExponentialHistogramDataPoint) GetCount() uint64 {
  1413  	if x != nil {
  1414  		return x.Count
  1415  	}
  1416  	return 0
  1417  }
  1418  
  1419  func (x *ExponentialHistogramDataPoint) GetSum() float64 {
  1420  	if x != nil && x.Sum != nil {
  1421  		return *x.Sum
  1422  	}
  1423  	return 0
  1424  }
  1425  
  1426  func (x *ExponentialHistogramDataPoint) GetScale() int32 {
  1427  	if x != nil {
  1428  		return x.Scale
  1429  	}
  1430  	return 0
  1431  }
  1432  
  1433  func (x *ExponentialHistogramDataPoint) GetZeroCount() uint64 {
  1434  	if x != nil {
  1435  		return x.ZeroCount
  1436  	}
  1437  	return 0
  1438  }
  1439  
  1440  func (x *ExponentialHistogramDataPoint) GetPositive() *ExponentialHistogramDataPoint_Buckets {
  1441  	if x != nil {
  1442  		return x.Positive
  1443  	}
  1444  	return nil
  1445  }
  1446  
  1447  func (x *ExponentialHistogramDataPoint) GetNegative() *ExponentialHistogramDataPoint_Buckets {
  1448  	if x != nil {
  1449  		return x.Negative
  1450  	}
  1451  	return nil
  1452  }
  1453  
  1454  func (x *ExponentialHistogramDataPoint) GetFlags() uint32 {
  1455  	if x != nil {
  1456  		return x.Flags
  1457  	}
  1458  	return 0
  1459  }
  1460  
  1461  func (x *ExponentialHistogramDataPoint) GetExemplars() []*Exemplar {
  1462  	if x != nil {
  1463  		return x.Exemplars
  1464  	}
  1465  	return nil
  1466  }
  1467  
  1468  func (x *ExponentialHistogramDataPoint) GetMin() float64 {
  1469  	if x != nil && x.Min != nil {
  1470  		return *x.Min
  1471  	}
  1472  	return 0
  1473  }
  1474  
  1475  func (x *ExponentialHistogramDataPoint) GetMax() float64 {
  1476  	if x != nil && x.Max != nil {
  1477  		return *x.Max
  1478  	}
  1479  	return 0
  1480  }
  1481  
  1482  func (x *ExponentialHistogramDataPoint) GetZeroThreshold() float64 {
  1483  	if x != nil {
  1484  		return x.ZeroThreshold
  1485  	}
  1486  	return 0
  1487  }
  1488  
  1489  // SummaryDataPoint is a single data point in a timeseries that describes the
  1490  // time-varying values of a Summary metric.
  1491  type SummaryDataPoint struct {
  1492  	state         protoimpl.MessageState
  1493  	sizeCache     protoimpl.SizeCache
  1494  	unknownFields protoimpl.UnknownFields
  1495  
  1496  	// The set of key/value pairs that uniquely identify the timeseries from
  1497  	// where this point belongs. The list may be empty (may contain 0 elements).
  1498  	// Attribute keys MUST be unique (it is not allowed to have more than one
  1499  	// attribute with the same key).
  1500  	Attributes []*v11.KeyValue `protobuf:"bytes,7,rep,name=attributes,proto3" json:"attributes,omitempty"`
  1501  	// StartTimeUnixNano is optional but strongly encouraged, see the
  1502  	// the detailed comments above Metric.
  1503  	//
  1504  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1505  	// 1970.
  1506  	StartTimeUnixNano uint64 `protobuf:"fixed64,2,opt,name=start_time_unix_nano,json=startTimeUnixNano,proto3" json:"start_time_unix_nano,omitempty"`
  1507  	// TimeUnixNano is required, see the detailed comments above Metric.
  1508  	//
  1509  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1510  	// 1970.
  1511  	TimeUnixNano uint64 `protobuf:"fixed64,3,opt,name=time_unix_nano,json=timeUnixNano,proto3" json:"time_unix_nano,omitempty"`
  1512  	// count is the number of values in the population. Must be non-negative.
  1513  	Count uint64 `protobuf:"fixed64,4,opt,name=count,proto3" json:"count,omitempty"`
  1514  	// sum of the values in the population. If count is zero then this field
  1515  	// must be zero.
  1516  	//
  1517  	// Note: Sum should only be filled out when measuring non-negative discrete
  1518  	// events, and is assumed to be monotonic over the values of these events.
  1519  	// Negative events *can* be recorded, but sum should not be filled out when
  1520  	// doing so.  This is specifically to enforce compatibility w/ OpenMetrics,
  1521  	// see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#summary
  1522  	Sum float64 `protobuf:"fixed64,5,opt,name=sum,proto3" json:"sum,omitempty"`
  1523  	// (Optional) list of values at different quantiles of the distribution calculated
  1524  	// from the current snapshot. The quantiles must be strictly increasing.
  1525  	QuantileValues []*SummaryDataPoint_ValueAtQuantile `protobuf:"bytes,6,rep,name=quantile_values,json=quantileValues,proto3" json:"quantile_values,omitempty"`
  1526  	// Flags that apply to this specific data point.  See DataPointFlags
  1527  	// for the available flags and their meaning.
  1528  	Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"`
  1529  }
  1530  
  1531  func (x *SummaryDataPoint) Reset() {
  1532  	*x = SummaryDataPoint{}
  1533  	if protoimpl.UnsafeEnabled {
  1534  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[12]
  1535  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1536  		ms.StoreMessageInfo(mi)
  1537  	}
  1538  }
  1539  
  1540  func (x *SummaryDataPoint) String() string {
  1541  	return protoimpl.X.MessageStringOf(x)
  1542  }
  1543  
  1544  func (*SummaryDataPoint) ProtoMessage() {}
  1545  
  1546  func (x *SummaryDataPoint) ProtoReflect() protoreflect.Message {
  1547  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[12]
  1548  	if protoimpl.UnsafeEnabled && x != nil {
  1549  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1550  		if ms.LoadMessageInfo() == nil {
  1551  			ms.StoreMessageInfo(mi)
  1552  		}
  1553  		return ms
  1554  	}
  1555  	return mi.MessageOf(x)
  1556  }
  1557  
  1558  // Deprecated: Use SummaryDataPoint.ProtoReflect.Descriptor instead.
  1559  func (*SummaryDataPoint) Descriptor() ([]byte, []int) {
  1560  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{12}
  1561  }
  1562  
  1563  func (x *SummaryDataPoint) GetAttributes() []*v11.KeyValue {
  1564  	if x != nil {
  1565  		return x.Attributes
  1566  	}
  1567  	return nil
  1568  }
  1569  
  1570  func (x *SummaryDataPoint) GetStartTimeUnixNano() uint64 {
  1571  	if x != nil {
  1572  		return x.StartTimeUnixNano
  1573  	}
  1574  	return 0
  1575  }
  1576  
  1577  func (x *SummaryDataPoint) GetTimeUnixNano() uint64 {
  1578  	if x != nil {
  1579  		return x.TimeUnixNano
  1580  	}
  1581  	return 0
  1582  }
  1583  
  1584  func (x *SummaryDataPoint) GetCount() uint64 {
  1585  	if x != nil {
  1586  		return x.Count
  1587  	}
  1588  	return 0
  1589  }
  1590  
  1591  func (x *SummaryDataPoint) GetSum() float64 {
  1592  	if x != nil {
  1593  		return x.Sum
  1594  	}
  1595  	return 0
  1596  }
  1597  
  1598  func (x *SummaryDataPoint) GetQuantileValues() []*SummaryDataPoint_ValueAtQuantile {
  1599  	if x != nil {
  1600  		return x.QuantileValues
  1601  	}
  1602  	return nil
  1603  }
  1604  
  1605  func (x *SummaryDataPoint) GetFlags() uint32 {
  1606  	if x != nil {
  1607  		return x.Flags
  1608  	}
  1609  	return 0
  1610  }
  1611  
  1612  // A representation of an exemplar, which is a sample input measurement.
  1613  // Exemplars also hold information about the environment when the measurement
  1614  // was recorded, for example the span and trace ID of the active span when the
  1615  // exemplar was recorded.
  1616  type Exemplar struct {
  1617  	state         protoimpl.MessageState
  1618  	sizeCache     protoimpl.SizeCache
  1619  	unknownFields protoimpl.UnknownFields
  1620  
  1621  	// The set of key/value pairs that were filtered out by the aggregator, but
  1622  	// recorded alongside the original measurement. Only key/value pairs that were
  1623  	// filtered out by the aggregator should be included
  1624  	FilteredAttributes []*v11.KeyValue `protobuf:"bytes,7,rep,name=filtered_attributes,json=filteredAttributes,proto3" json:"filtered_attributes,omitempty"`
  1625  	// time_unix_nano is the exact time when this exemplar was recorded
  1626  	//
  1627  	// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  1628  	// 1970.
  1629  	TimeUnixNano uint64 `protobuf:"fixed64,2,opt,name=time_unix_nano,json=timeUnixNano,proto3" json:"time_unix_nano,omitempty"`
  1630  	// The value of the measurement that was recorded. An exemplar is
  1631  	// considered invalid when one of the recognized value fields is not present
  1632  	// inside this oneof.
  1633  	//
  1634  	// Types that are assignable to Value:
  1635  	//	*Exemplar_AsDouble
  1636  	//	*Exemplar_AsInt
  1637  	Value isExemplar_Value `protobuf_oneof:"value"`
  1638  	// (Optional) Span ID of the exemplar trace.
  1639  	// span_id may be missing if the measurement is not recorded inside a trace
  1640  	// or if the trace is not sampled.
  1641  	SpanId []byte `protobuf:"bytes,4,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
  1642  	// (Optional) Trace ID of the exemplar trace.
  1643  	// trace_id may be missing if the measurement is not recorded inside a trace
  1644  	// or if the trace is not sampled.
  1645  	TraceId []byte `protobuf:"bytes,5,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
  1646  }
  1647  
  1648  func (x *Exemplar) Reset() {
  1649  	*x = Exemplar{}
  1650  	if protoimpl.UnsafeEnabled {
  1651  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[13]
  1652  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1653  		ms.StoreMessageInfo(mi)
  1654  	}
  1655  }
  1656  
  1657  func (x *Exemplar) String() string {
  1658  	return protoimpl.X.MessageStringOf(x)
  1659  }
  1660  
  1661  func (*Exemplar) ProtoMessage() {}
  1662  
  1663  func (x *Exemplar) ProtoReflect() protoreflect.Message {
  1664  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[13]
  1665  	if protoimpl.UnsafeEnabled && x != nil {
  1666  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1667  		if ms.LoadMessageInfo() == nil {
  1668  			ms.StoreMessageInfo(mi)
  1669  		}
  1670  		return ms
  1671  	}
  1672  	return mi.MessageOf(x)
  1673  }
  1674  
  1675  // Deprecated: Use Exemplar.ProtoReflect.Descriptor instead.
  1676  func (*Exemplar) Descriptor() ([]byte, []int) {
  1677  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{13}
  1678  }
  1679  
  1680  func (x *Exemplar) GetFilteredAttributes() []*v11.KeyValue {
  1681  	if x != nil {
  1682  		return x.FilteredAttributes
  1683  	}
  1684  	return nil
  1685  }
  1686  
  1687  func (x *Exemplar) GetTimeUnixNano() uint64 {
  1688  	if x != nil {
  1689  		return x.TimeUnixNano
  1690  	}
  1691  	return 0
  1692  }
  1693  
  1694  func (m *Exemplar) GetValue() isExemplar_Value {
  1695  	if m != nil {
  1696  		return m.Value
  1697  	}
  1698  	return nil
  1699  }
  1700  
  1701  func (x *Exemplar) GetAsDouble() float64 {
  1702  	if x, ok := x.GetValue().(*Exemplar_AsDouble); ok {
  1703  		return x.AsDouble
  1704  	}
  1705  	return 0
  1706  }
  1707  
  1708  func (x *Exemplar) GetAsInt() int64 {
  1709  	if x, ok := x.GetValue().(*Exemplar_AsInt); ok {
  1710  		return x.AsInt
  1711  	}
  1712  	return 0
  1713  }
  1714  
  1715  func (x *Exemplar) GetSpanId() []byte {
  1716  	if x != nil {
  1717  		return x.SpanId
  1718  	}
  1719  	return nil
  1720  }
  1721  
  1722  func (x *Exemplar) GetTraceId() []byte {
  1723  	if x != nil {
  1724  		return x.TraceId
  1725  	}
  1726  	return nil
  1727  }
  1728  
  1729  type isExemplar_Value interface {
  1730  	isExemplar_Value()
  1731  }
  1732  
  1733  type Exemplar_AsDouble struct {
  1734  	AsDouble float64 `protobuf:"fixed64,3,opt,name=as_double,json=asDouble,proto3,oneof"`
  1735  }
  1736  
  1737  type Exemplar_AsInt struct {
  1738  	AsInt int64 `protobuf:"fixed64,6,opt,name=as_int,json=asInt,proto3,oneof"`
  1739  }
  1740  
  1741  func (*Exemplar_AsDouble) isExemplar_Value() {}
  1742  
  1743  func (*Exemplar_AsInt) isExemplar_Value() {}
  1744  
  1745  // Buckets are a set of bucket counts, encoded in a contiguous array
  1746  // of counts.
  1747  type ExponentialHistogramDataPoint_Buckets struct {
  1748  	state         protoimpl.MessageState
  1749  	sizeCache     protoimpl.SizeCache
  1750  	unknownFields protoimpl.UnknownFields
  1751  
  1752  	// Offset is the bucket index of the first entry in the bucket_counts array.
  1753  	//
  1754  	// Note: This uses a varint encoding as a simple form of compression.
  1755  	Offset int32 `protobuf:"zigzag32,1,opt,name=offset,proto3" json:"offset,omitempty"`
  1756  	// bucket_counts is an array of count values, where bucket_counts[i] carries
  1757  	// the count of the bucket at index (offset+i). bucket_counts[i] is the count
  1758  	// of values greater than base^(offset+i) and less than or equal to
  1759  	// base^(offset+i+1).
  1760  	//
  1761  	// Note: By contrast, the explicit HistogramDataPoint uses
  1762  	// fixed64.  This field is expected to have many buckets,
  1763  	// especially zeros, so uint64 has been selected to ensure
  1764  	// varint encoding.
  1765  	BucketCounts []uint64 `protobuf:"varint,2,rep,packed,name=bucket_counts,json=bucketCounts,proto3" json:"bucket_counts,omitempty"`
  1766  }
  1767  
  1768  func (x *ExponentialHistogramDataPoint_Buckets) Reset() {
  1769  	*x = ExponentialHistogramDataPoint_Buckets{}
  1770  	if protoimpl.UnsafeEnabled {
  1771  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[14]
  1772  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1773  		ms.StoreMessageInfo(mi)
  1774  	}
  1775  }
  1776  
  1777  func (x *ExponentialHistogramDataPoint_Buckets) String() string {
  1778  	return protoimpl.X.MessageStringOf(x)
  1779  }
  1780  
  1781  func (*ExponentialHistogramDataPoint_Buckets) ProtoMessage() {}
  1782  
  1783  func (x *ExponentialHistogramDataPoint_Buckets) ProtoReflect() protoreflect.Message {
  1784  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[14]
  1785  	if protoimpl.UnsafeEnabled && x != nil {
  1786  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1787  		if ms.LoadMessageInfo() == nil {
  1788  			ms.StoreMessageInfo(mi)
  1789  		}
  1790  		return ms
  1791  	}
  1792  	return mi.MessageOf(x)
  1793  }
  1794  
  1795  // Deprecated: Use ExponentialHistogramDataPoint_Buckets.ProtoReflect.Descriptor instead.
  1796  func (*ExponentialHistogramDataPoint_Buckets) Descriptor() ([]byte, []int) {
  1797  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{11, 0}
  1798  }
  1799  
  1800  func (x *ExponentialHistogramDataPoint_Buckets) GetOffset() int32 {
  1801  	if x != nil {
  1802  		return x.Offset
  1803  	}
  1804  	return 0
  1805  }
  1806  
  1807  func (x *ExponentialHistogramDataPoint_Buckets) GetBucketCounts() []uint64 {
  1808  	if x != nil {
  1809  		return x.BucketCounts
  1810  	}
  1811  	return nil
  1812  }
  1813  
  1814  // Represents the value at a given quantile of a distribution.
  1815  //
  1816  // To record Min and Max values following conventions are used:
  1817  // - The 1.0 quantile is equivalent to the maximum value observed.
  1818  // - The 0.0 quantile is equivalent to the minimum value observed.
  1819  //
  1820  // See the following issue for more context:
  1821  // https://github.com/open-telemetry/opentelemetry-proto/issues/125
  1822  type SummaryDataPoint_ValueAtQuantile struct {
  1823  	state         protoimpl.MessageState
  1824  	sizeCache     protoimpl.SizeCache
  1825  	unknownFields protoimpl.UnknownFields
  1826  
  1827  	// The quantile of a distribution. Must be in the interval
  1828  	// [0.0, 1.0].
  1829  	Quantile float64 `protobuf:"fixed64,1,opt,name=quantile,proto3" json:"quantile,omitempty"`
  1830  	// The value at the given quantile of a distribution.
  1831  	//
  1832  	// Quantile values must NOT be negative.
  1833  	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
  1834  }
  1835  
  1836  func (x *SummaryDataPoint_ValueAtQuantile) Reset() {
  1837  	*x = SummaryDataPoint_ValueAtQuantile{}
  1838  	if protoimpl.UnsafeEnabled {
  1839  		mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[15]
  1840  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1841  		ms.StoreMessageInfo(mi)
  1842  	}
  1843  }
  1844  
  1845  func (x *SummaryDataPoint_ValueAtQuantile) String() string {
  1846  	return protoimpl.X.MessageStringOf(x)
  1847  }
  1848  
  1849  func (*SummaryDataPoint_ValueAtQuantile) ProtoMessage() {}
  1850  
  1851  func (x *SummaryDataPoint_ValueAtQuantile) ProtoReflect() protoreflect.Message {
  1852  	mi := &file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[15]
  1853  	if protoimpl.UnsafeEnabled && x != nil {
  1854  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1855  		if ms.LoadMessageInfo() == nil {
  1856  			ms.StoreMessageInfo(mi)
  1857  		}
  1858  		return ms
  1859  	}
  1860  	return mi.MessageOf(x)
  1861  }
  1862  
  1863  // Deprecated: Use SummaryDataPoint_ValueAtQuantile.ProtoReflect.Descriptor instead.
  1864  func (*SummaryDataPoint_ValueAtQuantile) Descriptor() ([]byte, []int) {
  1865  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{12, 0}
  1866  }
  1867  
  1868  func (x *SummaryDataPoint_ValueAtQuantile) GetQuantile() float64 {
  1869  	if x != nil {
  1870  		return x.Quantile
  1871  	}
  1872  	return 0
  1873  }
  1874  
  1875  func (x *SummaryDataPoint_ValueAtQuantile) GetValue() float64 {
  1876  	if x != nil {
  1877  		return x.Value
  1878  	}
  1879  	return 0
  1880  }
  1881  
  1882  var File_opentelemetry_proto_metrics_v1_metrics_proto protoreflect.FileDescriptor
  1883  
  1884  var file_opentelemetry_proto_metrics_v1_metrics_proto_rawDesc = []byte{
  1885  	0x0a, 0x2c, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f,
  1886  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x76, 0x31,
  1887  	0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e,
  1888  	0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
  1889  	0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x2a,
  1890  	0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f, 0x70, 0x72,
  1891  	0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
  1892  	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
  1893  	0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
  1894  	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f,
  1895  	0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x0b, 0x4d, 0x65,
  1896  	0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x10, 0x72, 0x65, 0x73,
  1897  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20,
  1898  	0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65,
  1899  	0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1900  	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74,
  1901  	0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65,
  1902  	0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
  1903  	0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x72, 0x65, 0x73,
  1904  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70,
  1905  	0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1906  	0x6f, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
  1907  	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
  1908  	0x12, 0x51, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1909  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65,
  1910  	0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
  1911  	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4d, 0x65,
  1912  	0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72,
  1913  	0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72,
  1914  	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55,
  1915  	0x72, 0x6c, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0xe9, 0x07, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x53,
  1916  	0x63, 0x6f, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x73,
  1917  	0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65,
  1918  	0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1919  	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x72,
  1920  	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52,
  1921  	0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1922  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65,
  1923  	0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
  1924  	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
  1925  	0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65,
  1926  	0x6d, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63,
  1927  	0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x6c, 0x22, 0xe1, 0x03, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72,
  1928  	0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1929  	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
  1930  	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
  1931  	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74,
  1932  	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x3d, 0x0a, 0x05,
  1933  	0x67, 0x61, 0x75, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70,
  1934  	0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1935  	0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x75,
  1936  	0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x73,
  1937  	0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74,
  1938  	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
  1939  	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x48, 0x00, 0x52,
  1940  	0x03, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
  1941  	0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65,
  1942  	0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
  1943  	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
  1944  	0x61, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12,
  1945  	0x6b, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68,
  1946  	0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
  1947  	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70,
  1948  	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  1949  	0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f,
  1950  	0x67, 0x72, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x14, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
  1951  	0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x43, 0x0a, 0x07,
  1952  	0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
  1953  	0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
  1954  	0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53,
  1955  	0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72,
  1956  	0x79, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a,
  1957  	0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0x59, 0x0a, 0x05, 0x47,
  1958  	0x61, 0x75, 0x67, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69,
  1959  	0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
  1960  	0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
  1961  	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65,
  1962  	0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61,
  1963  	0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x03, 0x53, 0x75, 0x6d, 0x12, 0x50,
  1964  	0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20,
  1965  	0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65,
  1966  	0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1967  	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50,
  1968  	0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73,
  1969  	0x12, 0x6f, 0x0a, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
  1970  	0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
  1971  	0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
  1972  	0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
  1973  	0x76, 0x31, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65,
  1974  	0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x16, 0x61, 0x67, 0x67, 0x72, 0x65,
  1975  	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74,
  1976  	0x79, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69,
  1977  	0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4d, 0x6f, 0x6e, 0x6f, 0x74,
  1978  	0x6f, 0x6e, 0x69, 0x63, 0x22, 0xd1, 0x01, 0x0a, 0x09, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
  1979  	0x61, 0x6d, 0x12, 0x53, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74,
  1980  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65,
  1981  	0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
  1982  	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
  1983  	0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74,
  1984  	0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65,
  1985  	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69,
  1986  	0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74,
  1987  	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
  1988  	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
  1989  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79,
  1990  	0x52, 0x16, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d,
  1991  	0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xe7, 0x01, 0x0a, 0x14, 0x45, 0x78, 0x70,
  1992  	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
  1993  	0x6d, 0x12, 0x5e, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
  1994  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c,
  1995  	0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74,
  1996  	0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
  1997  	0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61,
  1998  	0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74,
  1999  	0x73, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  2000  	0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01,
  2001  	0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74,
  2002  	0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  2003  	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
  2004  	0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x16, 0x61, 0x67, 0x67, 0x72,
  2005  	0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69,
  2006  	0x74, 0x79, 0x22, 0x5c, 0x0a, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x51, 0x0a,
  2007  	0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
  2008  	0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74,
  2009  	0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  2010  	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x50,
  2011  	0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73,
  2012  	0x22, 0xd6, 0x02, 0x0a, 0x0f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50,
  2013  	0x6f, 0x69, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
  2014  	0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74,
  2015  	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
  2016  	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75,
  2017  	0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a,
  2018  	0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78,
  2019  	0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x73, 0x74, 0x61,
  2020  	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x24,
  2021  	0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f,
  2022  	0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78,
  2023  	0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c,
  2024  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x44, 0x6f, 0x75,
  2025  	0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20,
  2026  	0x01, 0x28, 0x10, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x49, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09,
  2027  	0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
  2028  	0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e,
  2029  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31,
  2030  	0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70,
  2031  	0x6c, 0x61, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20,
  2032  	0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61,
  2033  	0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xd9, 0x03, 0x0a, 0x12, 0x48, 0x69,
  2034  	0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74,
  2035  	0x12, 0x47, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09,
  2036  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d,
  2037  	0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
  2038  	0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61,
  2039  	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x61,
  2040  	0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e,
  2041  	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
  2042  	0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69,
  2043  	0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01,
  2044  	0x28, 0x06, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f,
  2045  	0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52,
  2046  	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20,
  2047  	0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a,
  2048  	0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x06,
  2049  	0x20, 0x03, 0x28, 0x06, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e,
  2050  	0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x62,
  2051  	0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x65, 0x78, 0x70,
  2052  	0x6c, 0x69, 0x63, 0x69, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x65,
  2053  	0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28,
  2054  	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70,
  2055  	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  2056  	0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c,
  2057  	0x61, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01,
  2058  	0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e,
  2059  	0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01,
  2060  	0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52,
  2061  	0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x75, 0x6d, 0x42,
  2062  	0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x4a,
  2063  	0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xfa, 0x05, 0x0a, 0x1d, 0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65,
  2064  	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x61,
  2065  	0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
  2066  	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70,
  2067  	0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2068  	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56,
  2069  	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
  2070  	0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75,
  2071  	0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11,
  2072  	0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e,
  2073  	0x6f, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e,
  2074  	0x61, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x55,
  2075  	0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
  2076  	0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a,
  2077  	0x03, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x03, 0x73, 0x75,
  2078  	0x6d, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x06, 0x20,
  2079  	0x01, 0x28, 0x11, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x65,
  2080  	0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09,
  2081  	0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x08, 0x70, 0x6f, 0x73,
  2082  	0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x70,
  2083  	0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2084  	0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70,
  2085  	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
  2086  	0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65,
  2087  	0x74, 0x73, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x61, 0x0a, 0x08,
  2088  	0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45,
  2089  	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70,
  2090  	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  2091  	0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f,
  2092  	0x67, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x42, 0x75,
  2093  	0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12,
  2094  	0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
  2095  	0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61,
  2096  	0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74,
  2097  	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
  2098  	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c,
  2099  	0x61, 0x72, 0x52, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x12, 0x15, 0x0a,
  2100  	0x03, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69,
  2101  	0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28,
  2102  	0x01, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x7a,
  2103  	0x65, 0x72, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0e, 0x20,
  2104  	0x01, 0x28, 0x01, 0x52, 0x0d, 0x7a, 0x65, 0x72, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
  2105  	0x6c, 0x64, 0x1a, 0x46, 0x0a, 0x07, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a,
  2106  	0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x6f,
  2107  	0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f,
  2108  	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x75,
  2109  	0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73,
  2110  	0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d,
  2111  	0x61, 0x78, 0x22, 0xa6, 0x03, 0x0a, 0x10, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x61,
  2112  	0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
  2113  	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70,
  2114  	0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2115  	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56,
  2116  	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
  2117  	0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75,
  2118  	0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11,
  2119  	0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e,
  2120  	0x6f, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e,
  2121  	0x61, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x55,
  2122  	0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
  2123  	0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a,
  2124  	0x03, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12,
  2125  	0x69, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75,
  2126  	0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74,
  2127  	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
  2128  	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
  2129  	0x79, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
  2130  	0x41, 0x74, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e,
  2131  	0x74, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c,
  2132  	0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
  2133  	0x1a, 0x43, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x51, 0x75, 0x61, 0x6e, 0x74,
  2134  	0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18,
  2135  	0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12,
  2136  	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05,
  2137  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x85, 0x02, 0x0a, 0x08,
  2138  	0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x58, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x74,
  2139  	0x65, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18,
  2140  	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65,
  2141  	0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
  2142  	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12,
  2143  	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
  2144  	0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f,
  2145  	0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65,
  2146  	0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x64,
  2147  	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61,
  2148  	0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x69, 0x6e,
  2149  	0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x10, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x49, 0x6e, 0x74,
  2150  	0x12, 0x17, 0x0a, 0x07, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
  2151  	0x0c, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61,
  2152  	0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x72, 0x61,
  2153  	0x63, 0x65, 0x49, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08,
  2154  	0x01, 0x10, 0x02, 0x2a, 0x8c, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
  2155  	0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27,
  2156  	0x0a, 0x23, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x45,
  2157  	0x4d, 0x50, 0x4f, 0x52, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  2158  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x47, 0x47, 0x52, 0x45,
  2159  	0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x4c, 0x49,
  2160  	0x54, 0x59, 0x5f, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47,
  2161  	0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52,
  2162  	0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x55, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45,
  2163  	0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x46,
  2164  	0x6c, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x49,
  2165  	0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f,
  2166  	0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x4f,
  2167  	0x49, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x43,
  2168  	0x4f, 0x52, 0x44, 0x45, 0x44, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x53, 0x4b,
  2169  	0x10, 0x01, 0x42, 0x7f, 0x0a, 0x21, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c,
  2170  	0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74,
  2171  	0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  2172  	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x67, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
  2173  	0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x70, 0x72, 0x6f,
  2174  	0x74, 0x6f, 0x2f, 0x6f, 0x74, 0x6c, 0x70, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f,
  2175  	0x76, 0x31, 0xaa, 0x02, 0x1e, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74,
  2176  	0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  2177  	0x2e, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2178  }
  2179  
  2180  var (
  2181  	file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescOnce sync.Once
  2182  	file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescData = file_opentelemetry_proto_metrics_v1_metrics_proto_rawDesc
  2183  )
  2184  
  2185  func file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescGZIP() []byte {
  2186  	file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescOnce.Do(func() {
  2187  		file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescData)
  2188  	})
  2189  	return file_opentelemetry_proto_metrics_v1_metrics_proto_rawDescData
  2190  }
  2191  
  2192  var file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  2193  var file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
  2194  var file_opentelemetry_proto_metrics_v1_metrics_proto_goTypes = []interface{}{
  2195  	(AggregationTemporality)(0),                   // 0: opentelemetry.proto.metrics.v1.AggregationTemporality
  2196  	(DataPointFlags)(0),                           // 1: opentelemetry.proto.metrics.v1.DataPointFlags
  2197  	(*MetricsData)(nil),                           // 2: opentelemetry.proto.metrics.v1.MetricsData
  2198  	(*ResourceMetrics)(nil),                       // 3: opentelemetry.proto.metrics.v1.ResourceMetrics
  2199  	(*ScopeMetrics)(nil),                          // 4: opentelemetry.proto.metrics.v1.ScopeMetrics
  2200  	(*Metric)(nil),                                // 5: opentelemetry.proto.metrics.v1.Metric
  2201  	(*Gauge)(nil),                                 // 6: opentelemetry.proto.metrics.v1.Gauge
  2202  	(*Sum)(nil),                                   // 7: opentelemetry.proto.metrics.v1.Sum
  2203  	(*Histogram)(nil),                             // 8: opentelemetry.proto.metrics.v1.Histogram
  2204  	(*ExponentialHistogram)(nil),                  // 9: opentelemetry.proto.metrics.v1.ExponentialHistogram
  2205  	(*Summary)(nil),                               // 10: opentelemetry.proto.metrics.v1.Summary
  2206  	(*NumberDataPoint)(nil),                       // 11: opentelemetry.proto.metrics.v1.NumberDataPoint
  2207  	(*HistogramDataPoint)(nil),                    // 12: opentelemetry.proto.metrics.v1.HistogramDataPoint
  2208  	(*ExponentialHistogramDataPoint)(nil),         // 13: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint
  2209  	(*SummaryDataPoint)(nil),                      // 14: opentelemetry.proto.metrics.v1.SummaryDataPoint
  2210  	(*Exemplar)(nil),                              // 15: opentelemetry.proto.metrics.v1.Exemplar
  2211  	(*ExponentialHistogramDataPoint_Buckets)(nil), // 16: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets
  2212  	(*SummaryDataPoint_ValueAtQuantile)(nil),      // 17: opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile
  2213  	(*v1.Resource)(nil),                           // 18: opentelemetry.proto.resource.v1.Resource
  2214  	(*v11.InstrumentationScope)(nil),              // 19: opentelemetry.proto.common.v1.InstrumentationScope
  2215  	(*v11.KeyValue)(nil),                          // 20: opentelemetry.proto.common.v1.KeyValue
  2216  }
  2217  var file_opentelemetry_proto_metrics_v1_metrics_proto_depIdxs = []int32{
  2218  	3,  // 0: opentelemetry.proto.metrics.v1.MetricsData.resource_metrics:type_name -> opentelemetry.proto.metrics.v1.ResourceMetrics
  2219  	18, // 1: opentelemetry.proto.metrics.v1.ResourceMetrics.resource:type_name -> opentelemetry.proto.resource.v1.Resource
  2220  	4,  // 2: opentelemetry.proto.metrics.v1.ResourceMetrics.scope_metrics:type_name -> opentelemetry.proto.metrics.v1.ScopeMetrics
  2221  	19, // 3: opentelemetry.proto.metrics.v1.ScopeMetrics.scope:type_name -> opentelemetry.proto.common.v1.InstrumentationScope
  2222  	5,  // 4: opentelemetry.proto.metrics.v1.ScopeMetrics.metrics:type_name -> opentelemetry.proto.metrics.v1.Metric
  2223  	6,  // 5: opentelemetry.proto.metrics.v1.Metric.gauge:type_name -> opentelemetry.proto.metrics.v1.Gauge
  2224  	7,  // 6: opentelemetry.proto.metrics.v1.Metric.sum:type_name -> opentelemetry.proto.metrics.v1.Sum
  2225  	8,  // 7: opentelemetry.proto.metrics.v1.Metric.histogram:type_name -> opentelemetry.proto.metrics.v1.Histogram
  2226  	9,  // 8: opentelemetry.proto.metrics.v1.Metric.exponential_histogram:type_name -> opentelemetry.proto.metrics.v1.ExponentialHistogram
  2227  	10, // 9: opentelemetry.proto.metrics.v1.Metric.summary:type_name -> opentelemetry.proto.metrics.v1.Summary
  2228  	11, // 10: opentelemetry.proto.metrics.v1.Gauge.data_points:type_name -> opentelemetry.proto.metrics.v1.NumberDataPoint
  2229  	11, // 11: opentelemetry.proto.metrics.v1.Sum.data_points:type_name -> opentelemetry.proto.metrics.v1.NumberDataPoint
  2230  	0,  // 12: opentelemetry.proto.metrics.v1.Sum.aggregation_temporality:type_name -> opentelemetry.proto.metrics.v1.AggregationTemporality
  2231  	12, // 13: opentelemetry.proto.metrics.v1.Histogram.data_points:type_name -> opentelemetry.proto.metrics.v1.HistogramDataPoint
  2232  	0,  // 14: opentelemetry.proto.metrics.v1.Histogram.aggregation_temporality:type_name -> opentelemetry.proto.metrics.v1.AggregationTemporality
  2233  	13, // 15: opentelemetry.proto.metrics.v1.ExponentialHistogram.data_points:type_name -> opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint
  2234  	0,  // 16: opentelemetry.proto.metrics.v1.ExponentialHistogram.aggregation_temporality:type_name -> opentelemetry.proto.metrics.v1.AggregationTemporality
  2235  	14, // 17: opentelemetry.proto.metrics.v1.Summary.data_points:type_name -> opentelemetry.proto.metrics.v1.SummaryDataPoint
  2236  	20, // 18: opentelemetry.proto.metrics.v1.NumberDataPoint.attributes:type_name -> opentelemetry.proto.common.v1.KeyValue
  2237  	15, // 19: opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars:type_name -> opentelemetry.proto.metrics.v1.Exemplar
  2238  	20, // 20: opentelemetry.proto.metrics.v1.HistogramDataPoint.attributes:type_name -> opentelemetry.proto.common.v1.KeyValue
  2239  	15, // 21: opentelemetry.proto.metrics.v1.HistogramDataPoint.exemplars:type_name -> opentelemetry.proto.metrics.v1.Exemplar
  2240  	20, // 22: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.attributes:type_name -> opentelemetry.proto.common.v1.KeyValue
  2241  	16, // 23: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.positive:type_name -> opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets
  2242  	16, // 24: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.negative:type_name -> opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets
  2243  	15, // 25: opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars:type_name -> opentelemetry.proto.metrics.v1.Exemplar
  2244  	20, // 26: opentelemetry.proto.metrics.v1.SummaryDataPoint.attributes:type_name -> opentelemetry.proto.common.v1.KeyValue
  2245  	17, // 27: opentelemetry.proto.metrics.v1.SummaryDataPoint.quantile_values:type_name -> opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile
  2246  	20, // 28: opentelemetry.proto.metrics.v1.Exemplar.filtered_attributes:type_name -> opentelemetry.proto.common.v1.KeyValue
  2247  	29, // [29:29] is the sub-list for method output_type
  2248  	29, // [29:29] is the sub-list for method input_type
  2249  	29, // [29:29] is the sub-list for extension type_name
  2250  	29, // [29:29] is the sub-list for extension extendee
  2251  	0,  // [0:29] is the sub-list for field type_name
  2252  }
  2253  
  2254  func init() { file_opentelemetry_proto_metrics_v1_metrics_proto_init() }
  2255  func file_opentelemetry_proto_metrics_v1_metrics_proto_init() {
  2256  	if File_opentelemetry_proto_metrics_v1_metrics_proto != nil {
  2257  		return
  2258  	}
  2259  	if !protoimpl.UnsafeEnabled {
  2260  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2261  			switch v := v.(*MetricsData); i {
  2262  			case 0:
  2263  				return &v.state
  2264  			case 1:
  2265  				return &v.sizeCache
  2266  			case 2:
  2267  				return &v.unknownFields
  2268  			default:
  2269  				return nil
  2270  			}
  2271  		}
  2272  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2273  			switch v := v.(*ResourceMetrics); i {
  2274  			case 0:
  2275  				return &v.state
  2276  			case 1:
  2277  				return &v.sizeCache
  2278  			case 2:
  2279  				return &v.unknownFields
  2280  			default:
  2281  				return nil
  2282  			}
  2283  		}
  2284  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2285  			switch v := v.(*ScopeMetrics); i {
  2286  			case 0:
  2287  				return &v.state
  2288  			case 1:
  2289  				return &v.sizeCache
  2290  			case 2:
  2291  				return &v.unknownFields
  2292  			default:
  2293  				return nil
  2294  			}
  2295  		}
  2296  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2297  			switch v := v.(*Metric); i {
  2298  			case 0:
  2299  				return &v.state
  2300  			case 1:
  2301  				return &v.sizeCache
  2302  			case 2:
  2303  				return &v.unknownFields
  2304  			default:
  2305  				return nil
  2306  			}
  2307  		}
  2308  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2309  			switch v := v.(*Gauge); i {
  2310  			case 0:
  2311  				return &v.state
  2312  			case 1:
  2313  				return &v.sizeCache
  2314  			case 2:
  2315  				return &v.unknownFields
  2316  			default:
  2317  				return nil
  2318  			}
  2319  		}
  2320  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2321  			switch v := v.(*Sum); i {
  2322  			case 0:
  2323  				return &v.state
  2324  			case 1:
  2325  				return &v.sizeCache
  2326  			case 2:
  2327  				return &v.unknownFields
  2328  			default:
  2329  				return nil
  2330  			}
  2331  		}
  2332  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2333  			switch v := v.(*Histogram); i {
  2334  			case 0:
  2335  				return &v.state
  2336  			case 1:
  2337  				return &v.sizeCache
  2338  			case 2:
  2339  				return &v.unknownFields
  2340  			default:
  2341  				return nil
  2342  			}
  2343  		}
  2344  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2345  			switch v := v.(*ExponentialHistogram); i {
  2346  			case 0:
  2347  				return &v.state
  2348  			case 1:
  2349  				return &v.sizeCache
  2350  			case 2:
  2351  				return &v.unknownFields
  2352  			default:
  2353  				return nil
  2354  			}
  2355  		}
  2356  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2357  			switch v := v.(*Summary); i {
  2358  			case 0:
  2359  				return &v.state
  2360  			case 1:
  2361  				return &v.sizeCache
  2362  			case 2:
  2363  				return &v.unknownFields
  2364  			default:
  2365  				return nil
  2366  			}
  2367  		}
  2368  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2369  			switch v := v.(*NumberDataPoint); i {
  2370  			case 0:
  2371  				return &v.state
  2372  			case 1:
  2373  				return &v.sizeCache
  2374  			case 2:
  2375  				return &v.unknownFields
  2376  			default:
  2377  				return nil
  2378  			}
  2379  		}
  2380  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2381  			switch v := v.(*HistogramDataPoint); i {
  2382  			case 0:
  2383  				return &v.state
  2384  			case 1:
  2385  				return &v.sizeCache
  2386  			case 2:
  2387  				return &v.unknownFields
  2388  			default:
  2389  				return nil
  2390  			}
  2391  		}
  2392  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2393  			switch v := v.(*ExponentialHistogramDataPoint); i {
  2394  			case 0:
  2395  				return &v.state
  2396  			case 1:
  2397  				return &v.sizeCache
  2398  			case 2:
  2399  				return &v.unknownFields
  2400  			default:
  2401  				return nil
  2402  			}
  2403  		}
  2404  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  2405  			switch v := v.(*SummaryDataPoint); i {
  2406  			case 0:
  2407  				return &v.state
  2408  			case 1:
  2409  				return &v.sizeCache
  2410  			case 2:
  2411  				return &v.unknownFields
  2412  			default:
  2413  				return nil
  2414  			}
  2415  		}
  2416  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  2417  			switch v := v.(*Exemplar); i {
  2418  			case 0:
  2419  				return &v.state
  2420  			case 1:
  2421  				return &v.sizeCache
  2422  			case 2:
  2423  				return &v.unknownFields
  2424  			default:
  2425  				return nil
  2426  			}
  2427  		}
  2428  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2429  			switch v := v.(*ExponentialHistogramDataPoint_Buckets); i {
  2430  			case 0:
  2431  				return &v.state
  2432  			case 1:
  2433  				return &v.sizeCache
  2434  			case 2:
  2435  				return &v.unknownFields
  2436  			default:
  2437  				return nil
  2438  			}
  2439  		}
  2440  		file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2441  			switch v := v.(*SummaryDataPoint_ValueAtQuantile); i {
  2442  			case 0:
  2443  				return &v.state
  2444  			case 1:
  2445  				return &v.sizeCache
  2446  			case 2:
  2447  				return &v.unknownFields
  2448  			default:
  2449  				return nil
  2450  			}
  2451  		}
  2452  	}
  2453  	file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[3].OneofWrappers = []interface{}{
  2454  		(*Metric_Gauge)(nil),
  2455  		(*Metric_Sum)(nil),
  2456  		(*Metric_Histogram)(nil),
  2457  		(*Metric_ExponentialHistogram)(nil),
  2458  		(*Metric_Summary)(nil),
  2459  	}
  2460  	file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[9].OneofWrappers = []interface{}{
  2461  		(*NumberDataPoint_AsDouble)(nil),
  2462  		(*NumberDataPoint_AsInt)(nil),
  2463  	}
  2464  	file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[10].OneofWrappers = []interface{}{}
  2465  	file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[11].OneofWrappers = []interface{}{}
  2466  	file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes[13].OneofWrappers = []interface{}{
  2467  		(*Exemplar_AsDouble)(nil),
  2468  		(*Exemplar_AsInt)(nil),
  2469  	}
  2470  	type x struct{}
  2471  	out := protoimpl.TypeBuilder{
  2472  		File: protoimpl.DescBuilder{
  2473  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2474  			RawDescriptor: file_opentelemetry_proto_metrics_v1_metrics_proto_rawDesc,
  2475  			NumEnums:      2,
  2476  			NumMessages:   16,
  2477  			NumExtensions: 0,
  2478  			NumServices:   0,
  2479  		},
  2480  		GoTypes:           file_opentelemetry_proto_metrics_v1_metrics_proto_goTypes,
  2481  		DependencyIndexes: file_opentelemetry_proto_metrics_v1_metrics_proto_depIdxs,
  2482  		EnumInfos:         file_opentelemetry_proto_metrics_v1_metrics_proto_enumTypes,
  2483  		MessageInfos:      file_opentelemetry_proto_metrics_v1_metrics_proto_msgTypes,
  2484  	}.Build()
  2485  	File_opentelemetry_proto_metrics_v1_metrics_proto = out.File
  2486  	file_opentelemetry_proto_metrics_v1_metrics_proto_rawDesc = nil
  2487  	file_opentelemetry_proto_metrics_v1_metrics_proto_goTypes = nil
  2488  	file_opentelemetry_proto_metrics_v1_metrics_proto_depIdxs = nil
  2489  }
  2490  

View as plain text